SW500010 Microchip Technology, SW500010 Datasheet - Page 32

HI-TECH C PRO FOR PIC10/12/16

SW500010

Manufacturer Part Number
SW500010
Description
HI-TECH C PRO FOR PIC10/12/16
Manufacturer
Microchip Technology
Type
Compilerr
Series
PIC10/12/16r
Datasheets

Specifications of SW500010

Supported Families
PIC10, PIC12, PIC16
Core Architecture
PIC
Software Edition
Professional
Kit Contents
Software And Docs
Mcu Supported Families
PIC10/12/16
Tool Type
Compiler
Lead Free Status / RoHS Status
Not applicable / Not applicable
For Use With/related Products
PIC10, PIC12, PIC14, PIC16, PIC16E
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
019P
778-1006
778-1006
Runtime Files
Variables whose contents should be preserved over a reset, or even power off, should be qualified
with persistent, see Section 3.3.10.1. Such variables are linked at a different area of memory and are
not altered by the runtime startup code in any way.
2.3.2.2 Clearing the Bss Psects
The ANSI standard dictates that those non-auto objects which are not initialized must be cleared
before execution of the program begins. The compiler does this by grouping all such uninitialized
objects into one of the bss psects. This psect is then cleared as a block by the runtime startup code.
HI-TECH C PRO for the PIC10/12/16 MCU Family uses several bss psects. There are the more tra-
ditional psects: rbss and bss, which are used for uninitialized variables placed in the access bank
memory, and in banked memory, respectively. However, most uninitialized variables are allocated
memory by the code generator directly in the data space RAM without being located in a psect at
all. They are then handled as if they were absolute variables.
that are used by the command line driver to generate the appropriate code. The symbols have the
form: __Labsbssn and __Habsbssn, where n is a number starting from 0. As these uninitial-
ized absolute variables can be placed anywhere in available memory, and are not restricted to being
placed in a single large block, there may be more than one set of these symbols defined to ensure
that all blocks are cleared.
the upper and lower bounds of a psect, and can be used in the same way. See Section 3.12.3.
the rbss and bss psects. Do not create and use a psect with a name of the form absbssn.
Appropriate default linker options will be issued for rbss and bss, thus their use does not require
32
To ensure that variables allocated memory by the code generator are cleared, symbols are defined
These symbols look like the __Lxxxx and __Hxxxx symbols defined by the linker to represent
Assembly code that defines variables which should be cleared at startup should be placed in
Since auto objects are dynamically created, they require code to be positioned in the
function in which they are defined to perform their initialization. It is also possible that
their initial value changes on each instance of the function. As a result, initialized auto
objects do not use the data psects and are not considered by the runtime startup code.
The abbreviation "bss" stands for Block Started by Symbol and was an assembler pseudo-
op used in IBM systems back in the days when computers were coal-fired. The contin-
ued usage of this term is still appropriate.
PICC Command-line Driver

Related parts for SW500010