C251 User's Guide

Segment Naming Conventions

Objects generated by the C251 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 C251 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
Prefix
Memory
Class
Memory
Type
Description
?PR?CODE or ECODEprogramExecutable program code
?CO?CODEcodeConstant data in program memory
?BI?BITbitBit data in internal data memory
?BA?BDATAbdataBit-addressable data in internal data memory
?DT?DATAdataInternal data memory with 8-bit addressing
?ED?EDATAnearVariables with 16-bit addressing
?EA?EBDATAebdataExtended 251 bit-addressable variables
?EB?EBITbit ebdataExtended 251 bits
?FD?HDATAfarFar memory (RAM space)
?FC?HCONSTconst farFar memory (constant ROM space)
?HD?HDATAhugeHuge variables (no size limitation)
?HC?HCONSTconst hugeHuge constants (no size limitation)
?ID?IDATAidataIndirectly addressable internal data memory
?NC?NCONSTconst nearConstants with 16-bit addressing
?PD?PDATApdataPaged data in external data memory
?XD?XDATAxdataXdata memory (RAM space)
?XC?XDATAconst xdataXdata memory (constant ROM space)