One thing which is missing with the CodeWarrior for MCU10.2 announcement: MCU10.2 does not support the S12(X) from Freescale.
With this I still have several projects not ported to eclipse. So they are still implemented using the ‘classic’ (non-eclipse based) version of CodeWarrior for S12(X). And I’m using FreeRTOS in the eclipse based IDE with Processor Expert for S08, ColdFire and Kinetis, but not yet for the S12(X). What now?
Thanks to prework from FreeRTOS.org, strong coffee and night shift hours I can proudly present:
FreeRTOS as Processor Expert component, for both eclipse based CodeWarrior MCU V10 and classic CodeWarrior for S12(X) V5.1, supporting S08, S12(X), ColdFire and Kinetis; everything in a single component package 🙂
The port and example project are now posted in the FreeRTOS community contributions. The FreeRTOS and additional components are available from Embedded Components.
The port for FreeRTOS was challenging as I wanted to support both S12 and the S12X core, with both for banked and small memory models. The interrupt stack is different for S12 and S12X. Depending on the memory model the port has to work with either JSR or CALL instructions. But after some tweaking, I had it running on the S12 with the Tower TWR-S12G240 and the S12X/XGATE on the DEMO9S12XEP100 board.
The biggest challenge was to have it compatible between the classic and the eclipse based CodeWarrior. The thing is that the eclipse based CodeWarrior comes with the concept of RTOS Adapter. The FreeRTOS component implements both the RTOS Adapter plus it has all the RTOS sources and the port for all the supported architectures. To prevent classic CodeWarrior to include RTOS adapter files I had to add a property in the component:
With this I was able to use the same Processor Expert component for both the eclipse based (MCU 10.2) and classic CodeWarrior (MCU 4.6 and S12(X) 5.1).
Next one? Maybe a FreeRTOS port for the Freescale DSC (Digital Signal Controller)? It will all depend on nights with lots of really, really strong coffee….
Happy classic coding 🙂