当编写的程序超过了51单片机的最大程序储存容量,如何用c语言编程使用扩展的EPPROM

当编写的程序超过了51单片机的最大程序储存容量,如何用c语言编程使用扩展的EPPROM,第1张

最好不要扩展到EEPROM,如果不够了就换个ROM大点型号

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修饰,即,把这些变量放到外空间,把内空间尽量省出来,这样,内空间基本可专门用于堆栈。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12051391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存