Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
MPLAB
®
 XC8 C Compiler User’s Guide
DS52053B-page 270
 2012 Microchip Technology Inc.
6.6.2
Psect Information
The assembly list file can be used to determine the name of the psect in which a data 
object or section of code has been placed by the compiler. For labels (symbols), check 
the symbol table at the end of the file. It indicates the name of the psect in which it 
resides, as well as the address associated with the symbol.
For other code, find the code in the list file. You can usually search for the C statement 
associated with the code. Look for the first PSECT assembler directive above this code. 
This name associate with this directive is the psect in which the code is placed, see 
Section 6.4.9.3 “PSECT”.
6.6.3
Function Information
For each C function, printed before the function’s assembly label (search for the func-
tion’s name immediately followed by a colon, :), is general information relating to the 
resources used by that function. A typical print out is shown in Figure 6-2: “Function 
Information”
. Mo
st of the information is self explanatory, but special comments follow.
The locations shown use the format offset[space]. For example, a location of 
42[BANK0]
 means that the variables was located in the bank 0 memory space and 
that it appears at an offset of 42 bytes into the compiled stack component in this space, 
see Section 5.5.2.2.1 “Compiled Stack Operation”.
Whenever pointer variables are shown, these are often accompanied by the targets the 
pointer can reference after the arrow ->, see Section 6.6.5 “Pointer Reference 
Graph”
. T
he auto and parameter section of this information is especially useful as the 
size of pointers is dynamic, seSection 5.4.5 “Pointer Types”. This information 
shows the actual number of bytes assigned to each pointer variable.
The tracked objects is generally not used. It indicates the known state of the currently 
selected RAM bank on entry to the function and at its exit points. It also indicates the 
bank selection bits that did, or did not, change in the function.
The hardware stack information shows how many stack levels were taken up by this 
function alone and the total levels used by this function and any functions it calls.
Functions which use a non-reentrant model are those which allocate auto and 
parameter variables to a compiled stack and which are, hence, not reentrant.
downloadlike
ArtboardArtboardArtboard
Report Bug