|
RCSTM8 is the highly optimizing C compiler for the ST7&STM8 family from Raisonance.
It benefits from more than 15 years of experience and comes with a mature and reliable tool chain.
RCSTM8 allows you to write ST7 or STM8 applications in C that will have the efficiency and code compactness
of assembly language, while the C language expressivity will help you remain time-to-market
on your applications.
Language extensions will provide you with full access to all resources of the ST7 microcontrollers.
The ST7&STM8 C compiler is fully integrated into Ride7 (Raisonance Integrated Development Environment).
Features
- Standard C compliance. RCSTM8 follows the ISO/IEC 9899:1990 standard rules and conventions.
RCSTM8 passes the Plum/Hall validation test suite, as well as an extensive
in-house validation test suite,
- Multiple optimization levels,
- Fully reentrant C library,
- ANSI/IEEE-754 floating-point support. The library is written in assembly for best performance,
- Support for ST7&STM8-specific memory spaces using specific keywords bit, code, data, page0, and eeprom.
In particular, RCSTM8 produces code that nicely optimizes access to page 0 variables and uses single byte pointers.
- Inline assembler,
- Configurable memory model allowing specific placement for local and global variables, as well as per-variable
and per-function settings,
- Very easy declaration of interrupt and trap routines directly from C using interrupt and trap keywords,
with automatic interrupt vectors generation by the linker,
- Complete symbol and type information for source-level debugging,
- Optimized access to bit-addressable data objects for smaller memory footprint,
- Reentrancy and recursivity. RCSTM8 offers full reentrancy and recursivity (optional, controlled a compiler directive), following the standard C conventions.
- Intrinsic functions provide access to ST7&STM8-specific capabilities (low-power and halt mode, interrupts enable/disable,
absolute jumps...)
- Detailed listings. RCSTM8 has various configuration options that make it easy to produce detailed listings,
showing interspersed C language, produced assembly and machine code.
- Lots of examples are provided to show you how to take full advantage of RCSTM8.
- Some libraries (ST7&STM8 library from ST, Motor control library, USB library) are provided so that you can
easily bootstrap your projects.
- Over 40 directives will help you control the compilation process, listing and object file output,
and code generation.
New: Automatic data relocation
RCSTM8 offers an innovative optimization, which can provide impressive
reduction of your code footprint.
The "Auto relocation mode" is a project-wide optimization that optimizes the
placement of your data objects in "zero page" or "data" memory spaces: RCSTM8
will automatically detect which global variables should be assigned to the
zero page segment, depending on their respective sizes and their usage count
within the whole application. The most used variables will be relocated from
data to zero page, hence producing smaller code.
Compiler optimizations
- Constant folding. The compiler reduces constant expressions to numeric constants wherever possible.
- Dead code elimination. Unused code paths are removed.
- Global common subexpression Elimination. Multiple uses of the same expression or subexpression within
a function use a single code and the intermediate result is kept in a register for reuse.
- Register variables. Function parameters and local variables can be located in registers.
No data memory is reserved for such objects.
- Jump optimization. Conditional jumps are reengineered by the compiler to produce the best possible code.
- Jump optimizing. Double-jumps are detected by the compiler and replaced by single jumps to the final target.
- Loop counters optimization. Program loops are inverted (count from n down to 0 instead of from 0 to n) and
loop counters are changed in order to take advantage of the comparison to zero, which is more efficient than
comparing to a non-zero constant.
- Function epilogue optimization. Identical function exit sequences are reused, in order to remove redundant
portions of code.
- Switch optimization. Jump tables are used instead of if/else if statements.
- Intelligent CALL-RET replacement. If a CALL is followed by a RET, a JP is used instead of the CALL.
- Data overlaying. Data segments from different functions are identified by RCSTM8. The linker will attempt
to overlay independent segments if the global application data flow permits it.
- Page 0 access. Variables using the page 0 will automatically be handled as such, RCSTM8 generating
the best possible access patterns to them.
- Peephole optimization. RCSTM8 will make best use of the registers and remove redundant or unnecessary instructions, as well as intelligent constant handling.
CodeCompressor Global Optimizer
- CodeCompressor is the Raisonance Post-Linker Optimization Technology.
- It minimizes your applications ROM footprint.
- This global (post-link) optimizer, based on a unique technology from Raisonance, can reduce code size by up to 20%.
- It performs function inlining, code fragments factorization and advanced peephole optimization.
Ordering Information
RCSTM8 is included in the software development kit RKit-STM8 which can be found with four diferent licence:
- RKit-STM8-Eval (limited to 1KB) - Free - Download
- RKit-STM8-Lite (limited to 16KB) - Free - Get an activation code
- RKit-STM8-Professional (unlimited)
- RKit-STM8-Entreprise (unlimited, includes CodeCompressor)
Price list for ST7&STM8 tools.
You can order these kits:
To find the distributor nearest you click here.
|