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

相关推荐
tntxia1 天前
linux curl命令详解_curl详解
linux
扛枪的书生1 天前
Linux 网络管理器用法速查
linux
顺风尿一寸2 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode2 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫2 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
努力的小雨2 天前
我用 QClaw 做了个 Web3 陪学助手,专治 Java 程序员的“概念劝退”
经验分享·ai智能
AlfredZhao4 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐5 天前
Linux内存扩容指南
linux
zylyehuo5 天前
Linux 彻底且安全地删除文件
linux
用户805533698036 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式