The RC-51 8051 C compiler is fully integrated into RIDE and supports the ANSI standard for the 'C' language, expanded with keywords that are specific to the 8051 to allow easy access to hardware and specific functions. | alien | asm | at | bdata | bit | code | data | generic | idata | interrupt | intrinsic | pdata | sbit | sfr | using | xdata | Memory models The RC51 compiler supports 5 different memory models. Memory models allow to optimize the generated code to the 8051 derivative you are using as well as to the size of you application. Model | Default memory type | xdata memory | stack location | Notes | TINY | data | *** | idata | suitable for the Philips 8x75x processors = SMALL + ROM(SMALL) | SMALL | data | no | idata/pdata | the allocation of variables in external data memory is still possible | COMPACT | pdata | yes | idata/pdata | same as LARGE with smaller code size | LARGE | xdata | yes | idata/pdata | suitable for big applications | HUGE | pdata | yes | pdata | suitable for the most complex applications. return addresses and parameters are stored in xdata memory. | | Base Types Integer Types: - 8-bit : " signed char " and " unsigned char ",
- 16-bit : " signed int " and " unsigned int ",
- 32-bit : " signed long " and " unsigned long ",
Real Types: - 32-bits : " float " (IEEE754 single precision),
BCD Float: - 32-bit words for FLOAT
- 48-bit words for DOUBLE (by default)
- 56-bit words for LONG DOUBLE
Pointer Types Two types of pointers are always available, generic pointers and space qualified pointers. Code Optimizations RC-51 optimizes the code to be both compact and fast. Tests show that it produces one the most efficient codes available in the market. To get the absolutely smallest possible code it is recommended to use RC-51 together with CodeCompressor. Parameter Passing Three cases are distinguished according to the value of REGPARMS and whether the function was declared with the 'alien' qualifier: - NOREGPARMS: No registers are used for function parameter passing. Instead the internal stack is used for reentrant functions otherwise parameters are stored in the local variable pseudo-static segment
- REGPARMS: Registers may be used to pass parameters, which significantly improves system performance. Up to 3 parameters may passed in CPU registers and parameters that can not be passed in registers are processed as for the NOREGPARMS case.
- In 'alien' functions the DATA pseudo-static segment is always used. Alien function complies with the PL/M-51 parameter passing convention.
Libraries RC-51 is supplied with ANSI 'C' standard libraries as described in: math.h, stdio.h, string.h, ctype.h, and stdlib.h standard header files. | Available Raisonance 8051 Software Tool PackagesRaisonance 8051 Software Tools are offered in several different product packages. The table below lists the tools included with each of those packages. By following the description link, you can get more information on each tool. By clicking on the product code link you can go directly to the order page for each of the product packages. Tool | Description Link | PRODUCTS | Free Evaluation Version download | LITE Package RKitL51 | Compiler Package RCA51 | Enterprise Suite RKitE51 | IDE | RIDE | * | * | * | * | Macro assembler | MA-51 | <4kB | <32kb | * | * | Code banking linker | LX-51 | <4kB | <32kb | * | * | Utilities | UTIL51 | * | * | * | * | ANSI C compiler | RC-51 | <4kB | <32kb | * | * | Simulator/debugger | SIMICE-51 | <4kB | <32kb | <4kb | * | ROM monitor | MON-51 | <4kB | <32kb | <4kb | * | Tiny RTOS | KR-51Tiny | 3 tasks | 3 tasks | 3 tasks | full RTOS | CodeCompressor | CComp-51 | (1) | (1) | (1) | * | Multiproc. simulation | MulSim51 | | | | * | RTOS | KR-51 | | | | 125 tasks | Scripts | RIDEscript | | | | * | * Unrestricted version of the tool is included with the product package (1) You can compress and simulate, but you can't save the compressed code |