过程中的点滴(你知道的我不知道),主要和编译器有关
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
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
相关文章推荐
- 攻城狮都应当知道的——编译器的工作过程
- python中有关类编写过程中应该主要的一些问题
- python中有关类编写过程中应该主要的一些问题
- 有关网页渲染,每个前端开发者都该知道的那点事
- 你知道江小白,却不知道它为什么能火?
- 事件分发主要过程
- 学习过程中有关python的错误合集
- 编译器编译过程
- 我只知道我不知道什么
- 计算机启动过程——每个程序员都应该知道
- 你知道的Java,和你不知道的Java
- 【转】arm启动过程点滴
- 【转】C 编译器优化过程中的 Bug
- 网易面试题之 航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程, * 科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2
- 考研过程中的点滴
- 每个程序员都应当知道的编译器优化知识
- 我知道你不知道的负Margin
- 【转】C 编译器优化过程中的 Bug
- HDFS追本溯源:租约,读写过程的容错处理及NN的主要数据结构
- SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识