Linux第25步_在虚拟机中备份“ST官方的TF-A源码”

TF-A是ARM公司提供的,ST公司通过修改它,做了一个自己的TF-A代码。因为在后期开发中,若硬件被改变了,我们需要通过修改"ST官方的TF-A源码"就可以自己的TF-A代码了。为了防止源文件被误改了,我们需要将"ST官方的TF-A源码"进行备份。

TF-A全称是Arm Trusted Firmware,有些资料也叫做ATF,一般中文资料叫做ARM可信固件。MP1内部集成了TrustZone,因此ST也提供了TF-A相关源码。

TF-A会先初始化DDR等外设,把UbootFlash(NANDNOR FLASHSDMMC )拷贝到 DDR 中。

如果我们直接去官方网站下载TF-A的源码,这样的开发难度太大。半导体厂商都会从TF-A官网下载源码,然后修改适配自己的芯片,把自家的芯片加进去。因此,我们可以直接使用半导体原厂给提供的TF-A即可

ST官方TF-Aubootkernel等源码下载链接为:

https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-mpu-openstlinux-distribution/stm32mp1dev.html

记得我们已经创建过的目录,如下:

在根目录下,创建一个“linux”目录。

“linux” 目录下,创建一个“nfs”的文件夹,用来nfs服务器使用,便于我们的开发板上通过网络文件系统来访问这个”nfs“文件夹

linux目录下,创建一个tool文件夹,,创建tool文件夹,用来存放“Ubutun交叉编译工具链”

现在,我们还需要创建几个目录:

在“linux”目录下创建“atk-mp1”目录;

在“/linux/atk-mp1/目录下创建“tf-a”目录

在“/linux/atk-mp1/”目录下,创建“my-tfa”目录,用来保存“ST官方的TF-A源码

1、打开终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux回车”,切换到“linux”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“mkdir atk-mp1回车”,在“linux”目录下创建“mkdir atk-mp1”目录

输入“ls回车”,列出当前目录下所有的文件和文件夹

2、将“ST官方的TF-A源码”

en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz” 压缩包,使用FileZilla把它拷贝到“atk-mp1”目录下。见下图:

见下图上传中:

上传成功后,见下图:

 3、输入“cd atk-mp1回车”,切换“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

 4、输入下面的命令

输入“tar -xvf en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz回车”,解压该文件。

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/回车”

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd sources/回车”,切换到“sources”目录下

输入“ls回车”,列出当前目录“sources”目录下所有的文件和文件夹

输入“cd arm-ostl-linux-gnueabi/回车”,切换到“arm-ostl-linux-gnueabi”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

 tf-a-stm32mp-2.2.r1-r0支持ST所有的所有的STM32MP1芯片,也支持各种启动方式例如:EMMC、 NAND、NOR FLASH 等。tf-a-stm32mp-2.2.r1-r0里面包含了ST自家所有的MP1评估板,后续的移植都是以STM32MP157C-EV1开发板为蓝本,在此基础上进行修改

5、输入“cd tf-a-stm32mp-2.2.r1-r0/回车”,切换到“tf-a-stm32mp-2.2.r1-r0”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“ls回车”,输入“ls -l回车

6、输入“tar -vxf tf-a-stm32mp-2.2.r1-r0.tar.gz回车,解压

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1-r0”目录下所有的文件和文件夹

7、输入“cd tf-a-stm32mp-2.2.r1/回车”,切换到“tf-a-stm32mp-2.2.r1”目录下

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1”目录下所有的文件和文件夹

输入“for p in `ls -1 ../*.patch`; do patch -p1 < $p; done回车

说明:“for p in `ls -1 ../*.patch`; do patch -p1 < $p; done回车”,这条命令的意思是把上一层目录下的所有“.patch”后缀的文件都通过patch命令打补丁到TF-A的源码目录,在这里就是将001-st-update-v2.2-r2.0.0.patch这个补丁打入到 TF-A源码里面。由于“ST官方源码”的目录实在太长了,为了方便调试,在 atk-mp1目录下创建一个名为“tf-a”的子目录,然后将打完补丁的 tf-a-stm32mp-2.2.r1-r0目录下的所有文件都拷贝到 “tf-a”目录下

8、我们再另外打开一个新的终端

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux/回车”,切换到“linux”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“mkdir tf-a/回车”,在“atk-mp1”目录下创建“tf-a”目录

输入“ls回车”,列出“tf-a”目录下所有的文件和文件夹

输入“cd stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/回车”,切换到“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下;

输入“ls回车”,列出“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下所有的文件和文件夹

输入“cd sources/回车”,切换到“sources”目录下;

输入“ls回车”,列出“sources”目录下所有的文件和文件夹

输入“cd arm-ostl-linux-gnueabi/回车”,切换到“arm-ostl-linux-gnueabi”目录下;

输入“ls回车”,列出“arm-ostl-linux-gnueabi”目录下所有的文件和文件夹

输入“cd tf-a-stm32mp-2.2.r1-r0/回车”,切换到“tf-a-stm32mp-2.2.r1-r0”目录下;

输入“ls回车”,列出“tf-a-stm32mp-2.2.r1-r0”目录下所有的文件和文件夹

输入“cp * /home/zgq/linux/atk-mp1/tf-a/ -rf回车”,拷贝文件到tf-a

输入“cd ..回车”,返回至上层目录,到达“arm-ostl-linux-gnueabi”目录

输入“cd ..回车”,返回至上层目录,到达“sources”目录下

输入“cd ..回车”,返回至上层目录,到达“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下

输入“ls回车”,列出“stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24”目录下所有的文件和文件夹

输入“cd ..回车”,返回至上层目录,到达“atk-mp1”目录下

输入“ls回车”,列出“atk-mp1”目录下所有的文件和文件夹

输入“cd tf-a回车”,切换到“tf-a”目录下;

输入“ls回车”,列出“tf-a”目录下所有的文件和文件夹

 

9、创建TF-A工作区

1)在Ubuntu桌面,找到Visual Studio Code,在图标上右击鼠标,点击“打开”,见下图: 

得到下图:

2)点击“文件”,再点击“打开文件夹”,见下图:

3)点击下图中的“其他位置”

4)点击“计算机”,点击“home” ,点击“zgq”,点击“linux”,点击“atk_mp1”,点击“tf-a”,见下图:

5)点击 “确定”,得到下面的界面:

6)将“欢迎使用”关闭,再点击“文件”,点击“将工作区另存为…”,见下图操作:

 得到下图:

7)输入“tf-a”,再点击“保存”

得到下图,可见到tf-a.code-workspace工作区间文件:

10,在/linux/atk-mp1/目录下创建my-tfa目录,用来保存ST官方的TF-A源码”。

1)打开终端

2)输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd linux/回车”,切换到“linux”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“mkdir my-tfa/回车”,在“/linux/atk-mp1/”目录下创建“my-tfa”目录,用来保存“ST官方的TF-A源码”

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd tf-a/回车”,切换到“tf-a”目录下;

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cp * /home/zgq/linux/atk-mp1/my-tfa/ -rf回车”,拷贝到“my-tfa”目录中,用来保存“ST官方的TF-A源码”

输入“cd ..回车”,返回至上层目录,到达“atk-mp1”目录下

输入“ls回车”,列出当前目录下所有的文件和文件夹

输入“cd my-tfa回车”,切换到“my-tfa”目录 

输入“ls -l回车

至此,在虚拟机中,备份“ST官方的TF-A源码”完成。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/341640.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合并 K 个升序链表[困难]

一、题目 给你一个链表数组&#xff0c;每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如…

PDF-XChange Editor v10.2.0.384

软件介绍 PDF-XChange Editor&#xff0c;号称打开速度最快最强大的PDF编辑器/PDF阅读器&#xff0c;PDF-XChange专注于PDF文档的编辑&#xff0c;打开PDF文件速度快&#xff0c;软件小功能强大&#xff0c;可以自定义制作PDF电子文档&#xff0c;具有创建&#xff0c;查看&am…

文件与流(C++)

六、文件与流6.1 IO流库概念6.2 istream 与 ostream6.2.1 istream6.2.2 ostream6.2.3 输入输出的格式控制 6.3 string流6.4 文件流 六、文件与流 6.1 IO流库概念 C建立了一个十分庞大的流类库来实现数据的输入输 出操作。其中的每个流类实现不同的功能&#xff0c;这些类通过…

C++学习笔记(三十五):c++ 函数指针及lambda表达式

本节介绍c函数指针。在一些源码中经常能看到c函数指针&#xff0c;但之前一直觉着这一块比较复杂&#xff0c;就一直没去仔细研究&#xff0c;终于有时间去仔细研究这一块内容了。 c风格的函数指针 函数指针是指将一个函数赋值给一个变量的方法&#xff0c;可以将函数作为一个参…

linux命令--管道详解

关于linux命令的管道符的理解 管道&#xff1a;是进程之间的一种通信方式&#xff0c;主要适用的典型类型&#xff1a;父子进程 创建管道的函数c底层接口&#xff1a;int pipe(int f[2]) 返回的int类型&#xff0c;f[1]代表写&#xff0c;f[0]代表读 父进程使用fork函数创建副…

2024美赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

2024年1月11日 主题:非枪人生

2024年1月11日15:58:29 2024年1月11日15:35:13 2024年1月11日15:57:51 对物理进行大致预 2024年1月11日20:27:14 结论&#xff1a;不适合进行数据结构的训练和对电路的模拟感受 2024年1月11日20:28:32 今天也平静的结束了 不需要键盘的支持也就这么结束了我也不知道…

怎么处理网站的一些安全风险

随时互联网的持续发展&#xff0c;数字化转型步伐不断加快&#xff0c;社会各行业都走进了信息化、数字化。但与此同时&#xff0c;网络发展带来了许多风险&#xff0c;各行业面临着日益复杂的数据安全和网络安全威胁。其中&#xff0c;网站的安全风险持续增长&#xff0c;是各…

C++ Primer 6.2参数传递 知识点+练习题

C Primer 6.2参数传递 知识点练习题 指针形参使用引用拷贝Const 形参实参尽量使用常量引用数组形参数组引用形参传递多维数组向main函数传参数含有可变形参的函数练习题待更新 指针形参 void reset(int *p) {*p0;//p指向的整型对象变为0p0;//只是对形参改变p&#xff0c;使其为…

详解如何撰写一个基础的技术交底书

大家好,我是英子老师。作为一名知识产权专家,深耕于专利行业十余年,具有丰富的专利工作经验:曾在大型专利代理机构从事专利代理工作、专利质检工作(抽查代理机构的专利代理人的撰写质量并评分);之后在知名上市企业、行业龙头企业担任高级专利工程师的职位,主要工作内容…

Linux ----冯诺依曼体系结构与操作系统

目录 前言 一、冯诺依曼体系结构 二、为什么选择冯诺依曼体系结构&#xff1f; 三、使用冯诺依曼结构解释问题 问题1&#xff1a; 问题2: 四、操作系统 1.操作系统是什么 2.为什么需要操作系统 3.操作系统怎样管理的 4.如何给用户提供良好环境 五、我们是怎样调用系…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷④

任务二 单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应分析处理并显示结果。返回结果“ax&#xff1a;”&#xff08;x为2、3或4&#xff09;&#xff1b;其中变量x、y均须为整型。编写程序代码&#xff0c;使用JUnit框架编写测试类对编写的程序代码…