ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Cortex-M3:为什么需要 ALIGN 在分散加载中?

Cortex-M3:为什么需要 ALIGN 在分散加载中? 难度:★★本文首发于我的嵌入式技术号「OneChan讲Soc嵌入式」,未经授权禁止转载。前几篇文章我们反复提到,.sct文件里到处是ALIGN:LR_IROM1 0x08000000 0x00080000 { ER_IROM1 0x08000000 0x00080000 { *.o (RESET, +First) *.o (+RO) } RW_IRAM1 0x20000000 0x00010000 { *.o (+RW) *.o (+ZI) .ANY (+RW +ZI) } }你可能会想:汇编里已经有ALIGN了,为什么分散加载文件里还要再写一遍?链接器不能自己搞定对齐吗?答案是:能搞定一部分,但搞不定全部。而且,如果你在该写ALIGN的地方没写,链接器不会报错——它只会在运行时给你一个随机触发的 HardFault。今天这篇文章,就来拆开分散加载文件里ALIGN的三重作用,以及它在 Cortex-M3 上最容易被忽视的一个硬性要求。一、分散加载中的 ALIGN 和汇编中的 ALIGN 有什么区别?汇编中的ALIGN:作用于当前 AR
返回列表