找回密码
 立即注册
查看: 763|回复: 15

data数据超出问题:ADDRESS SPACE OVERFLOW

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-04-27 21:49:47

6

主题

65

回帖

538

积分

高级会员

积分
538
发表于 2024-3-26 13:00:04 | 显示全部楼层 |阅读模式
本帖最后由 feiyu 于 2024-3-26 15:01 编辑

这是个什么东西超出了



截图202403261256158333.jpg


截图202403261257596523.jpg

后续问题定位如下图,adr用xdata就过了,别的变量改xdata也不行,很奇怪。

截图202403261456278818.jpg


截图202403261457049109.jpg






回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-3-26 13:39:34 来自手机 | 显示全部楼层
你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xdata parm;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-04-27 21:49:47

6

主题

65

回帖

538

积分

高级会员

积分
538
发表于 2024-3-26 14:03:17 | 显示全部楼层
电子DI*** 发表于 2024-3-26 13:39
你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xd ...

按道理data=107.3应该不会报这个错吧,不知道是不是我理解有问题?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:524
  • 最近打卡:2025-05-07 07:52:10
已绑定手机

46

主题

1728

回帖

2682

积分

金牌会员

积分
2682
发表于 2024-3-26 14:12:22 | 显示全部楼层
fei*** 发表于 2024-3-26 14:03
按道理data=107.3应该不会报这个错吧,不知道是不是我理解有问题?

107.3应该没有超过,我这个也没有报警
截图202403261412018297.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-07 09:24:46
已绑定手机

13

主题

1271

回帖

3023

积分

论坛元老

积分
3023
发表于 2024-3-26 14:26:27 | 显示全部楼层
内存分配的截图不全,或者把代码发一下看看

点评

帖子更新了,一个变量用xdata就过了,改别的变量都不行,特别奇怪  发表于 2024-3-26 15:01
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-07 03:58:34

24

主题

517

回帖

1014

积分

荣誉版主

积分
1014
发表于 2024-3-26 14:54:00 | 显示全部楼层
函数调用层级太多,堆栈空间不够。

点评

看DATA的使用量和修改某个变量为xdata后正常,说明就是堆栈空间不够了。  发表于 2024-3-26 15:22
帖子更新了,一个变量用xdata就过了,改别的变量都不行,特别奇怪  发表于 2024-3-26 15:00
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-04-27 21:49:47

6

主题

65

回帖

538

积分

高级会员

积分
538
发表于 2024-3-26 15:29:02 | 显示全部楼层
21cns*** 发表于 2024-3-26 14:26
内存分配的截图不全,或者把代码发一下看看

那我正常写程序的话,我怎么看这个堆栈空间是不是够的?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-07 03:58:34

24

主题

517

回帖

1014

积分

荣誉版主

积分
1014
发表于 2024-3-26 15:49:26 | 显示全部楼层
51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:80
  • 最近打卡:2025-04-27 21:49:47

6

主题

65

回帖

538

积分

高级会员

积分
538
发表于 2024-3-26 16:11:32 | 显示全部楼层
社区*** 发表于 2024-3-26 15:49
51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。 ...

这点代码量并不在考虑范围内,STC32这里的地址16位数据装不下,我会串用,特意改成16位到时候还容易出问题。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-07 09:24:46
已绑定手机

13

主题

1271

回帖

3023

积分

论坛元老

积分
3023
发表于 2024-3-26 16:58:51 | 显示全部楼层
fei*** 发表于 2024-3-26 15:29
那我正常写程序的话,我怎么看这个堆栈空间是不是够的?

堆栈空间够不够用,没有一个准确的、可衡量的做法;
新的单片机XDATA速度也不慢了,建议内存选LARGE模式,变量默认使用XDATA,给STACK足够的空间。

堆栈的使用量,和函数嵌套层数、中断嵌套等相关。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 14:42 , Processed in 0.155545 second(s), 121 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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