TMS320F280049C: F280049C CAN Bootloader 开发

Part Number: TMS320F280049C


F280049C CAN Bootloader设计总结,希望能帮到同仁。

启动流程:上电 → 判断是否进入 Boot → 跳转 App

 

上电启动(进入 Bootloader)

MCU 上电/复位后,CPU 会从 Flash 起始地址 (0x08000000) 读取中断向量表:先取出第 0 项设置栈顶地址 (MSP),再取出第 1 项设置程序计数器 (PC),于是程序从 Reset_Handler 开始执行。

这里存放的就是 Bootloader,所以第一条执行的指令一定来自 Boot 区。

Bootloader 会先做一些初始化工作,比如:

配置时钟

初始化 CAN/UART 等通信口

准备 RAM 缓冲区

通俗点理解:MCU 一开机,先去找门卫(Bootloader),问清楚情况,再决定进不进小区(App)。

 

判断是否进入 Boot 模式

Bootloader 的主要任务之一,就是决定接下来要干啥。常见的判断方式:

按键/跳线触发:比如按住某个按键上电,进入 Boot 模式。

标志位触发:上位机提前写了某个 Flash 标志或 RTC 寄存器,Bootloader 看到后进入升级。

App 校验失败:比如 CRC 错误,说明应用坏了,只能留在 Boot 模式等待重新下载。

超时机制:Bootloader 等待几秒钟,如果上位机没有发“升级请求”,就自动跳转到 App。

通俗点理解:门卫(Bootloader)会检查:要不要维修?房子是不是安全?如果有人要求维修(升级),它就停留;否则就直接放人进小区(App)。

 

跳转到应用程序 (App)

如果判断结果是不需要升级,Bootloader 就会跳到应用程序:

修改 中断向量表偏移量 (SCB->VTOR),指向 App 的起始

上位机采用VS C++开发