TI的片上固化好的boot ROM(上电引导加载程序)退出后的去向

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问价那种已经指定好了,这总指定就是对各种段的指定。

猜你喜欢

转载自blog.csdn.net/blueoce/article/details/120013515