SW500007 Microchip Technology, SW500007 Datasheet - Page 115

PICC-18 PRO

SW500007

Manufacturer Part Number
SW500007
Description
PICC-18 PRO
Manufacturer
Microchip Technology
Type
Compilerr
Series
PIC18r
Datasheets

Specifications of SW500007

Supported Families
PIC18
Core Architecture
PIC
Software Edition
Professional
Kit Contents
Software And Docs
Mcu Supported Families
PIC18
Tool Function
Compiler
Tool Type
Compiler
Lead Free Status / RoHS Status
Not applicable / RoHS Compliant
For Use With/related Products
PIC18 Series
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
015P
778-1002
778-1002
Macro Assembler
4.3.8.11 FNARG
The directive
tells the linker that evaluation of the arguments to function fun1 involves a call to fun2, thus the
memory argument memory allocated for the two functions should not overlap. For example, the C
function calls
will generate the assembler directive
thereby telling the linker that bill() is called while evaluating the arguments for a call to fred().
4.3.8.12 FNBREAK
This directive is used to break links in the call graph information. The form of this directive is as
follows:
and is automatically generated when the interrupt_level pragma is used. It states that any calls to
fun1 in trees other than the one rooted at fun2 should not be considered when checking for functions
that appear in multiple call graphs. Fun2() is typically intlevel0 or intlevel1 in compiler-generated
code when the interrupt_level pragma is used. Memory for the auto/parameter area for a fun1 will
only be assigned in the tree rooted at fun2.
4.3.8.13 FNCALL
This directive takes the form:
FNCALL is usually used in compiler generated code. It tells the linker that function fun1 calls func-
tion 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:
FNARG fun1,fun2
fred(var1, bill(), 2);
FNARG _fred,_bill
FNBREAK fun1,fun2
FNCALL fun1,fun2
FNCALL _fred,_foo
HI-TECH C Assembly Language
101

Related parts for SW500007