程序大致如下: void main() { ...
while(1) { if(bGetAD) { bGetAD = FALSE; ADProcess(); } ... }
}
KeilC51 编译上述程序完全通过, 生成的HEX文件下载到芯片后,运行正常。
但如果将上面 ADProcess(); 一句去掉, 再编译的话,出现下面很多错误:
linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?ADPROCESS?ADPROCESS *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?CALETCOMPVOL?ADPROCESS LENGTH: 000AH *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?CALTEMPEREATURE?ADPROCESS LENGTH: 0009H *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?LOOKUPFDB?ADPROCESS LENGTH: 0002H *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: ?DT?MAIN LENGTH: 0002H *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: PROSTATUS SEGMENT: ?DT?MAIN *** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT SYMBOL: T0COUNT SEGMENT: ?DT?MAIN Program Size: data=207.3 xdata=274 code=7624 Target not created
由于这个ADProcess()里面包含了大量的子程序, 不可能将这里面所调用的子程序全部删去,
头痛死了, 不知如何解决, 请高手指点,谢谢!
|