在newLib中使用对齐内存的malloc



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

经过一些调查,我意识到malloc返回了未对齐的内存块。所以,我想知道是否有一种方法可以配置malloc,使其在对齐指针处分配内存?我知道memalign可以做到这一点,但由于我使用malloc的地方已经太多了,所以如果我可以继续使用mallocs会更简单。

我正在使用库"newLib"。

ISO规范规定malloc()始终返回一个内存地址,该地址适用于指向指定大小内的任何对象的指针。在实践中,这通常意味着它应该在8字节的边界上对齐。

如果不是,那么它就是一个不符合要求的实现,应该进行处理。

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

最新更新