3.3.6 MCS51 Options
Keywords: sdccman

##
3.3.6 MCS51 Options

- [—model-small] Generate code for Small model programs, see section Memory Models for more details. This is the default model.
- [—model-medium] Generate code for Medium model programs, see section Memory Models for more details. If this option is used all source files in the project have to be compiled with this option. It must also be used when invoking the linker.
- [—model-large] Generate code for Large model programs, see section Memory Models for more details. If this option is used all source files in the project have to be compiled with this option. It must also be used when invoking the linker.
- [—model-huge] Generate code for Huge model programs, see section Memory Models for more details. If this option is used all source files in the project have to be compiled with this option. It must also be used when invoking the linker.
- [—xstack] Uses a pseudo stack in the __pdata area (usually the first 256 bytes in the external ram) for allocating variables and passing parameters. See section 3.15.1.2 External Stack for more details.
- [—iram-size <Value>] Causes the linker to check if the internal ram usage is within limits of the given value.
- [—xram-size <Value>] Causes the linker to check if the external ram usage is within limits of the given value.
- [—code-size <Value>] Causes the linker to check if the code memory usage is within limits of the given value.
- [—stack-size <Value>] Causes the linker to check if there is at minimum <Value> bytes for stack.
- [—acall-ajmp ] Replaces the three byte instructions lcall/ljmp with the two byte instructions acall/ajmp. Only use this option if your code is in the same 2k block of memory. You may need to use this option for some 8051 derivatives which lack the lcall/ljmp instructions.
- [—no-ret-without-call ] Causes the code generator to insert an extra lcall or acall instruction whenever it needs to use a ret instruction in a context other than a function returning. This option is needed when using the Infineon XC800 series microcontrollers to keep its Memory Extension Stack balanced.