feiyu 发表于 2024-3-26 13:00:04

data数据超出问题:ADDRESS SPACE OVERFLOW

本帖最后由 feiyu 于 2024-3-26 15:01 编辑

这是个什么东西超出了








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











电子DIY小家 发表于 2024-3-26 13:39:34

你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xdata parm;

feiyu 发表于 2024-3-26 14:03:17

电子DIY小家 发表于 2024-3-26 13:39
你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xd ...

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

jwd 发表于 2024-3-26 14:12:22

feiyu 发表于 2024-3-26 14:03
按道理data=107.3应该不会报这个错吧,不知道是不是我理解有问题?

107.3应该没有超过,我这个也没有报警

21cnsound 发表于 2024-3-26 14:26:27

内存分配的截图不全,或者把代码发一下看看

社区闲人 发表于 2024-3-26 14:54:00

函数调用层级太多,堆栈空间不够。

feiyu 发表于 2024-3-26 15:29:02

21cnsound 发表于 2024-3-26 14:26
内存分配的截图不全,或者把代码发一下看看

那我正常写程序的话,我怎么看这个堆栈空间是不是够的?

社区闲人 发表于 2024-3-26 15:49:26

51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。

feiyu 发表于 2024-3-26 16:11:32

社区闲人 发表于 2024-3-26 15:49
51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。 ...
这点代码量并不在考虑范围内,STC32这里的地址16位数据装不下,我会串用,特意改成16位到时候还容易出问题。

21cnsound 发表于 2024-3-26 16:58:51

feiyu 发表于 2024-3-26 15:29
那我正常写程序的话,我怎么看这个堆栈空间是不是够的?

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

堆栈的使用量,和函数嵌套层数、中断嵌套等相关。
页: [1] 2
查看完整版本: data数据超出问题:ADDRESS SPACE OVERFLOW