data数据超出问题:ADDRESS SPACE OVERFLOW
本帖最后由 feiyu 于 2024-3-26 15:01 编辑这是个什么东西超出了
后续问题定位如下图,adr用xdata就过了,别的变量改xdata也不行,很奇怪。
你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xdata parm; 电子DIY小家 发表于 2024-3-26 13:39
你的变量都定义在data区了吧,把比较长的变量或者数组放大xdata区域,变量定义的时候加个xdata ,例如u8 xd ...
按道理data=107.3应该不会报这个错吧,不知道是不是我理解有问题? feiyu 发表于 2024-3-26 14:03
按道理data=107.3应该不会报这个错吧,不知道是不是我理解有问题?
107.3应该没有超过,我这个也没有报警 内存分配的截图不全,或者把代码发一下看看 函数调用层级太多,堆栈空间不够。 21cnsound 发表于 2024-3-26 14:26
内存分配的截图不全,或者把代码发一下看看
那我正常写程序的话,我怎么看这个堆栈空间是不是够的? 51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。 社区闲人 发表于 2024-3-26 15:49
51芯片,地址用u16变量就够了,楼主用U32变量,并且对这个变量进行运算,代码量大大提高。 ...
这点代码量并不在考虑范围内,STC32这里的地址16位数据装不下,我会串用,特意改成16位到时候还容易出问题。 feiyu 发表于 2024-3-26 15:29
那我正常写程序的话,我怎么看这个堆栈空间是不是够的?
堆栈空间够不够用,没有一个准确的、可衡量的做法;
新的单片机XDATA速度也不慢了,建议内存选LARGE模式,变量默认使用XDATA,给STACK足够的空间。
堆栈的使用量,和函数嵌套层数、中断嵌套等相关。
页:
[1]
2