关于使用STC51单片机xdata后程序卡死
使用STC51单片机xdata后程序运行一会儿卡死,乱动作!看门狗都不起作用! 请问各位大神怎么处理?有人遇到过吗 并没有遇到过,像8h试验箱里后面几个大的案例变量都在xdata里,也没见出问题呀。建议楼主检查下代码哪里冲突了或者没写好,使用XDAT的数据,定义的时候一定要初始化!一定要初始化!一定要初始化! 我们的开天斧例程包里面的例子,基本上都是设置xdata作为默认数据存储空间。您可以试试看
STCAI-32位8051 发表于 2023-2-8 15:39
我们的开天斧例程包里面的例子,基本上都是设置xdata作为默认数据存储空间。您可以试试看
谢谢 电子DIY小家 发表于 2023-2-8 15:33
并没有遇到过,像8h试验箱里后面几个大的案例变量都在xdata里,也没见出问题呀。建议楼主检查下代码哪里冲 ...
为何一定需要初始化呢 ,这个问题一直不清楚,望赐教! fengshen1234 发表于 2023-2-8 16:16
为何一定需要初始化呢 ,这个问题一直不清楚,望赐教!
总的来说就是 u8 xdata parm;这样定义的这个parm变量的初始值不一定为0,这点和data区域的变量有所区别。如果在写一段如下的程序就容易出问题
if( parm ==1 )
{
parm = 0;
执行巴拉巴拉;
}
if( parm == 0 )
{
parm = 1;
执行巴拉巴拉;
}
要是这种情况代码里的parm变量初始值不为0就那啥了~ 电子DIY小家 发表于 2023-2-8 16:27
总的来说就是 u8 xdata parm;这样定义的这个parm变量的初始值不一定为0,这点和data区域的变量有所区别 ...
好的非常感谢 现在STC都是强烈建议用户使用xdata===容量大啊, idata/data 留给堆栈用===用户不要用 神农鼎 发表于 2023-2-8 16:51
现在STC都是强烈建议用户使用xdata===容量大啊, idata/data 留给堆栈用===用户不要用 ...
所有变量存到xdata不会出问题吗,比如给你不正常程序,跑飞啊,我用的STC12C5A60S2
页:
[1]
2