第06章 TF-A初使用
作者:互联网
你好 TF-A
系统源码获取
网盘路径:开发板光盘A-基础资料\1、程序源码\5、ST官方原版Linux源码\en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz创建目录mkdir ~/linux/atk-mp1 -p
将en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz拷贝到atk-mp1下解压。tar -xvf en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz
进入TF-A源码cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-2.2.r1-r0/
TF-A源码打补丁
解压tf-a-stm32mp-2.2.r1-r0.tar.gz
tar -vxf tf-a-stm32mp-2.2.r1-r0.tar.gz
进入tf-a-stm32mp-2.2.r1源码打补丁cd tf-a-stm32mp-2.2.r1-r0
for p in `ls -1 ../*.patch`; do patch -p1 < $p; done
如果之前打过补丁了,会提示如下![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162632566-1610136320.png)
mkdir ~/linux/atk-mp1/tf-a -p
cd ~/linux/atk-mp1/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-2.2.r1-r0
cp * ~/linux/atk-mp1/tf-a/ -rf
ls ~/linux/atk-mp1/tf-a/ -l
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162633266-1842960030.png)
创建VScode工程
使用vscode打开打完补丁的 tf-a-stm32mp-2.2.r1 文件夹,并保存工作区。
编译和烧录TF-A
之前做的是ST官方的TF-A,不能直接在正点原子板子运行。这里编译正点原子修改好的TF-A
stm32wrapper4dbg 工具安装
网盘路径:开发板光盘A-基础资料\5、开发工具\stm32wrapper4dbg-master.zip将 stm32wrapper4dbg-master.zip 拷贝到虚拟机 ~\linux\tool 目录。解压此压缩包。cd ~/linux/tool
unzip stm32wrapper4dbg-master.zip
进入到解压后的文件夹中执行make,得到 stm32wrapper4dbg 工具。cd stm32wrapper4dbg-master
make
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162633610-1315214477.png)
sudo cp stm32wrapper4dbg /usr/bin
stm32wrapper4dbg -s
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162633895-126576813.png)
编译正点原子官方的TF-A
准备出厂TF-A源码
安装设备树编译命令sudo apt-get install device-tree-compiler
网盘路径:开发板光盘A-基础资料\1、程序源码\1、正点原子Linux出厂系统源码\tf-a-stm32mp-2.2.r1-gd5cfc8c-v1.1.tar.bz2新建 alientek_tf-a,拷贝正点原子修改好的TF-A源码到此目录中。mkdir ~/linux/atk-mp1/alientek_tf-a
解压,得到 tf-a-stm32mp-2.2.r1,即原子修改好的TF-A。Makefile.sdk 是TF-A的Makefile。cd ~/linux/atk-mp1/alientek_tf-a
tar -xvf tf-a-stm32mp-2.2.r1-gd5cfc8c-v1.1.tar.bz2
修改Makefile.sdk
Makefile.sdk 的作用。- 定义编译属性:指定交叉编译器、编译选项等。
- 作用:调用TF-A内部的Makefile来编译TF-A。
vi Makefile.sdk
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162634143-1051196939.png)
编译TF-A(原子的)
进入 tf-a-stm32mp-2.2.r1,执行 make -f指令编译cd ~/linux/atk-mp1/alientek_tf-a/tf-a-stm32mp-2.2.r1
make -f ../Makefile.sdk all
编译失败可以看下 问题 里的 编译6.2.2.3原子的TF-A出错 编译成功会在 alientek_tf-a 目录下生成 build 文件夹cd ~/linux/atk-mp1/alientek_tf-a
ls
进入到 build 文件夹可以看到三个子目录cd ~/linux/atk-mp1/alientek_tf-a/build
ls
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162634366-1141100627.png)
ls ~/linux/atk-mp1/alientek_tf-a/build/trusted
ls ~/linux/atk-mp1/alientek_tf-a/build/trusted/tf-a-stm32mp157d-atk-trusted.stm32 -l
烧写TF-A到EMMC
烧录软件:STM32CubeProgrammer 烧写方式:USB线烧准备材料
在Windows端新建目录 images ,将网盘里的 tf-a-stm32mp157d-atk-serialboot.stm32 和 u-boot.stm32 拷贝到 images 文件夹网盘路径:开发板光盘A-基础资料\8、系统镜像\2、出厂系统镜像\1、STM32CubeProg烧录固件包\tf-a\tf-a-stm32mp157d-atk-serialboot.stm32开发板光盘A-基础资料\8、系统镜像\2、出厂系统镜像\1、STM32CubeProg烧录固件包\uboot\u-boot.stm32将上一步得到的 tf-a-stm32mp157d-atk-trusted.stm32 也拷贝到 images 文件夹,如下。![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162634575-928618764.png)
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162634807-1426610938.png)
![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162635020-1118196418.png)
使用USB线烧录
烧录的报错信息看 烧写6.2.3.3原子的TF-A出错烧录完成启动板子,可以看到TF-A已经更新![](https://www.icode9.com/i/l/?n=20&i=blog/2165876/202102/2165876-20210201162635223-278152247.png)
来自为知笔记(Wiz)
标签:linux,06,使用,atk,tf,mp1,TF,2.2 来源: https://www.cnblogs.com/orangebear/p/14357313.html