1 尽量减少全局变量,除非确实有必要,否则数据可以通过函数进行传递
2 赋值的时候用移位符代替'=',这样表面看来没有什么区别,但是当编译之后你就会发现移位符比'='执行效率要高
3 给程序加注释,提高可读性
1.肯定的,嵌套越多,要压栈保存的信息就越多,占用的RAM就越多了,对51来说,最多就是CPU内256字节的RAM。2.是的。
3.没用过这芯片……我用的最多的是AVR
4因为你定义了一个pagebuf[512],512字节啊!51单片机的data撑死才256字节(还没算压栈保存数据需要的RAM),所以编译器自动将这个数组放在了XDATA中。
1、程序优化:①、将固定的代码数组等,存到ROM。(51单片机用 code表示存到 ROM)
②、压缩多余缓冲区,如数组长度根据需求来定。不要直接a[100]一棍子打死。
③、合理分配变量数据类型,如计数值在0-100内的数,就没必要用 uint 了,使用 uchar 就够了。只要两个状态的标志位,用 bit 就行了,不要直接 uchar。
④、可以用逻辑运算的,就不要采用算术运算。如 a/8,可以写成 a>>3,当然 a不是浮点型数据才行。而a*2则是 a<<1;而a%4,可以写成 a&0x03;
……
……
……
2、扩大RAM
①、买个同系列高RAM区间的单片机。
②、买个同系列高RAM区间的单片机。
③、买个同系列高RAM区间的单片机。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)