3.2.1.2 Thumb 混合长度编码


文档摘要

3.2.1.2 Thumb 混合长度编码 3.2.1.2 Thumb 混合长度编码:当 突然跳向 0x00000000 —— 一次由指令对齐误判引发的硬故障溯源实录 你有没有在调试一个运行在 Cortex-M4 上的固件时,突然发现程序在某个看似无害的函数调用后,PC 跳到了 ?没有堆栈回溯,没有异常入口日志,只有 被无声触发,而 ——意味着向量表基址非法。你反复检查 ,确认它指向了正确的 SRAM 或 Flash 起始地址;你单步执行,发现 fault 发生在一条 指令之后;你查寄存器, ;你心头一紧:这不是一个合法函数指针——它甚至没对齐到 2 字节边界。可为什么编译器会把 放进 ?更关键的是:为什么 没报 ,反而直接跳进了黑洞? 这不是玄学。


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