SW500009 Microchip Technology, SW500009 Datasheet - Page 150

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
Librarian
calls the function incr(), which is shown shorthand in the graph by the -> symbol followed by the
called function’s name instead of having that function shown indented on the following line. This is
done whenever the calling function does not takes parameters, nor defines any variables.
path in terms of RAM usage. For example, in the above, (main() is a trivial example) consider
the function sprintf(). This uses a large amount of local memory and if you could somehow
rewrite it so that it used less local memory, it would reduce the entire program’s RAM usage. The
functions init() and ports() have had their local memory overlapped with that of sprintf(), so
reducing the size of these functions’ local memory will have no affect on the program’s RAM usage.
Their memory usage could be increased, as long as the total size of the memory used by these two
functions did not exceed that of sprintf(), with no additional memory used by the program. So if
you have to reduce the amount of RAM used by the program, look at those functions that are starred.
overlapped (i.e. ?a_foo was placed at the same address as ?_foo, for example), then check to
make sure that you have actually called the function in your program. If the linker has not seen a
function actually called, then it overlaps these areas of memory since that are not needed. This is
a consequence of the linker’s ability to overlap the local memory areas of functions which are not
active at the same time. Once the function is called, unique addresses will be assigned to both the
parameters and auto objects.
priate assembler directives to ensure that the linker sees the C function being called.
5.12 Librarian
The librarian program, LIBR, has the function of combining several object files into a single file
known as a library. The purposes of combining several such object modules are several.
In order to make the library concept useful, it is necessary for the linker to treat modules in a library
differently from object files. If an object file is specified to the linker, it will be linked into the final
linked module. A module in a library, however, will only be linked in if it defines one or more
symbols previously known, but not defined, to the linker. Thus modules in a library will be linked
only if required. Since the choice of modules to link is made on the first pass of the linker, and
the library is searched in a linear fashion, it is possible to order the modules in a library to produce
special effects when linking. More will be said about this later.
136
Those lines in the graph which are starred with * are those functions which are on a critical
If, when searching a call graph, you notice that a function’s parameter and auto areas have been
If you are writing a routine that calls C code from assembler, you will need to include the appro-
fewer files to link
faster access
uses less disk space
Linker and Utilities

Related parts for SW500009