newLib 中具有对齐内存的 malloc

malloc with aligned memory in newLib

我目前正在使用 Atmel 板 (SAM4C ARM Cortex-M4) 进行项目,我注意到当我设置位 "trap unaligned word accesses" 时,我总是得到 "Unaligned Access Usage Fault"。

经过一些调查,我意识到 malloc return 内存块是未对齐的。所以,我想知道是否有办法配置 malloc 以便它在对齐指针处分配内存?我知道 memalign 可以解决这个问题,但是由于我使用 malloc 的地方已经太多了,如果我继续使用 malloc 会更简单。

我正在使用库 "newLib"。

ISO 规范规定 malloc() 总是 returns 一个内存地址,该地址适合作为指向任何符合指定大小的对象的指针。实际上,这通常意味着它应该在 8 字节边界上对齐。

如果不是,那么它是一个不符合标准的实现,应该被打屁股。

话虽如此,如果 newLib 不符合标准,我会真的、真的、真的、非常惊讶。