Keil™, An ARM® Company

Technical Support

BL51: WHAT ARE _DATA_GROUP_ AND _BIT_GROUP_?


Information in this article applies to:

  • C51 Version 5.50
  • C51 Version 6.00 Beta
  • C51 Version 6.00

QUESTIONS

What are the _DATA_GROUP_ and the _BIT_GROUP_ segments? I don't recall declaring or using these in my programs, however, the linker includes them in the link map and they use quite a bit of DATA and BIT space.

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     0014H     UNIT         _DATA_GROUP_
        001CH     0004H                  *** GAP ***
BIT     0020H.0   0000H.3   UNIT         _BIT_GROUP_
        0020H.3   0000H.5                *** GAP ***
DATA    0021H     0051H     UNIT         ?DT?BUFFER
IDATA   0072H     0001H     UNIT         ?STACK

ANSWER

  • The _XDATA_GROUP_ is a segment that contains all the automatic variables and function arguments from your program that are stored in XDATA memory.
  • The _DATA_GROUP_ is a segment that contains all the automatic variables and function arguments from your program that are stored in DATA memory.
  • The _BIT_GROUP_ is a segment that contains all the automatic bit-typed variables and function arguments from your program that are stored in BIT memory.

These segments are created so that the linker can perform overlay analysis and better optimize your use of DATA and BIT memory.

MORE INFORMATION

SEE ALSO

FORUM THREADS

The following Discussion Forum threads may provide information related to this topic.

Last Reviewed: Monday, October 16, 2006


Did this article provide the answer you needed?
 
Yes
No
Not Sure