7.1.1.2 ARM Assembler armasm 当 拒绝你的 段——一个被忽略的对齐陷阱,如何在裸机启动代码中让 突然失效? 你写好了 ,清零 BSS,设置 SP,跳转到 。一切看似完美。 你在 Keil MDK 或 ARM Compiler 6(ARMCLANG)环境下用 汇编,链接器脚本也照着 ARM ABI 规范写了: 放 ROM, 和 放 RAM, 定义在 段末尾。 可烧录后,第一条 加载出来的值,不是你期望的 ,而是 ——低两位被篡改了。 更诡异的是:这个错误只在启用 时消失;一旦加上 (默认),它就固执地复现。 你反复检查链接器脚本、符号定义、 指令……却始终找不到源头。 这不是玄学。