
NOINIT:指定此数据段仅仅保留了内存单元,而没有将各初始值写入内存单元,或者将各个内存单元值初始化为0
READWRITE可读可写
ALIGN=3-- 2 的3次方表示以8字节对齐
在Define框中填入上图的宏定义,即可解决编译警告
STM32F10X_HD:表示我使用的STM32芯片是高性能f103系列
USE_STDPERIPH_DRIVER:表示我们需要使用stm32标准外设库
实际调试过程中发现,b - a = 4,实际上B_TypeDef只是继承自A_TypeDef,仅仅增加了一个2字节的校验和,造成我在打印过程中,用sizeof(B_TypeDef),老是多打印两个字节的数据,经过大神的指点,确定是对齐的问题,解决方式如下:
利用伪指令 #pragma pack (n) 动态调整内存对齐的方式
我在实际定义结构体时,增加了两条伪指令,完美解决问题。
以上就是关于keil 环境下 AREA SUN ,NOINIT, READONLY , ALIGN=3 分别表示什么意思全部的内容,包括:keil 环境下 AREA SUN ,NOINIT, READONLY , ALIGN=3 分别表示什么意思、KEIL编译STM32程序时错误、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)