11.14 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 device that you are using and the type of memory usage.
Option | Memory Definition | Description |
---|---|---|
-msmall-data |
Up to 6 KB of data memory1. The default is device dependent2. | Permits use of PIC18 like instructions for accessing data memory. |
-msmall-scalar |
Up to 6 KB of data memory1. This is the default. | Permits use of PIC18 like instructions for accessing scalars in data memory. |
-mlarge-data |
Greater than 6 KB of data memory1. The default is device dependent2. | 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) window. |
-mconst-in-auxflash |
Constants in auxiliary Flash. | Values are accessed via Program Space Visibility (PSV) window. |
Note:
|
The command-line options apply globally to the modules being compiled.
Individual variables and functions can be declared as near
,
far
or in eds
to better control the code generation.
For information on setting individual variable or function attributes, see 9.10 Variable Attributes and 14.1.1 Function Specifiers.