SW500009 Microchip Technology, SW500009 Datasheet - Page 133

HI-TECH FOR DSPIC/PIC24

SW500009

Manufacturer Part Number
SW500009
Description
HI-TECH FOR DSPIC/PIC24
Manufacturer
Microchip Technology
Type
Compilerr
Series
PIC24 & DsPICr
Datasheet

Specifications of SW500009

Supported Families
PIC24
Core Architecture
PIC, DsPIC
Software Edition
Standard
Kit Contents
Software And Docs
Tool Type
Compiler
Mcu Supported Families
PIC24 MCUs And DsPIC DSCs
Lead Free Status / RoHS Status
Not applicable / RoHS Compliant
For Use With/related Products
DSPIC3X/PIC24
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
025
778-1003
778-1003
Linker and Utilities
T
I
dicates that the program compiled consists of two call trees rooted at the functions:
main, which can have up 3 levels of stack used, and intlevel1, which can use up to
two levels of stack. In the example above, the symbol _main is associated with the
function main, and intlevel1 associated with an interrupt function (with interrupt
level 1).
Here, the function main takes no parameters and defines 4 bytes of auto variables. The
total size of the APB for main is 4, and this was placed at an offset of 0 in the programs
auto/parameter psect. The function main may call a function called init. This function
also uses a total of 4 bytes of auto variables. The function main is still active when
init is active so their APBs must occupy distinct memory. The block for init follows
immediately after that of main’s at address offset 4. The function init does not call any
other functions.
The main may also call the function byteconv. This function defines a total of 17 bytes
of auto variables. It is called when main is still active (NB main will always be active),
but it is never active at the same time as init is active, so its APB can overlap with that
of init and is placed at offset 4 within the auto/parameter psect.
The function byteconv may call several functions: float, ldiv, crv and srv. (Any
function name that does not start with an underscore must be an assembly routine.
The routine float and ldiv in this case relating to floating point and long division
library routines.) All these functions have their APB placed at the same offset in the
auto/parameter psect. Of these functions, srv also may call convert.
The call to crv from byteconv indicates that other functions might be called to obtain
crv’s parameter values. Those other functions are listed in a “flattened” call list below
the ARG function line which shows every possible function that might be called, re-
gardless of call depth. The functions which might be called are: ldiv, convert and
srv. The function srv, which also calls convert still indicates this fact by also listing
convert below and indented in the more conventional call graph format. The two lines
of C code that produced this outcome were:
where crv accepts one char parameter and returns a char. The call to srv is obvious;
the other call come from the modulus operator, calling ldiv.
NTERPRETING A
UT RIAL
T
if(crv((my_long%10)) != 5) // ...
if(crv(srv(8)) != 6) // ...
UT RIAL
P
RO COMPILER CALL GRAPH
The graph graph shown above in-
Map Files
119

Related parts for SW500009