Freescale S12
From ErikaWiki
Contents |
Freescale S12 support
ERIKA Enterprise supports HCS12X microcontrollers. The support for RT-Druid is now available on release 1.5.0. The HCS12X support includes:
- support for COSMIC compiler.
- support for single and multi stack configurations (multi stack will be available soon...).
- ISR interrupt supported.
- support for Freescale Debugger.
- Supported compiler
- COSMIC C cross compiler and ELF module generation for debugging information.
- Mode of operation
- Mono-stack: The Monostack configuration of the ERIKA Kernel models the fact that all tasks and ISRs in the system share the same stack.
- Multistack HAL: Every thread can have its private stack, or it can share it with other threads.
- Handling of paging registers
- The compiler supports bank switching for code and data, using the internal window mechanism provided by the HCS12X processor.
- Bank switching mechanism delivers 32-bit performance with all the advantages and efficiencies of a 16-bit MCU.
- Bank switching is supported via:
- - @far type qualifier to describe a function relocated in a different bank. Calling such a function implies a special calling
- sequence, and a special return sequence. Such a function has to be defined @far and referenced as @far in all the files using
- it. The compiler also provides a specific option +modf to automatically consider all the functions to be @far. The @far type
- modifier is also used to declared variables allocated in a data bank.
- - Linker options are required to ensure proper physical and logical addresses computations. The linker is also able to
- automatically fill banks without any need to take care of the page boundaries.
MCUs
- The MCUs supported are currently the following:
- Freescale MC9S12XS128; (an efficient 16-bit microcontroller with four modes of operation: normal single chip mode, normal single chip mde with active background debug mode, stop low power mode, wait low power mode).
- List of functions:
- void EE_pit0_init( unsigned char pitmtld0, unsigned char pitld0, unsigned char prio ); // To init PIT0
- void EE_pit0_close( void ); // To close PIT0
- void EE_pit0_clear_ISRflag( void ); // To clean PIT0 ISR flag
- void EE_sci_open(unsigned char sci_num, unsigned long int busclock, unsigned long int baudrate); // To open the serial interface
- void EE_sci_close(unsigned char sci_num); // To close the serial interface
- Bool EE_sci_send_byte(unsigned char sci_num, unsigned char buffer); // To send a byte
- Bool EE_sci_send_string(unsigned char sci_num, const char* s, unsigned int num); // to send a string
- Bool EE_sci_send_bytes(unsigned char sci_num, char* v, unsigned int num); // To send a vector of bytes
- Bool EE_sci_get_byte(unsigned char sci_num, unsigned char *buffer); // to get a byte
- Bool EE_sci_getcheck(unsigned char sci_num); // to check the serial reception of a byte
Boards
- The MCUs supported are currently the following:
- SofTec Microsystems DEMO9S12XSFAME demo board.
Examples
- The examples and tests are available in the new release (see below...).
Download and install pre-release
- To download the S12 plug-in for Eclipse refer the following site: Plug-in download site.
Procedure for installation:
- Step 1:
- Open Eclipse;
- From the menu Help select Install New Software...;
- Add with the button Add... the reference site mentioned above (fill the Loaction field with this: http://retis.sssup.it/~durin/rtd_150/site_s12/);
- Tick all the plug-ins and install them clicking on the button Next;
- Restart Eclipse;
- Step 2:
- From the menu File select New and then RT-Druid Oil and C/C++ Project;
- From the Project menu select one of the available S12 demo tests;
- Then click on the project name with the right mouse button and build to obtain the elf object module for debugging;