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