看各位都在研究TMS570的Bootloader程序,分享一下本人在TMS570的Boot设计文档。
1.1 Flash地址分配
TMS570系列Flash地址从0x00000000开始,从地址其实开始必须先存放系统生成的intvecs函数。RAM地址从0x08000000开始具体的RAM和Flash大小根据不同芯片类型确定。一下分配地址以TMS570LS0232为例。
Bootloader使用:
VECTORS (X) : origin=0x00000000 length=0x00000020
BOOT_LOAD (RX) : origin=0x00000020 length=0x00001200
FLASH_API (RX) : origin=0x00001220 length=0x00001200
FLASH0 (RX) : origin=0x00002420 length=0x00005BE0
SRAM (RW) : origin=0x08002000 length=0x00005E00
STACK (RW) : origin=0x08000000 length=0x00001FF0
APP使用:
VECTORS (X) : origin=0x00008000 length=0x00000020
FLASH0 (RX) : origin=0x00008020 length=0x00017FE0
STACKS (RW) : origin=0x08000000 length=0x00001500
RAM (RW) : origin=0x08001500 length=0x00006B00
1.2 跳转命令
Bootloader跳转到APP指令:
g_ulTransferAddress = (uint32_t)APP_START_ADDRESS;
((void (*)(void))g_ulTransferAddress)();
APP跳转到Bootloader指令:
g_ulTransferAddress = (uint32_t)BOOT_START_ADDRESS;
((void (*)(void))g_ulTransferAddress)();
1.3 相关说明
由于TMS570芯片对于Flash操作不能同时读写,所以有关对Flash操作的都需要将代码Copy到RAM中执行,需要在一下位置进行修改。
1. 在CMD文件中把相应的代码指定放入相应的区域,代码如下;
2. 在工程中的sys_core.asm文件中加入Copy功能函数
3. 需要在.h中声明该Copy函数。并在启动代码中调用执行。
1.1 Bootloader软件流程
1.1 App软件流程
1.2 APP程序集成Boot步骤:
1. 修改CMD文件,修改方法如2.1所示。
2. 添加文件xx.c和xx.h文件到工程。
3. 工程目录添加F021驱动文件夹\F021 Flash API\02.01.01\include。
4. 工程目录添加F021_API_CortexR4_BE.lib路径及其Lib文件。
6. 集成Bootloader APP软件,在CAN驱动中增加接收扩展帧MessegeBox。
7. CAN接收中断,引用xx.h。
8. 在sys_startup.c文件中屏蔽以下内容:
9. CCS编译生成Hex文件,需要如下设置: