Keil cortex-m C编译器总是编译函数地址4字节对齐吗?

时间:2017-08-24 07:10:49

标签: arm keil iar cortex-m

我试图将一个函数从FLASH复制到内存,如果我使用word复制它会更快,但他STM和LDM指令要求地址是4字节对齐的,所以我不知道comtex-m C编译器这样因为Keil / IAR或GNU总是将函数编译为4字节对齐?

1 个答案:

答案 0 :(得分:0)

不。由于Cortex-M处理器使用16位Thumb指令,因此子例程的标签将仅2字节对齐。

在您的情况下,如果要强制4字节对齐以提高数据传输速度,则可以将功能放在单独的部分中。该部分默认为4字节对齐。有关如何执行此操作的信息,请参阅Placement of code and data with attribute((section("name")))attribute((section("name"))) function attribute