Linux第32步_编译ST公司的TF-A源码

发布时间:2024年01月20日

正点原子STM32MP157开发板使用的CPU型号是STM32MP157DAA1,而开发板硬件参考了ST公司的STM32MP157 EVK开发板,因此我们在移植的时候需要关注“stm32mp157d-ev1”。

一、了解SDK 包

ST公司会从ARM官方下载TF-A软件包,然后将STM32MP1 芯片添加进去,最终打包好提供给我们用户,这个就是SDK 包。

ST公司提供的SDK 包是在他自己的“STM32MP157 EVK 开发板”上验证通过的,它包括 TF-A、uboot、linux kermel等。“正点原子的 STM32MP157开发板”是在ST公司开发板硬件的基础上修改得到的,由于硬件被修改,所以软件也要在“ST公司提供的SDK 包”上修改

二、编译ST公司的TF-A

1、打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd my-tfa回车”,切换my-tfa”目录下

输入“ls回车”,列出“my-tfa”目录下所有的文件和文件夹

注意:my-tfa目录下的文件就是ST公司的SDK包,这是我们在前面做好的备份文件。

见下图:

2、输入“vim Makefile.sdk回车”,使用vim命令打开已有的“Makefile.sdk”文件,见下图:

?3、将“arm-ostl-linux-gnueabi-”改为“arm-none-linux-gnueabihf-”,见下图:

4、按“ESC键”+“:wq键”,保存退出。

5、输入“cd tf-a-stm32mp-2.2.r1/回车”,进入到 tf-a源码目录下;

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹

这时,我们发现有一个Makefile文件,见下图:

?6、输入“make -f ../Makefile.sdk all回车”, 执行编译, '-f'的意思是重新指定Makefile。

如果需要加快编译速度,可是使用多线程编译,线程数量最好和自己给虚拟机分配的物理核心保持一致,使用-j来指定线程数,命令如下:

make -f ../Makefile.sdk -j8 all?//使用8线程编译

7、编译完成,见下图:

?8、输入“ls?-l回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹

9、输入“cd ..回车”返回到my-tfa”目录

输入“ls回车”,列出“my-tfa”目录下所有的文件和文件夹

注意:编译后,发现my-tfa”目录下多了一个“build”目录,见下图:

10、输入“cd build/回车”,切换到“build”目录下;

输入“ls回车”,列出“build”目录下所有的文件和文件夹

optee是针对OP-TEE 的,正点原子没使用OP-TEE,所以optee目录和我们没关系。

serialboot和串行启动有关的,就是通过串口或者USB烧写系统的时候需要用到serialboot下的可执行文件“tf-a-stm32mp157d-atk-serialboot.stm32”。

trusted目录下的文件是我们烧写到开发板中的“TF-A镜像文件”。

见下图:

11、输入“cd trusted/回车”,切换到“trusted”目录下;

12、输入“ls 回车”,列出当前目录下所有的文件和文件夹

注意:

1)、由于我们使用的是“STM32M157D芯片的EV1开饭板”,因此,我们需要关注“前缀为tf-a-stm32mp157d-ev1”的文件”。

2)、“tf-a-stm32mp157d-ev1-trusted.stm32”和tf-a-stm32mp157d-ev1.stm32文件一模一样,只是重命名了一下。

3)、我们在烧写程序的时候,使用“tf-a-stm32mp157d-ev1-trusted.stm32”。

?ST公司开发板对应的TF-A固件不能直接在正点原子的开发板上运行,因此需要进行修改,执行TF-A移植。

文章来源:https://blog.csdn.net/weixin_42550185/article/details/135713792
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。