keil C51中的data超过了110多就报错,data就超了;
现在我的芯片有512字节的RAM,要怎么设置keil,才能使软件的data不报错?
还请各位高手指点指点!
补充:不要说更换芯片、设置成xdata、缩减代码之类的,我需要的是怎么设置成更大的RAM,谢谢!!
在keil里面选择正确的单片机型号,各种型号对应了特定的ram
比如:89c51的128 Bytes On-chip RAM。比如将那些不改变的变量定义为code,比如unsigned char code a;可以用外扩的数据存储器,定义XDATA来改变变量的存储地方,比如XDATA signed char a;设置options for the target里面的target,如图。
资源不够你可以减少没有用到的定义变量,或者是精简变量,能用char的就用char,
WARNING L15,大多是函数可重入性函数的问题,比如说主函数条调用某个函数abc();中断里面也调用了这个函数,而你定义的这个函数是不可重入得函数,就会L15警告。解决由两个方法,重新顶一个一样的函数,就是函数名字不一样,分别在主函数和中断里面各自调用函数,另一种就是在函数abc()加入reentrant 可重入性。reentrant abc ()这个方法会降低重入函数的执行速度