⑴ 单片机 编译好的代码太大 烧写不进去 怎么办
程序的大小和生成的hex大小没关系。而是看你的code区占用了多少,你的单片机有多大的code区,另外内存通常是运行中存储数据的。比8k的flash大的单片机太多了。
code代码区data片内xdata片外
⑵ 51单片机烧录程序时提示程序末地址超过存储容量怎么解决小弟刚学单片机,求帮助,感激不尽。
你这种情况要分两种,一种就是总程序已经大于4KB大小。这个只能换用更大存储空间的片子。如果不是的话,就是第二种可能,你编程的时候地址空间没有被充分利用,这个就是发生在你的一些跳转,判断语句上,这个你要检查你的程序语句,是不是调的空间过大,以至于到最后程序计数器指针PC到了最后一个空间,你的程序还没有执行完。要让程序紧凑,不要在编程时空下太大空间,这样存储器空间利用率会很低的。
⑶ 单片机》在不影响功能的前提下,如何最大限度地减少程序所占空间
不用C写,改用汇编,如果是汇编写的就按下面方法:
1,把重复的程序段写成子程序供调用
2,改变算法,
3,精简表格数据
4,多用散转算法,少用直判跳转
5,.....
最后: 换一个容量大点的单片机.