您的位置:首页 > 其它

过程中的点滴(你知道的我不知道),主要和编译器有关

2011-07-26 12:21 295 查看
1、用51构架,256内存的片子时,本想减少内存使用,将几个标志位从char型改成bit型,但适得其反,原来编译可以通过的现在反而通不过了,提示内存不够用,下面是两种情况对比:
Program Size: data=226.0 xdata=0 code=2283
TYPE BASE LENGTH RELOCATION SEGMENT NAME
-----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
DATA 0008H 0050H UNIT ?DT?UT
DATA 0058H 0019H UNIT _DATA_GROUP_
DATA 0071H 0009H UNIT ?DT?DELAY
DATA 007AH 0004H UNIT ?DT?SPI
IDATA 007EH 0050H UNIT ?ID?UT
IDATA 00CEH 0013H UNIT _IDATA_GROUP_
IDATA 00E1H 0001H UNIT ?STACK

*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GROUP_
LENGTH: 0019H
Program Size: data=225.1 xdata=0 code=2280
TYPE BASE LENGTH RELOCATION SEGMENT NAME
-----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * *
REG 0000H 0008H ABSOLUTE "REG BANK 0"
DATA 0008H 0009H UNIT ?DT?DELAY
DATA 0011H 0004H UNIT ?DT?SPI
0015H 000BH *** GAP ***
BIT 0020H.0 0000H.1 UNIT ?BI?UT
0020H.1 0000H.7 *** GAP ***
DATA 0021H 004FH UNIT ?DT?UT
IDATA 0070H 0050H UNIT ?ID?UT
IDATA 00C0H 0013H UNIT _IDATA_GROUP_
IDATA 00D3H 0001H UNIT ?STACK
这是为什么呢,看样子并没有益处啊,求高手赐教,下面是keil版本信息
IDE-Version:
礦ision3 V3.85
Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. 1995 - 2009
License Information:
LB LB
LB
LIC=VG645-G64FE-JS6YX-HY1DU-NU0XJ-9046K
Tool Version Numbers:
Toolchain: PK51 Prof. Developers Kit Version: 8.15
Toolchain Path: d:\Keil\C51\BIN\
C Compiler: C51.Exe V8.15
Assembler: A51.Exe V8.01
Linker/Locator: BL51.Exe V6.15
Librarian: LIB51.Exe V4.24
Hex Converter: OH51.Exe V2.6
CPU DLL: S8051.DLL V3.63
Dialog DLL: DP51.DLL V2.51
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: