Segment Naming Conventions

来源:互联网 发布:大数据 用户画像 ppt 编辑:程序博客网 时间:2024/05/14 20:44

Objects generated by the Cx51 Compiler (program code, program data, and constant data) are stored in segments which are units of code or data memory. A segment may be relocatable or may be absolute. Each relocatable segment has a type and a name. This section describes the conventions used by the Cx51 Compiler for naming these segments.

Segment names include a module_name which is the name of the source file in which the object is declared. In order to accommodate a wide variety of existing software and hardware tools, all segment names are converted and stored in uppercase.

Each segment name has a prefix that corresponds to the memory type used for the segment. The prefix is enclosed in question marks (?). The following is a list of the standard segment name prefixes:

Segment
PrefixMemory
TypeDescription?PR?programExecutable program code?CO?codeConstant data in program memory?BI?bitBit data in internal data memory?BA?bdataBit-addressable data in internal data memory?DT?dataInternal data memory?FD?farFar memory (RAM space)?FC?const farFar memory (constant ROM space)?ID?idataIndirectly-addressable internal data memory?PD?pdataPaged data in external data memory?XD?xdataXdata memory (RAM space)?XC?const xdataXdata memory (constant ROM space)

The segment name is assigned based on the memory model of the function.

Small Model Segment Naming Conventions

InformationSegment TypeSegment NameProgram codecode?PR?function_name?module_nameLocal variablesdata?DT?function_name?module_nameLocal bit variablesbit?BI?function_name?module_name

Compact Model Segment Naming Conventions

InformationSegment TypeSegment NameProgram codecode?PR?function_name?module_nameLocal variablespdata?PD?function_name?module_nameLocal bit variablesbit?BI?function_name?module_name

Large Model Segment Naming Conventions

InformationSegment TypeSegment NameProgram codecode?PR?function_name?module_nameLocal variablesxdata?XD?function_name?module_nameLocal bit variablesbit?BI?function_name?module_name