我试图将一个函数从FLASH复制到内存,如果我使用word复制它会更快,但他STM和LDM指令要求地址是4字节对齐的,所以我不知道comtex-m C编译器这样因为Keil / IAR或GNU总是将函数编译为4字节对齐?
答案 0 :(得分:0)
不。由于Cortex-M处理器使用16位Thumb指令,因此子例程的标签将仅2字节对齐。
在您的情况下,如果要强制4字节对齐以提高数据传输速度,则可以将功能放在单独的部分中。该部分默认为4字节对齐。有关如何执行此操作的信息,请参阅Placement of code and data with attribute((section("name")))和attribute((section("name"))) function attribute