EEPROM读写也要耗费程序空间,并用到RAM和占用IO口,主要是还要进行通信,容易产生不稳定
单片机,最好单片搞定
1、4K容量的程序Flash空间,肯定是无法装载烧写5K代码的。2、HEX文件在编程器软件打开后,可以看到实际程序容量(机器码)大小。文件大小会稍大。
3、仿真可能是没有代码限制的。
4、解决方法:去掉STARTUP.A51文件。在编译选项中,改变优化代码等级为9。并选择Favor size。重新编译程序试试。完成项目要求前提下,节省一些code常量定义。
分支跟RAM没有关系,当然,不能分支套分支套的太多,比如if(con1)
{
if(con2)
{
if(con3...)。。。。
}
}
你套的层数太多了就不行了,堆栈就不够用了,一般不过6层;
这是其一,另外,如果你真必须要套很多层,那么,还有一个办法,把所有的全局变量和局部静态变量用pdata或者xdata修饰,即,把这些变量放到外空间,把内空间尽量省出来,这样,内空间基本可专门用于堆栈。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)