*第19540篇: 我用keil写51程序,变量太多,怎么看Ram是否会溢出,多谢高手指点
楼 主:guest 2004年2月25日10:55
我用keil写51程序,变量太多,怎么看Ram是否会溢出,多谢高手指点
参考:全局变量要始终占用RAM,局部变量只是临时占用RAM。你肯定知道你所定义的变量长度,然后所有全局变量的总长度+所有涵数中定义最多的局部变量总长度既为占用RAM的空间。另外还要考虑留有足够的栈空间,这与涵数嵌套的层数及中断涵数有关。
第3楼:guest 2004年2月25日13:01
[quote][b]以下是引用[i]gu以下是引用guest在2004-2-25 10:55:04的发言: 我用keil写51程序,变量太多,怎么看Ram是否会溢出,多谢高手指点 |
只要會靈活應用地定義各變量的存儲類型就可以搞定這種麻煩。
方法就是將部分使用率不太頻繁的全局變量定義為間接詢址的方式,keic51的書里會有這種介紹,你自己去查一下這樣會增加對你的印象,還可以了解到更多的信息。
编译后的SP的值就是你所使用的RAM的大编译后的SP的值就是你所使用的RAM的大小。
在UVISON环境中,可以观察SP_MAX观察是否产生堆栈溢出。