我正在使用gdb在嵌入式设备上加载可执行文件。加载可执行文件时,gdb会说:
xPSR: 0x01000000 pc: 0xf0094902 msp: 0x2001b508
Loading section .text, size 0x16240 lma 0x8000000
Loading section .data, size 0x8f0 lma 0x8016240
Start address 0x8000000, load size 92976
据我所知,
pc
是指令指针。我假设“起始地址”是pc
的起始地址。然而,在gdb给我的信息中,起始地址(0x8000000,顺便说一下,它与.text
相同)与pc
不同(0xf0094902)。pc
和起始地址有什么区别?让起始地址与.text
相同有意义吗? 最佳答案
这里所指的“开始地址”是二进制映像的开始,而不是执行开始地址。执行的起始地址是重置向量中的任何内容(假设您像以前一样使用cortex-m3?)是的。