数据表显示主代码存储器空间从0x4400开始。
当我查看反汇编时、我看到了我的 ISR 代码段。 这将以我的 Timer2_A0 ISR 结束、该 ISR 只会切换 LED。 以下是指以下内容的反汇编代码:
TIMER2_A0 (): 00464A:E2F2 0223 XOR.B #8、&Port_3_4_P4OUT 302} 00464e:1300 RETI 004650:0000 布拉 @PC 004652:02B9 0000 SubA #0x20000、R9 004656:088C 0001 MOVA #0x80001、R12 00465a:4650 0000 MOV.B 0x0000 (R6)、PC 00465e:1C00 .word 0x0000 004660:0000 布拉 @PC 004662:FFFF FFFF AND。B @R15+、0xFFFF (R15) 004666:FFFF FFFF AND。B @R15+、0xFFFF (R15) 00466A:FFFF FFFF AND。B @R15+、0xFFFF (R15) 00466e:FFFF FFFF AND。B @R15+、0xFFFF (R15) 004672:FFFF FFFF 和.B @R15+、0xFFFF (R15)
当我使用调试窗口并单击 main()时,我看到我的主程序从0x10234地址开始。 如果 PC 从0x4400启动、如何到达0x10234? 我看不到将我转到那里的跳转指令。 我只是对程序在加电后是如何执行的有点困惑。 对于此器件、在加电/复位时 PC 的起始值似乎为0x4400。
我提出这一问题是因为我正在尝试实现 BSL、并且希望更好地了解代码执行过程。 有人能否详细说明一下这里有关从复位执行代码的情况、以及为什么代码似乎在 FRAM 代码空间存储器中拆分?
