SW500010 Microchip Technology, SW500010 Datasheet - Page 134

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
HI-TECH C Assembly Language
4.3.8.14 FNCALL
This directive takes the form:
FNCALL is usually used in compiler generated code. It tells the linker that function fun1 calls
function fun2. This information is used by the linker when performing call graph analysis. If
you write assembler code which calls a C function, use the FNCALL directive to ensure that your
assembler function is taken into account. For example, if you have an assembler routine called _fred
which calls a C routine called foo(), in your assembler code you should write:
4.3.8.15 FNCONF
The FNCONF directive is used to supply the linker with configuration information for a call graph.
FNCONF is written as follows:
where psect is the psect containing the call graph, auto is the prefix on all auto variable symbol names
and args is the prefix on all function argument symbol names. This directive normally appears in
only one place: the runtime startup code used by C compiler generated code. For the HI-TECH C
PRO for the PIC10/12/16 MCU Family the startup routine will include the directive:
telling the linker that the call graph is in the rbss psect, auto variable blocks start with ?? and
function argument blocks start with ?.
4.3.8.16 FNINDIR
This directive tells the linker that a function performs an indirect call to another function with a
particular signature (see the SIGNAT directive). The linker must assume worst case that the function
could call any other function which has the same signature and has had its address taken (see the
FNADDR directive). For example, if a function called fred() performs an indirect call to a function
with signature 8249, the compiler will produce the directive:
134
FNCALL fun1,fun2
FNCALL _fred,_foo
FNCONF psect,auto,args
FNCONF rbss,??,?
FNINDIR _fred,8249
Macro Assembler

Related parts for SW500010