DSP 程序远程升级 —— Bootloader设计指南(七)
技术交流 & 最新设计指南获取方法
步骤1) 扫描下方二维码,进入微信公众号
步骤2) 获取最新指南,在公众号后台回复以下关键字:【bootloader】
步骤3) 有疑问,在公众号后台回复以下关键字:【交流群】
目录
1
初识Bootloader
1.1 一次Bootloader
1.2 二次Bootloader
1.3 DSP上电引导过程
2
关于c_int00
2.1 c_int00完成的工作
2.2 系统初始化
2.3 全局变量初始化
2.4 全局对象构造
2.5 main函数与exit函数的调用
3
CMD文件与DSP存储空间
3.1 MEMORY和SECTIONS指令
3.2 程序与数据“段”
4
Bootloader数据流
4.1 数据流结构
4.2 16-bit数据流
4.3 8-bit数据流
5
FLASH擦写操作 —— FLASH
API的使用
5.1 FLASH操作的重要特点
5.2 FLASH API使用步骤
5.3 FLASH API常用函数使用举例
6
Bootloader设计过程中的9大关键点
6.1 Bootloader程序在升级过程中不被擦除的实现方法
6.2 上电后先进入Bootloader再跳转至main()函数的实现方法
6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法
6.4 Bootloader与上位机形成交互式通信
6.5 Bootloader程序能够对接收数据校验的实现方法
6.6 在数据出错等情况下能够自动重启的实现方法
7
CCS输出文件格式 ——
ASCII-Hex、Intel-Hex与Binary-Hex文件
7.1 CCS配置生成Hex文件的方法
7.2 ASCII-Hex
7.3 Intel-Hex
7.4 Binary-Hex
7 CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
“DSP使用时到底有几种不同的输出文件”
当我们使用远程烧写或在线升级程序时,要用到Hex文件,但是Hex文件种类繁多,光CCS就提供了七八种,这里对常用的Hex文件作以介绍,以供不同的应用做选择。
7.1 CCS配置生成Hex文件的方法
使用CCS可以输出不同类型的hex文件,但默认的配置情况下,编译生成的代码都是.out格式的,如果要生成.hex格式,具体配置方法以CCS8.0为例,步骤如下:
1)
右键工程,选择Properties
2)
选择下图中的选项卡,然后勾选“Enable C2000 Hex Utility”
3)
然后选择“Output Format Options”选项卡,在Output
format选项中选择所需类型,具体类型的结构与内容将在后面介绍。
7.2 ASCII-Hex
ASCII-Hex输出格式文件后缀为.hex,文件结构如下图所示:
(图源:TMS320C28x Assembly Language Tools v18.1.0.LTS User’s Guide)
文件以ASCII字符STX(控制字,0x02)开始,以字符ETX(控制字,0x03)结尾,地址Address部分应用在Boot Table中时通常是没有的。
示例文件:
7.3 Intel-Hex
Intel-Hex输出格式文件后缀也为.hex,文件内数据为16进制数据。
以字符“:”开始;
第1字节(如0x20)为本行数据长度;
第2、3字节为本行数据起始地址;
第4字节为记录类型,CCS里用到的记录类型有:
00 – 数据
01 – 文件结束标志
04 – 扩展地址开始
第5字节~倒数第2字节为数据内容;
最后1字节为校验码。
结构如下图所示。
(图源:TMS320C28x Assembly Language Tools v18.1.0.LTS User’s Guide)
7.4 Binary-Hex
Binary-Hex为二进制文件,输出文件后缀同样为.hex,内部仅含所有数据内容,无起始结束标志,无校验。其数据内容与ASCII-Hex文件中的数据部分一致。
二进制文件不能通过文本编辑软件直接查看,想要查看二进制文件,可以使用软件二进制文件查看器:Binary Viewer。
Binary-Hex文件作为上位机的读取文件时,可以直接被读取数据,无需转换。而对于ASCII-Hex文件和Intel-Hex文件,使用上位机读取时,读入内容为ASCII形式,包括冒号和空格等信息,而这些信息是要被剔除的。