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.
