3.1.3.2 子程序调用与返回


文档摘要

3.1.3.2 子程序调用与返回 3.1.3.2 子程序调用与返回:栈帧对齐失效引发的“幽灵崩溃”——一个在ARM64嵌入式系统中真实复现、定位并根治的ABI陷阱 你有没有遇到过这样的场景? 一段逻辑清晰、边界完备、单元测试全部通过的C函数,在集成进RTOS固件后,偶尔在某个特定中断上下文里——不是每次,不是固定位置,而是在第7次调用 之后——突然跳转到非法地址,触发HardFault,且故障寄存器显示 , ? 你单步跟进去,发现函数入口处 执行正常, 指令也顺利执行;但返回后,CPU却像喝醉了一样,把 寄存器里那个本该指向 的地址,当成了 去取指。 你翻遍编译器手册、检查中断向量表、确认堆栈未溢出、甚至重刷了Flash……问题依旧如影随形。 这不是玄学。


发布者: 作者: 转发
评论区 (0)
U