stm32的变量定义,32b是不是效率更高?

2019-12-28 17:49发布

如题,如果工作再32位模式,是不是32位最好,8位或者16位在读取的时候还要增加移位和对齐操作。

Thumb模式呢?

懂编译器和熟悉ARM的出来说说,主要是M3,乘除法效率方面。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
takashiki
2019-12-29 12:26
对于M3来说:

1、M3没有ARM模式,只有Thumb2模式。
2、基本上,在对齐访问模式下,32b访问效率最高,但是LDR等指令相对于8b、16b来说是一样的,因为有专用的指令LDRB、LDRH之类。算数、逻辑运算等等只有32位的操作进行8b、16b运算需要额外的操作而降低效率,但是一般编译器优化之后降低得并不明显。在非对齐访问模式下,32位访问效率比较低,非对齐模式下8位访问效率是最高的,16b、32b需要额外的时钟周期来拼接。因此,__packed关键字是会降低效率的。

一周热门 更多>