请教LM3S BOOTLOADER代码中,RESETISR为什么要减0x20000000?

2019-03-24 16:20发布

请教LM3S BOOTLOADER代码中,RESETISR为什么要减0x20000000? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
daicheng
1楼-- · 2019-03-24 23:26
 精彩回答 2  元偷偷看……
ebuffalo
2楼-- · 2019-03-25 01:49
< :TI_MSP430_内容页_SA7 --> export  __vector_table
__vector_table
    dcd     g_pulStack + (STACK_SIZE * 4)   // Offset 00: Initial stack pointer
#ifdef FLASH_PATCH_COMPATIBLE
    dcd     ResetISR - 0x1ffff000           // Offset 04: Reset handler
    dcd     NmiSR - 0x1ffff000              // Offset 08: NMI handler
    dcd     FaultISR - 0x1ffff000           // Offset 0C: Hard fault handler
#else
    dcd     ResetISR - 0x20000000           // Offset 04: Reset handler
    dcd     NmiSR - 0x20000000              // Offset 08: NMI handler
    dcd     FaultISR - 0x20000000           // Offset 0C: Hard fault handler
#endif
    dcd     IntDefaultHandler               // Offset 10: MPU fault handler
    dcd     IntDefaultHandler               // Offset 14: Bus fault handler
    dcd     IntDefaultHandler               // Offset 18: Usage fault handler
......

单片机复位后按上面的定义应该跳到ResetISR - 0x20000000,按道理应该跳到ResetISR 才对啊?
academic
3楼-- · 2019-03-25 05:16
你这段代码从哪里复制的?
我们知道bootloader会复制到SRAM中执行,此时复位后中断向量是定位到SRAM中的复位向量,但是如果要定位到FLash中的复位向量就要,在无补丁情况下要减去0x20000000。
ebuffalo
4楼-- · 2019-03-25 10:12
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章