ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第06章 TF-A初使用

2021-02-01 16:34:41  阅读:376  来源: 互联网

标签:linux 06 使用 atk tf mp1 TF 2.2


你好 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已经更新




来自为知笔记(Wiz)

标签:linux,06,使用,atk,tf,mp1,TF,2.2
来源: https://www.cnblogs.com/orangebear/p/14357313.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有