Microchip Technology SW006022-2N Data Sheet

Page of 338
Functions
 2012 Microchip Technology Inc.
DS52071B-page 159
If you specify both inline and extern in the function definition, then the definition is 
used only for inlining. In no case is the function compiled on its own, not even if you 
refer to its address explicitly. Such an address becomes an external reference, as if you 
had only declared the function and had not defined it. 
This combination of inline and extern has a similar effect to a macro. Put a function 
definition in a header file with these keywords and put another copy of the definition 
(lacking inline and extern) in a library file. The definition in the header file will cause 
most calls to the function to be inlined. If any uses of the function remain, they will refer 
to the single copy in the library. 
Inline, like regular, is a suggestion and may be ignored.
10.7
MEMORY MODELS
The compiler supports several memory models. Command-line options are available 
for selecting the optimum memory model for your application, based on the specific 
dsPIC DSC device part that you are using and the type of memory usage.
TABLE 10-1:
MEMORY MODEL COMMAND LINE OPTIONS 
The command-line options apply globally to the modules being compiled. Individual 
variables and functions can be declared as near, far or eds to better control the code 
generation. For information on setting individual variable or function attributes, see 
Section 6.11 “Variable Attributes” and Section 10.2.1 “Function Specifiers”.
Option
Memory Definition
Description
-msmall-data
Up to 8 KB of data memory.
This is the default.
Permits use of PIC18 like instructions 
for accessing data memory.
-msmall-scalar
Up to 8 KB of data memory.
This is the default.
Permits use of PIC18 like instructions 
for accessing scalars in data memory.
-mlarge-data
Greater than 8 KB of data 
memory.
Uses indirection for data references.
-msmall-code
Up to 32 Kwords of program 
memory. This is the default.
Function pointers will not go through a 
jump table. Function calls use RCALL 
instruction.
-mlarge-code
Greater than 32 Kwords of 
program memory.
Function pointers might go through a 
jump table. Function calls use CALL 
instruction.
-mconst-in-data
Constants located in data 
memory.
Values copied from program memory 
by startup code.
-mconst-in-code
Constants located in program 
memory. This is the default.
Values are accessed via Program 
Space Visibility (PSV) data window.
-mconst-in-aux-
flash
Constants in auxiliary FLASH
Values are accessed via Program 
Space visibility window.