打印

石锤内存访问不支持非对齐是否STM32H7的硬件bug

[复制链接]
227|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丑帅丑帅的|  楼主 | 2018-8-4 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、引出问题
uint8_t定义变量地址要1字节对齐。
uint16_t定义变量地址要2字节对齐。
uint32_t定义变量地址要4字节对齐。
uint64_t定义变量地址要8字节对齐。

注:比如4字节对齐的含义就是变量地址对4求余数为0; 8字节对齐就是地址对8求余等于0;

程序里面直接定义是没问题的,如果是指针变量就要注意了。

比如
uint32_t *p;
p=(uint32_t *)0x24000004; 这个地址是4字节对齐。

如果让p去访问0x24000001, 0x24000002,0x24000003这都不是对齐的。

对于M3和M4而言,直接去访问即可(注意芯片要在这个地址有对应的内存空间),因为M3和M4是支持的,而M0/M0+/M1是不支持的

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

741

主题

742

帖子

0

粉丝