第1章:学习正点原子开发板-stm32mp157-tf-a编译
1. tf-a的使用
首先,我们开发一定要理清学习思路,我一般的学习思路是先学会使用,再去深入学习。
在开发正点原子的stm32mp157的过程中,要想把linux内核运行起来,我们前期会做很多准备工作,比如,引导linux启动的步骤是tf-a–>uboot->linux,所以第一步是了解tf-a。
根据正点原子提供的学习资料==《STM32MP1 嵌入式 Linux 驱动开发指南》==中的第六章 TF-A使用。
获取系统源码可以通过ST官网获取所有的相关资源,链接:stm官网源码下载也可以在在正点原子的学习包中找到一下载好的,开发板光盘→1、程序源码→5、ST 官方原版 Linux 源码→en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz。
接下来,
cd linux
mkdir atk-mp1
将en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-2 0-06-24.tar.xz 拷贝到“atk-mp1”目录下
tar -xvf en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz
进入到内部,找到 tf-a-stm32mp-2.2.r1-r0,进入里面
解压tf-a-stm32mp-2.2.r1-r0.tar.gz
tar -vxf tf-a-stm32mp-2.2.r1-r0.tar.gz
cd tf-a-stm32mp-2.2.r1
for p inls -1 ../*.patch
; do patch -p1 < $p; done //打补丁
注意:这里“’”是键盘的左上角~这个按键,后面是1不是L,若写错会报错。
cd tf-a-stm32mp-2.2.r1-r0/
cp * /home/zuozhongkai/linux/atk-mp1/tf-a/ -rf //路径太长,复制到简短的路径
2. 编译和烧录TF-A
安装编译工具stm32wrapper4dbg:我们需要在 Ubuntu 下编译并安装这个源码,源码的下载地址
为:https://github.com/STMicroelectronics/stm32wrapper4dbg也可以直接使用正点原子提供的,路径:开发板光盘→5、开发工具→ stm32wrapper4dbg-master.zip。
unzip stm32wrapper4dbg-master.zip //解压
cd stm32wrapper4dbg-master //进入到此文件夹
make //编译
将编译出来的
stm32wrapper4dbg 工具拷贝到 Ubuntu 的/usr/bin 目录下
sudo cp stm32wrapper4dbg /usr/bin
stm32wrapper4dbg -s //查看帮助信息
正式编译TF-A,这里我们使用正点原子官方修改好的TF-A来编译,后面我们将修改TF-A的源代码来进行移植。
首先安装设备树编译相关命令,输入如下命令:
sudo apt-get install device-tree-compiler
我们将文件**开发板光盘→1、程序源码→ 1、正点原子 Linux 出厂系统源码→ tf-a-stm32mp-2.2.r1-g463d4d8-v1.0.tar.bz2。**拷贝到ubuntu中,然后解压
tar -xvf tf-a-stm32mp-2.2.r1-g463d4d8-v1.0.tar.bz2
进入tf-a-stm32mp-2.2.r1,修改Makefile.sdk中的编译工具
这里的交叉编译工具是前面的准备工作,因为开发是只用安装一遍就行,我这里就省略此过程。
进入到tf-a-stm32mp-2.2.r1 目录里面,然后运行执行如下命令编译 TF-A:
cd tf-a-stm32mp-2.2.r1/ //进入到正点原子出厂 TF-A 的源码目录 make -f …/Makefile.sdk all //编译 TF-A,-f重新指定Makefile
编译成功,里面会生成一个bulid文件,找到bulid/trustd/tf-a-stm32mp157d-atk-trusted.stm32,这里就是我们最后下载到开发板上的文件。
3.烧写过程
在windows中通过 STM32CubeProgrammer 来烧写 TF-A,新建一个文件images。将以下三个文件放入到该文件中,分别是
- 开发板光盘→8、系统镜像→2、出厂系统镜像→ 1、STM32CubeProg 烧录固件包→tf-a→ tf-a-stm32mp157d-atk-serialboot.stm32。
- 开发板光盘→8、系统镜像→2、出厂系统镜像→ 1、STM32CubeProg 烧录固件包→uboot→u-boot.stm32。
- 刚才编译出来的tf-a-stm32mp157d-atk-trusted.stm32
修改*.tsv文件。该文件也要放入images中。
注意:这里的不是空格,是TAB键
使用STM32CubeProgrammer烧写。这里由于我是回忆编译过程,所以对烧写过程比较熟悉,所以这里就不在讲解,需要的可以观看正点原子官方文档。
若此博客存在不妥之处请联系删除,若有不对的地方希望大家能联系我纠正。