第1章:学习正点原子开发板-stm32mp157-tf-a编译

第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 in ls -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烧写。这里由于我是回忆编译过程,所以对烧写过程比较熟悉,所以这里就不在讲解,需要的可以观看正点原子官方文档。
若此博客存在不妥之处请联系删除,若有不对的地方希望大家能联系我纠正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值