12.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) data window. |
-mconst-in-auxflash | Constants in auxiliary Flash. | Values are accessed via Program Space visibility 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 Variable Attributes and Function Specifiers.