DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流

技术交流 & 最新设计指南获取方法

步骤1) 扫描下方二维码,进入微信公众号

DSP 程序远程升级 / Bootloader设计指南(四)——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



4 Bootloader数据流

“在线升级程序时,程序以怎样的数据流存在”

当我们设计Bootloader时,在线升级程序通常使用的是.hex文件,.hex文件有多种类型,我们可以依据需求进行选择,但.hex文件中的数据是以固定“数据流格式”存在的。

通常情况下,Bootloader数据流分为16-bit和8-bit两种,二者大同小异,只是数据存储类型不同。更多关于Bootloader数据流的内容请参考《TMS320xxxx xxxx Boot ROM Reference Guide》。

4.1 数据流结构

Bootloader数据流中的数据都采用16进制。

数据流中:

第1个16-bit字为关键字,用以表明后续数据的宽度:8 bits或16 bits。关键字0x08AA代表8-bit数据流,0x10AA代表16-bit数据流。

第2~9的8个字为保留字:0x0000。

第10~11的2个字包含着22-bit的程序入口地址。

第12个字代表第一个数据块的长度,无论是在8-bit或16-bit数据格式中,该长度的单位为字(16-bit),也就是说在8-bit数据格式中,需要前后两个字节拼成一个16-bit字后进行数据长度统计。

第13~14个字代表第一个数据块存放的起始地址。

后续的字是数据块的具体内容。

当一个数据块结束后,紧接着的字分别为下一个数据块的长度、存放起始地址、数据内容,如此循环,直至当数据块长度为0x0000。

也就是说Bootlodaer数据流必须以0x0000结尾。

4.2 16-bit数据流

16-bit数据流示例:

DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流_第2张图片

当示例数据流装载完成后,存储器中的内容为:DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流_第3张图片

4.3 8-bit数据流

当数据流为8-bit格式时,字的低字节(LSB)在高字节(MSB)之前,而对于32-bit的值,如目标地址,最高字(MSW)首先被装载,然后是最低字(LSW)。

8-bit数据流示例:
DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流_第4张图片

当示例数据流装载完成后,存储器中的内容为:
DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流_第5张图片

你可能感兴趣的:(DSP 程序远程升级 / Bootloader设计指南(四)——Bootloader数据流)