西安哪家网站公司做的比较好,北京有哪些软件公司,2023年11月新冠高峰,网站制作长沙TF-A是ARM公司提供的#xff0c;ST公司通过修改它#xff0c;做了一个自己的TF-A代码。因为在后期开发中#xff0c;若硬件被改变了#xff0c;我们需要通过修改ST官方的TF-A源码就可以自己的TF-A代码了。为了防止源文件被误改了#xff0c;我们需要将S…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等外设把Uboot从Flash(NAND、NOR FLASH、SD、MMC 等)拷贝到 DDR 中。
如果我们直接去官方网站下载TF-A的源码这样的开发难度太大。半导体厂商都会从TF-A官网下载源码然后修改适配自己的芯片把自家的芯片加进去。因此我们可以直接使用半导体原厂给提供的TF-A即可。
ST官方TF-A、uboot、kernel等源码下载链接为
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源码”完成。 注意
目前“my-tfa”目录和“tf-a”目录里的内容完全相同用来备份“ST官方的TF-A源码”。
将来“tf-a”目录里的内容需要被用来修改用作自己的tf-a。