keil 51中编译显示address space overlow怎么解决??

发布网友 发布时间:23小时前

我来回答

1个回答

热心网友 时间:22小时前

地址空间溢出了,一般是RAM不够的表现。
因为不知道你程序的具体情况,所以我这里就说几个常见现象:
1、MCU的规格不够,象ATS51是128RAM,52是256RAM,但这其中还包括了特殊寄存器,51实际也就能用80字节,这80个还要包括堆栈,所以写嵌入式程序,RAM使用一定要精打细算。
2、能用局部变量就不定义全局的,能用位变量的就不用字节变量。
3、如果有外部RAM,就尽量把对速度要求不高的变量定义在里面,但也要注意不超过其限量。
4、不用的函数就注释掉,如果实在不想注释,就象这样,也可以减少RAM的使用:
i=0;
if(i==1)
{
...
xxx();//从不调用的函数
...
}
5、尽量减少函数调用的级数
6、在项目的OPTION-》target中,memory model,根据具体硬件做选择。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com