标签:style blog http color 使用 数据
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: _DATA_GROUP_
LENGTH: 0020H
Program Size: data=134.3 xdata=226 code=3544
当前我所使用的芯片是STC的STC15W408AS。
而256byte的idata又可以划分为:1.低128byte的idata为传统的8051ram区
2.高128byte的idata为8052扩展的ram区
低128byte又可划分为工作寄存器区,可位寻址区,用户ram区和堆栈区。
Keil C编译器一般情况下优先将变量存储在地址范围为30H-7FH的用户ram区。但是当工程中主函数在进行函数调用时,会将当前所使用
的变量暂存到堆栈区以在函数返回的时候正常恢复程序的上下文。如果需要暂存的数据量太大,会导致30H到7FH段的存储空间不够用。
存储位置。方法见MDK的help手册。
struct alarm_st { unsigned int alarm_number; unsigned char enable flag; unsigned int time_delay; unsigned char status; }; xdata struct alarm_st alarm_control;
xdata指定该变量存储在内部扩展ram区,idata指定该变量存储在内部ram的高128byte区。这样可以保证堆栈区有足够的空间来实现程序上下文的切换。
Keil C编译器的变量存储分配,布布扣,bubuko.com
标签:style blog http color 使用 数据
原文地址:http://www.cnblogs.com/Crazy-MFJ/p/3853966.html