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软件要使用的二进制文件。

相关推荐
groundhappy5 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕6 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫7 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生8 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.119 小时前
linux基础IO
linux·运维·服务器
法雅特吉他11 小时前
吉他弦寿命模型与更换判定
经验分享·新媒体运营·学习方法·材质·内容运营
BelongPanda11 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯11 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983411 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
yunwei3711 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像
linux·开源