码迷,mamicode.com
首页 > 其他好文 > 详细

第06章 TF-A初使用

时间:2021-02-02 11:07:03      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:技术   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
创建目录
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 
如果之前打过补丁了,会提示如下
技术图片
新建 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 的作用。
  1. 定义编译属性:指定交叉编译器、编译选项等。
  2. 作用:调用TF-A内部的Makefile来编译TF-A。
修改Makefile.sdk里的交叉编译器为原子的。
vi 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 
编译失败可以看下 问题 里的 编译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
技术图片
进入到 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 文件夹,如下。
技术图片
文件关系:
技术图片
拷贝原子的烧录脚本到images文件夹
网盘路径:开发板光盘A-基础资料\8、系统镜像\2、出厂系统镜像\1、STM32CubeProg烧录固件包\flashlayout\atk_emmc-stm32mp157d-atk-qt.tsv
重命名为 tf-a.tsv
技术图片

使用USB线烧录

烧录的报错信息看  烧写6.2.3.3原子的TF-A出错
烧录完成启动板子,可以看到TF-A已经更新
技术图片







第06章 TF-A初使用

标签:技术   out   原版   基础   alt   dev   tsv   compile   linux   

原文地址:https://www.cnblogs.com/orangebear/p/14357313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!