<br />我现对一个程序进行减少片内ram的使用的优化,有一些效果,同时也产生了些疑问,在此向各位大虾请教:<br />一、现象:<br />1、我在通过减少全局变量、函数内变量的使用,减少函数间参数传递等手段来优化,发现某些时候我减少一个变量的使用,keil编译的结果就显示data减少了一字节,有时候这样一直减少几个变量的使用,data值一直都不会变,接着再减少变量的使用,又会一个一个的减少,到后来又不减少了。<br />2、我屏蔽程序中一些代码之后编译,显示data反而是增加了。<br />二、疑问:<br />1、单片机程序运行的时候,内部ram是如果分配管理的,data值由哪些部分组成?<br />2、之前描述的两个现象如何解释?<br />3、data值是不包括堆栈空间的,那么程序运行的堆栈空间大概需要多少,和哪些因素有关,能不能预估?<br />4、单片机片内ram的使用限度是多少?(指keil编译出来的data值最好不要超过多少)<br /> |
|