我就是这个问题,程序编译没有问题,是正确的。可就是不能产生.hex文件 Rebuild target 'Target 1' assembling STARTUP.A51... compiling Text1.c... linking... *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: CODE SEGMENT: ?PR?SHUTTER_CLOCK?TEXT1 LENGTH: 02E7H *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: CODE SEGMENT: ?PR?KEY_SCAN?TEXT1 LENGTH: 0286H 就是这种问题一大堆 |
我遇到了这个问题后,我发现是RAM不够,一般的话。有data、idata、pdata以及xdata。data的话,就是低128(片内)字节;idata的话,就是256个(片内)字节。起始data就是idata的一部分。pdata以及xdata是片外RAM的,那就得看单片机的手册进行操作。例如STC12C5A60S2的话,要用内部扩展的话,是要用到xdata的,即unsigned char xdata a[256],那么这就去了256个字节了。内部扩张的。 也就是说,当你编译后,发现data已经是大于128了,同时伴随着报错。那你就得使用xdata或者pdata了。 |
解决了,谢谢您!![]() |
mybigapple 发表于 2015-3-20 19:43 请问这个问题解决了吗? |
把变量定义为pdata后,这种办法是针对于变量较少的情况 |
很不错,解决问题了,适用于稍微添加了一点变量时就突然报错的情况 |
受用了 谢谢楼主 |
感谢楼主,问题解决啦 |
谢谢楼主 另外功能没实现的可能是程序错误 多找找吧 |
厉害了,我遇到了 |
是的,同一楼所说 |
谢谢楼主提供的方法 |
改成large,连仿真时候也出错,所以还是查找问题吧 |
谢谢楼主!!! |
楼主 棒棒哒 |
mybigapple 发表于 2015-3-20 19:43 对,我也是遇到这样的问题了, |
mybigapple 发表于 2015-3-20 19:43 large模式就是默认将所有变量都存于外部RAM,small模式是在内部ram。 |
同样问题,完美解决!谢谢楼主!!特地注册来回复 |
选择Large模式,编译是通过了。可是程序不好使了。生成的HEX文件烧录进单片机也不干活了。又试了下选择Compact模式编译,一样不干活。只有Small模式的hex文件好用。 这个谁懂? |
遇到同样问题。感谢分享。 |