Advertisement

stm32 数据 对准 与 FreeRTOS 堆 栈 配置 PRESERVE8

阅读量:

为什么需要数据对齐?

为提升数据处理效率,应尽量避免内存中出现跨边界存储的情况,从而减少数据读取次数。这种策略本质上是通过增加存储空间的使用来换取时间效率的提升。

在同一水平位置上的数据属于同一边界,变量若位于该边界内,仅需一个存储周期即可完成读取。然而,若数据跨越了上下两个边界进行存储,则至少需要两个存储周期才能完成读取操作。

依据存储器结构设计,如上图所示,相关参考资料:多体并行:高位/低位交叉编址

在这里插入图片描述

【CPU的数据总线宽度为32位,这意味着在单个存储周期内,最多可从内存中提取32位数据。此处所指的一次,即为一次存储周期的完成过程。
LDR r1 , [pc,#4] 指令的作用是从 pc+#4 的地址位置开始,连续读取四个字节的数据,并将其存入 r1 寄存器中。
LDRH r1 , [pc,#4] 指令则是从 pc+#4 的地址位置开始,连续读取两个字节的数据,并将其存入 r1 寄存器中。
LDRB r1 , [pc,#4] 指令则直接读取 pc+#4 地址位置上的单个字节数据,并将其加载至 r1 寄存器。
以上所有指令

全部评论 (0)

还没有任何评论哟~