[结]main 函数地址不是0 但是为何调用堆栈窗口显示main地址是0?
本帖最后由 luke2022 于 2022-7-1 13:45 编辑最近遇到一个调试的问题 因为调试时候要使用到 call stack 所以 注意到不自然的地方 .就是call stack 中main 的地址竟然是0 但是启动时候,main函数经过查证 是类似 0x08003ADD 之类的地址才对,那么为啥怎么可能是 在调用堆栈是 0 呢? 感谢各位大牛解惑,在下先谢过. 发截图来看一下 本帖最后由 luke2022 于 2022-7-1 12:16 编辑
codefish 发表于 2022-7-1 11:02
发截图来看一下
(引用自2楼)
其实,我在多个芯片stm32 f103 hk030M 甚至 stm32 f030 好像都是一样. 感觉也不是特别耽误事.只是有点奇怪. 函数的保存地址和内存实际地址的区别吧 0x0000 0000是根据BOOT引脚的设置映射不同地址过去的,Flash在0x0800 0000,但复位后的实际运行入口在0x0000 0000。 多谢楼上各位大佬指点, 这点之前真的没有注意到. 多谢多谢! 没想到是这种映射 gzhuli 发表于 2022-7-1 13:00
0x0000 0000是根据BOOT引脚的设置映射不同地址过去的,Flash在0x0800 0000,但复位后的实际运行入口在0x000 ...
(引用自5楼)
0x0000 0000 是存放栈指针 MSP 的初始值,而楼主图中却显示main地址是 0x0000 0000 ? C51进MAIN函数之前,有.A51文件的还会先进.A51. gzhuli 发表于 2022-7-1 13:00
0x0000 0000是根据BOOT引脚的设置映射不同地址过去的,Flash在0x0800 0000,但复位后的实际运行入口在0x000 ...
(引用自5楼)
芯片有这个设计,跟楼主的现象没关系啊 关注。。。。
页:
[1]