目录
给源码打补丁
TF-A的源码不一定能直接使用,需要对其进行打补丁。补丁文件的后缀为.patch
解压源码包
tar -vxf tf-a-stm32mp-2.2.r1-r0.tar.gz
进入解压后得到的源码目录
cd tf-a-stm32mp-2.2.r1
打补丁
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done //使用上一级目录中所有的补丁文件进行打补丁
修改Makefile.sdk文件
更改交叉编译器,采用通用交叉编译器“arm-none-linux-gnueabihf-”,也可以是自己使用的编译器
vim Makefile.sdk
编译TF-A源码
进入解压后的目录
cd tf-a-stm32mp-2.2.r1/
编译
make -f ../Makefile.sdk all //编译,采用上一级目录的Makefile.sdk文件
make -f ../Makefile.sdk all -j8 //编译,采用上一级目录的Makefile.sdk文件,采用8个内核进行进行编译
编译完成后,会产生一个build目录
build目录下的trusted目录下的文件,都是ST官方STM32MP157芯片的EV1开发板对应的文件
文件 | 描述 |
---|---|
tf-a-stm32mp157d-ev1.bin | 使用 STM32MP157D 芯片的 EV1 开发板对应的TF-A二进制可执行文件。 |
tf-a-stm32mp157d-ev1.elf | 生成 bin 文件所使用的 elf 文件。 |
tf-a-stm32mp157d-ev1.ld | 连接信息。 |
tf-a-stm32mp157d-ev1.map | 内存映射文件。 |
tf-a-stm32mp157d-ev1.stm32 | 添加好头部信息的 bin 文件,可以直接烧写到开发板中。 |
tf-a-stm32mp157d-ev1-trusted.stm32 | 和 tf-a-stm32mp157d-ev1.stm32 文件一模一样,只是重命名了一下,为了和 optee 以及 serialboot 目录下的 tf-a 固件进行区分。 |
注意事项
编译生成的tf-a-stm32mp157d-ev1-trusted.stm32文件直接烧进正点原子的STM32MP157D开发板会出问题!!!直接无法启动