Linux第29步_安装“Notepad++”软件

STM32CubeProgrammer脚本文件的后缀为".tsv",ST公司官方也叫做FlashLayout。在烧写"TF-A固件"之前,我们需要用"Notepad++"软件打开"后缀为.tsv"的脚本文件,根据需求决定哪些文件需要更新,设置好这个脚本文件。

.tsv是文本格式的,很容易阅读。关于.tsv 语法的详细讲解,请参考:

https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer flashlayout

一、安装"Notepad++"软件

1、双击"npp.8.5.2.Installer.x64.exe",得到下面的界面:

2、点击"OK"按钮

3、点击"下一步"

4、点击"我接受"

5、点击"下一步"

6、全部勾选,点击"下一步"

7、勾选"Create Shortcut on Desktop",然后点击"安装"

8、点击"完成" 。

9、点击"文件",找到需要打开的tf-a.tsv文件,选中后,点击打开。

10、打开"C:\Program Files\STMicroelectronics\images"目录下的tf-a.tsv,得到下图:

11、点击"视图",再点击"显示符号",最后点击"显示空格与制表符",得到下图:

得到下图:

二、tf-a.tsv文件配置解析

1、Opt域

Opt是第一个项,此选项可以设置为"-"、"P"、"D"或"E",通常使用"-"或"P"。

"-":表示分区或者设备无需修改,如果Device域为 none,那么Opt强制为"-"。

"P": 表示需要向"分区"或者"设备"烧写固件。

STM32CubeProgrammer本质是通过boot来烧写系统的,也就是先把boot加载到板子的DDR里面并运行,然后使用uboot来烧写系统。uboot会请求需要烧写的二进制文件,然后将其烧写到"指定的分区"或者"指定的Falsh设备"里面。

"D":删除"指定的分区"或"指定的设备"。

"E":表示不更新"指定的分区"或"指定的设备",相关的"Id 项"会被跳过。

"P"还可以和"D"或"E"搭配使用:

"PE":不用更新程序,即"指定的分区"或"指定的设备"不需要烧写固件,这样,我们就可以单独更新tf-a、uboot、kernel或者rootfs。

"PD":删除并更新,也可以写作"DP"。

"PDE":删除并且保持为空,也可以写作 PED/DPE/DEP/EPD/EDP。

2、Id域

STM32CubeProgrammer通过"Id域"来确定烧写方法,使用它来识别下载到设备的"下一个二进制文件":

ROM 或者FSBL:二进制文件要加载到RAM中。

SSBL(uboot):二进制文件要烧写到Flash中。

默认的Id含义:

3、Name域

Name域为一段字符串,也就是目标内存段的名字;

4、Type域

"Type域"仅仅用于uboot,用来选择需要更新的 Flash 区域:

1)、SD卡或者EMMC设备对应的"GPT分区"。

2)、原始的Flash设备,如 NAND、NOR 等对应的MID分区。

SD/EMMC和NAND/NOR所支持的"Type类型":

STM32MP157开发板为EMMC类型,所以我们只讲EMMC下的"Type 域"含义:

Binary: 原始的二进制文件。

FileSystem: linux文件系统,为 ext2/ext4/fat格式

System: Linux内核。

5、Device 域

"Device域"指定"Uboot设备树"定义的设备和索引(从0开始),不同的设备其设备名字和索引不同:

"mmc+索引":如mmc0、mmcl、mmc2 等,对应 SD卡或EMMC。

比如:SD卡和EMMC分别接到MPI的SDMMC1和SDMMC2接口上,那么SD卡和EMMC 分别为mmc0 和mmcl。

"nor+索引":如 nor0,对应NOR或者OUADSPIFlash。

"nand+索引": 如 nand0,对应连接到FMC总线上的并行NAND Flash。

"spi-nand+索引":如 spi-nand0,对应连接到QSPI上的串行NAND Flash。

"none": 仅用于RAM,就是将固件加载到RAM里面,仅允许启动阶段使用,注意:其"Type域"要为Binary,"Offset域"要为0,Opt 域为'-'。

"ram+索引":如 ram0,将烧写固件加载到RAM中运行。

6、Offset域

Offset 就是偏移,支持的值如下:

1)、boot1:EMMC的第1个启动区域分区。

2):boot2:EMMC的第2个启动区域分区。

3):数字:具体的偏移值,单位为字节。

7、Binary域

STM32CubeProgrammer软件要使用的二进制文件。

相关推荐
Danileaf_Guo6 小时前
手搓KVM虚拟化!Ubuntu 26.04 + KVM 7.0.0,告别VMware的低成本玩法
linux·运维·服务器·ubuntu
优化控制仿真模型6 小时前
26年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf
wuminyu6 小时前
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析
java·linux·c语言·jvm·c++
嵌入式×边缘AI:打怪升级日志6 小时前
全志T113 Tina-Linux开发环境搭建:从安装依赖到打包烧录完整教程
linux·运维·服务器
Amos_ FAT7 小时前
关于PS软件转ico图标的一点经验
经验分享
yugi9878387 小时前
Linux下58mm热敏打印机驱动安装与配置指南
linux·运维·服务器
遇见火星7 小时前
centos7和centos8设置本地镜像为yum安装源的方法
linux·运维·服务器
piaopiaolanghua7 小时前
[Ai问答] Docker是否支持跨架构镜像,譬如ARM/X86
linux·运维·服务器
木木_王7 小时前
嵌入式Linux学习 | 数据结构(Day06)全解:线性表 + 栈队列 + 静态库 / 动态库(原理 + 代码 + 编译实战 + 易错点)
linux·数据结构·笔记·学习
howareyou237 小时前
Linux中用户态的函数是如何通过系统调用进入内核态的(二)
linux·服务器·linux系统调用