OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 92|回复: 9

STM32H743 把数组定义在外部SDRAM如何定义

[复制链接]

343

主题

513

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
金钱
1594
注册时间
2014-7-11
在线时间
275 小时
发表于 4 天前 | 显示全部楼层 |阅读模式
3金钱
原子哥,我用STM32H743 把数组定义在外部SDRAM如何定义

如果很多数组都定义在外部SDRAM如何定义
double Um[5000][200] __attribute__((at(0XC0000000)));
double Um2[5000][200] __attribute__((at(0XC0000000)));
double Hd[5000] __attribute__((at(0XC0000000)));
double Hs1[5000] __attribute__((at(0XC0000000)));
double Hs2[5000] __attribute__((at(0XC0000000)));


请问这样的定义对吗?

我怎么在使用时有数据写不进去的情况


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
87
金钱
87
注册时间
2015-6-16
在线时间
16 小时
发表于 4 天前 | 显示全部楼层
static char buffer[128] __attribute__((section(".bss.ARM.__at_0x70000000")));
回复

使用道具 举报

343

主题

513

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
金钱
1594
注册时间
2014-7-11
在线时间
275 小时
 楼主| 发表于 4 天前 | 显示全部楼层
Muniar 发表于 2025-1-14 15:45
static char buffer[128] __attribute__((section(".bss.ARM.__at_0x70000000")));

所有的数组都这样定义吗
回复

使用道具 举报

343

主题

513

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
金钱
1594
注册时间
2014-7-11
在线时间
275 小时
 楼主| 发表于 4 天前 | 显示全部楼层
Muniar 发表于 2025-1-14 15:45
static char buffer[128] __attribute__((section(".bss.ARM.__at_0x70000000")));

..\OBJ\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.bss).

都替换出现这种错误
回复

使用道具 举报

4

主题

894

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4282
金钱
4282
注册时间
2019-9-4
在线时间
894 小时
发表于 3 天前 | 显示全部楼层
编译器版本不一样,你用的是AC5的写法,楼上提供的是AC6的写法。看你用的是哪个版本的编译器
回复

使用道具 举报

70

主题

6724

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12866
金钱
12866
注册时间
2012-11-26
在线时间
3754 小时
发表于 3 天前 | 显示全部楼层
你这所有数组定义在一个地址的?
回复

使用道具 举报

343

主题

513

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
金钱
1594
注册时间
2014-7-11
在线时间
275 小时
 楼主| 发表于 前天 09:30 | 显示全部楼层
jermy_z 发表于 2025-1-15 15:39
你这所有数组定义在一个地址的?

分开定义会报错,如果分开定义如何定义?比如double Um[5000][200] __attribute__((at(0XC0002000)));
double Um2[5000][200] __attribute__((at(0XC0004000)));
double Hd[5000] __attribute__((at(0XC0008000)));
double Hs1[5000] __attribute__((at(0XC00a0000)));
double Hs2[5000] __attribute__((at(0XC000c000)));
就会报错
回复

使用道具 举报

70

主题

6724

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12866
金钱
12866
注册时间
2012-11-26
在线时间
3754 小时
发表于 前天 10:58 | 显示全部楼层
ddfha1 发表于 2025-1-16 09:30
分开定义会报错,如果分开定义如何定义?比如double Um[5000][200] __attribute__((at(0XC0002000)));
d ...

你个2014年注册的,你自己算下地址能放的下你的数组吗?

怎么感觉单片机都没入门似的
学无止境
回复

使用道具 举报

2

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2019-8-20
在线时间
152 小时
发表于 前天 11:42 | 显示全部楼层
jermy_z 发表于 2025-1-16 10:58
你个2014年注册的,你自己算下地址能放的下你的数组吗?

怎么感觉单片机都没入门似的

哈哈哈这个帖子我看了好几天,今天终于看到靠谱的回答了
回复

使用道具 举报

343

主题

513

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
金钱
1594
注册时间
2014-7-11
在线时间
275 小时
 楼主| 发表于 昨天 17:57 | 显示全部楼层
jermy_z 发表于 2025-1-16 10:58
你个2014年注册的,你自己算下地址能放的下你的数组吗?

怎么感觉单片机都没入门似的

改变里面的数值就报错,
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-18 18:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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