我写的51程序是不是跑飞了。

2020-01-20 19:13发布

我洗的程序硬件仿真是没问题的,下载到RAM为256的单片机,没反应,我在找了一个1KRAM的单片机,跟仿真一样,没问题。这是什么情况呢。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
44条回答
rockyyangyang
1楼-- · 2020-01-24 12:58
XDATA是编译器自己产生的,没有定义存储类型的用LARGE模式编译会默认XDATA
cn_badboy
2楼-- · 2020-01-24 16:16
cn_badboy 发表于 2014-8-10 09:45
XDATA是编译器自己产生的,没有定义存储类型的用LARGE模式编译会默认XDATA

我的确是设置在large模式!
“没有定义存储类型的用LARGE模式编译会默认XDATA”--除了定时中断的几个变量定义为data,其他类型的全部定义为idata。
函数入口参数我没有定义类型,比如我就直接void rec_24c24_data(uchar sla,uchar saddr,uchar *rec_24c02_s,uchar no);
rockyyangyang
3楼-- · 2020-01-24 18:57
看到hex文件9K多,我就笑了。hex文件不是二进制文件的大小,实际的代码还没达到8K
lcofjp
4楼-- · 2020-01-24 19:55
 精彩回答 2  元偷偷看……
rockyyangyang
5楼-- · 2020-01-24 20:38
cn_badboy 发表于 2014-8-10 09:45
XDATA是编译器自己产生的,没有定义存储类型的用LARGE模式编译会默认XDATA

我现在吧编译器设置成small模式,xdata不见了!
Program Size: data=126.0 xdata=0 code=8234
这样应该没影响了吧!!!!明天下载到单片机试一试。
rockyyangyang
6楼-- · 2020-01-24 21:00
如果已经全部指定为IDATA,编译器还自行产生了几个XDATA变量,就是RAM不够用了,想办法减少变量吧

一周热门 更多>