硬汉嵌入式论坛

 找回密码
 立即注册
查看: 9405|回复: 9
收起左侧

MDK中全局变量的数据对齐问题说明

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
发表于 2015-8-30 12:23:57 | 显示全部楼层 |阅读模式
1.jpg

2.jpg
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2016-9-7 10:39:24 | 显示全部楼层
666
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2019-12-18 17:28:00 | 显示全部楼层
请问是哪里的文档啊~~能分享吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2019-12-18 18:30:47 | 显示全部楼层
wdliming 发表于 2019-12-18 17:28
请问是哪里的文档啊~~能分享吗

mdk的help文档。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2019-12-19 12:47:12 | 显示全部楼层

谢谢~~~~
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-9-6 15:05:32 | 显示全部楼层
硬汉哥,h7的分散加载必须四字节对其吗
uint8_t rereBuffer[1060];
uint8_t rereBuffer2[2][1060]; 定义两个数组用itcm
memcpy (&rereBuffer[2],&rereBuffer2[0][0],100); 这样可以
要是定义__attribute__((section (".RAM_AXI")))J我发现就不行       
分散加载RW_IRAM2 0x2400A000 0x00076000 {
        *(.RAM_AXI)
        }
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-9-6 15:06:21 | 显示全部楼层
分散加载的必须四字节对齐吗
回复

使用道具 举报

4

主题

166

回帖

178

积分

初级会员

积分
178
发表于 2021-9-6 15:42:10 | 显示全部楼层
yuanzhongda 发表于 2021-9-6 15:05
硬汉哥,h7的分散加载必须四字节对其吗
uint8_t rereBuffer[1060];
uint8_t rereBuffer2[2][1060]; 定义 ...

找到原因了,mpu配置为normal就好了,配置为device就得4字节对齐着用
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106678
QQ
 楼主| 发表于 2021-9-6 18:35:36 | 显示全部楼层
yuanzhongda 发表于 2021-9-6 15:42
找到原因了,mpu配置为normal就好了,配置为device就得4字节对齐着用

对,H7有这个问题。

石锤内存访问不支持非对齐是否STM32H7的硬件bug
http://www.armbbs.cn/forum.php?m ... 4562&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

210

主题

1042

回帖

1682

积分

至尊会员

More we do, more we can do.

积分
1682
发表于 2021-9-6 19:25:31 | 显示全部楼层
寄存器不够用需用到栈时,变量按4字节对齐,因为函数调用霍中断压栈都是32位的,逻辑上没问题。
不代表定义2个char,是4字节对齐,例如char i,j;他们地址仍是连续的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 09:09 , Processed in 0.326723 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表