标签:技术 out 原版 基础 alt dev tsv compile linux
你好 TF-A
系统源码获取
网盘路径:开发板光盘A-基础资料\1、程序源码\5、ST官方原版Linux源码\en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz
创建目录
将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
如果之前打过补丁了,会提示如下
新建 tf-a 目录,将打完补丁的 tf-a-stm32mp-2.2.r1-r0 目录下文件都拷贝到 tf-a,执行 ls 指令查看。
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
tf-a-stm32mp-2.2.r1 即打完补丁后的TF-A源码。
创建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
拷贝 stm32wrapper4dbg 到虚拟机 /usr/bin,执行 stm32wrapper4dbg -s 即可查看帮助信息。
sudo cp stm32wrapper4dbg /usr/bin
stm32wrapper4dbg -s
编译正点原子官方的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。
修改Makefile.sdk里的交叉编译器为原子的。
注意,修改为 arm-none-linux-gnueabihf- 重点注意此处红色部分
编译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
编译成功会在 alientek_tf-a 目录下生成 build 文件夹
cd ~/linux/atk-mp1/alientek_tf-a
ls
进入到 build 文件夹可以看到三个子目录
cd ~/linux/atk-mp1/alientek_tf-a/build
ls
进入到 trusted 目录,这里保存MP1所有型号的TF-A固件,包括正点原子的 tf-a-stm32mp157d-atk-trusted.stm32
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 文件夹,如下。
网盘路径:开发板光盘A-基础资料\8、系统镜像\2、出厂系统镜像\1、STM32CubeProg烧录固件包\flashlayout\atk_emmc-stm32mp157d-atk-qt.tsv
重命名为 tf-a.tsv
烧录完成启动板子,可以看到TF-A已经更新
第06章 TF-A初使用
标签:技术 out 原版 基础 alt dev tsv compile linux
原文地址:https://www.cnblogs.com/orangebear/p/14357313.html