• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的大小端对齐作用

渐臻佳境 2019-04-26 浏览量:848
为什么会有大小对齐,两者模式的主要区别是什么
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 大小端 是一个概念

    对齐是另一个概念。

    大小端就是,0x01020304,这个数据存到 32 位内存中,怎么存放的问题,可以按照 0x01  0x02  0x03  0x04  也i可以按照 0x04  0x03  0x02  0x01 这个是大小端问题

    对齐,比如数据总线 32 位的,一次正好读写 32 位 4 字节数据。那就最好 4 字节对齐,比如 0x01020304 这个数据,要是存在 0x0 - 0x03 这四个字节内,那么一次就可以读出来。当然也可以放在 0x2 - 0x05 这四个字节内,这个就是么有对齐的,如果要读写,需要读两次,因为 stm32 指针后两位都是 0 ,所以只能从 0x0 读一次,再从 0x4 对一次,才能把 0x2 - 0x5 的数据读取出来。如果是  0x0 -0x3 的数据,一次就可以读出来。

    提升读取效率,对齐还有其他作用

    • 发布于 2019-04-27
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 这个是数据存储传输中必然遇到的一个问题,但其实一般如果是独立的系统,不需要关注,只有在系统需要与其他发生联系时才需要关注。

    大小端问题就是描述数据在内存中(以此为代表,其实也包括网络传输和介质存储中),到底是高位在前还是高位在后问题,

    特别是对多字节的数据如何存储,比如内存中一个数据 0x01020304(DWORD) 的存储方式到4000开始的4个字节中,可能存储的方式是

       4000 4001 4002 4003
    LE  04    03    02    01
    BE  01    02    03    04

    LE: Little endian,将低序字节存储在起始地址
    BE:Big endian , 将高序字节存储在起始地址


    这就是存储的区别,在数据传输时也有类似问题。


    • 发布于2019-04-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的大小端对齐作用