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

为什么STM32的动态内存管理在初始化时候选择64字节对齐

minzisc 2020-02-13 浏览量:1445
为什么STM32的动态内存管理在初始化时候选择64字节对齐
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32实现动态内存管理,是要你管的64位的方式来对齐的,这是因为我们在变量定义的时候最大的数据长度就是long long类型,也就是64位,这样可以实现任何长度的数据存储和读取
    • 发布于 2020-02-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 不是64bytes而是64bits。

    所有支持STM32的IDE可定义的最宽数据就是 long long类型,64bits。对其在64bits,你申请的你内存可以兼容所有宽度的数据来给软件计算。

    • 发布于2020-02-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为需要按照变量的最大长度来定义,比如double 和long long都是8个字节的也就是64位,所以需要满足最长类型,如果你们程序保证不能这两个类型也可以32位对齐的,可以节约资源
    • 发布于2020-02-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先,对齐是8bytes,也就是64位对齐,这个是为了能存储任何可能的数据。一般常见数据类型最长的就是64bits,比如long long整型,或者double类型

    不过这个设置是默认值,但如果程序中肯定不涉及这样的数据类型,也可以在配置选项中设置为32byte也就是4字节对齐。

    比如设置

    __align(4)

    • 发布于2020-02-13
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32是32位数据,内部的总线应该是64位的,64位对齐,数据传输效率会高
    • 发布于2020-02-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 选择64位对齐,是为了保证你的STM32可以存储任意l类型的数据的,不然数据太长不能识别读取
    • 发布于2020-02-27
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

为什么STM32的动态内存管理在初始化时候选择64字节对齐