SW500009 Microchip Technology, SW500009 Datasheet - Page 149

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
The graph shows the functions called and the memory usage (RAM) of the functions for their own
local objects. In the example above, the symbol _main is associated with the function main(). It is
shown at the far left of the call graph. This indicates that it is the root of a call tree. The run-time
code has the FNROOT assembler directive that specifies this. The size field after the name indicates
the number of parameters and auto variables, respectively. Here, main() takes no parameters and
defines no auto variables. The offset field is the offset at which the function’s parameters and auto
variables have been placed from the beginning of the area of memory used for this purpose. The
run-time code contains a FNCONF directive which tells the compiler in which psect parameters and
auto variables should reside. This memory will be shown in the map file under the name COMMON.
(it may be two objects of type char or one int; that is not important) and has three bytes of auto
variables. These figures are the total of bytes of memory consumed by the function. If the function
was passed a two-byte int, but that was done via a register, then the two bytes would not be included
in this total. Since main() did not use any of the local object memory, the offset of init()’s memory
is still at 0.
of parameters and another two bytes of auto variables. Since ports() is called by init(), its
local variables cannot be overlapped with those of init()’s, so the offset is 5, which means that
ports()’s local objects were placed immediately after those of init()’s.
time as init() or ports(), their local objects can be overlapped and the offset is hence set to 0.
Sprintf() calls a function putch(), but this function uses no memory for parameters (the char
passed as argument is apparently done so via a register) or locals, so the size and offset are zero and
are not printed.
two INDIRECT entries in the graph. The number following is the signature value of functions that
could potentially be called by the indirect call. This number is calculated from the parameters and
return type of the functions the pointer can indirectly call. The names of any functions that have this
signature value are listed underneath the INDIRECT entries. Their inclusion does not mean that they
were called (there is no way to determine that), but that they could potentially be called.
that this is the root of another call graph tree. This is an interrupt function which is not called by any
code, but which is automatically invoked when an enabled interrupt occurs. This interrupt routine
Main() calls a function called init(). This function uses a total of two bytes of parameters
The function init() itself calls another function called ports(). This function uses two bytes
The function main also calls sprintf(). Since the function sprintf() is not active at the same
Main() also calls another function indirectly using a function pointer. This is indicated by the
The last line shows another function whose name is at the far left of the call graph. This implies
*_isr->_incr size 2,0 offset 15
INDIRECT 4194
INDIRECT 4194
_function_2 size 2,2 offset 0
_function size 2,2 offset 5
Map Files
135

Related parts for SW500009