欢迎光临
我们一直在努力

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

赞(0)
未经允许不得转载:171主机测评 » Cortex-M3:为什么需要 ALIGN 在分散加载中?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址