TI对应的器件文档说的很清楚,如上文所示:
对于每一个被选定的boot ROM程序,运行结束跳转的时候,一定是跳转到0x00,或者0x80000这两个位置。
通常,我们的程序就放在FLASH,bootROM跳转到0x80000后,这个位置要有个跳转指令,做应用程序和boot ROM退出后的衔接处理。对应的就是F2837xD_CodeStartBranch.asm文件中的跳转函数:
code_start:
.if WD_DISABLE == 1
LB wd_disable ;Branch to watchdog disable code
.else
LB _c_int00 ;Branch to start of boot._asm in RTS library
.endif
上面这个code-start段,被指定到了BEGIN区
而 BEGIN : origin = 0x080000, length = 0x000002
也就是说,LB _c_int00 被安放在0x080000开始的两个字中了,
从bootROM退出后,执行这条跳转函数,在_c_int00中,有对main函数的引用。
至于面函数所在的主程序,存放在上面地方在这里不用关心,在CMD问价那种已经指定好了,这总指定就是对各种段的指定。