FreeRTOS on a S12X based board

cchatel wrote on Friday, April 08, 2011:


I’ve a S12X based board (freescale MC9S12XEP100) and I want to use an Operating System for my dev. I decide to use freeRTOS with CodeWarrior, download the HCS12_CodeWarrior_banked demo and compile it.
With some modifications this works.
Then I want to configure this software for the MC9S12XEP100 board, and then upload it to the board. There is no simple solution
- it’s not possible to convert the project as it contains many targets,
- opening a new project and copying freeRTOS files in it, doesn’t seem to work due to differences in the CW version used and the version in which the OS has been compiled (prepared).

Do you have any suggestions to do this job?

Is there a new freeRTOS release compatible with the last CodeWarrior?

Thank for you answers

rtel wrote on Sunday, April 10, 2011:

The CodeWarrier version used for the port has not changed since the port was created.  If you want it to target another chip, can you just change the memory map (and maybe the vector table), or are there more differences between the chips?


cchatel wrote on Monday, April 11, 2011:

I use CodeWarrior in release 5.9.0 build 5294.
I just downloaded the FreeRTOSV6.1.1, go to the HCS12_CodeWarrior_banked directory and double-click on the CodeWarrior Project.  A pop-up windows tell me if I want to use Processor Expert for this project. I click on the ‘yes’ button.
Then I obtain those warning:
The following access path in target “P&E ICD” of project “RTOSDemo.mcp” cannot be found:

The following access path in target “P&E ICD” of project “RTOSDemo.mcp” cannot be found:

The following access path in target “Simulator” of project “RTOSDemo.mcp” cannot be found:

The following access path in target “Simulator” of project “RTOSDemo.mcp” cannot be found:

If I push the ‘make’ button I obtain 96 errors due to error in compiler command line arguments:
Error   : C52: Error in command line '-BfaGapLimitBits0 -Cf -D_HCS12 -DHCS12_CODE_WARRIOR -D__NO_FLOAT__ -I. -I…\…\Source\portable\CodeWarrior\HCS12
-I…\Common\include -I…\…\Source\include -Mb -Os -Ou -Of -Oi -OiLib=a -OnB=abl -OnCstVar -OnPMNC -Or -TD4LD4LLD4 -WmsgSd1420
-WmsgSd4001 -WmsgSd4002 -WmsgSd4301 -WmsgSd5703 -WmsgSd5904 -WmsgSd5905 -WmsgSd5909 -WmsgSd5917 -WmsgSd12053 -WmsgSd12056 -env"GENPATH=C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked;C:\Documents and Settings\c.chatelain\Mes
documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\bin;C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\prm;C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\cmd;C:\Documents and Settings\c.chatelain\Mes
documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\Sources;C:\Program Files\Freescale\CWS12v5.1\lib\HC12c\lib;C:\Program
Files\Freescale\CWS12v5.1\lib\HC12c\src;C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\Code;C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\doc;C:\Program Files\Freescale\CWS12v5.1\lib\hc12c\include;C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\ParTest;C:\Documents and Settings\c.chatelain\Mes
documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\serial;C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Source;C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Source\portable\MemMang;C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\Common\Minimal;C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Source\portable\CodeWarrior\HCS12;C:\Documents and Settings\c.chatelain\Mes
documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\CODE;C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\DOC;C:\Program
Files\Freescale\CWS12v5.1\lib\HC12c\include" -env"LIBPATH=C:\Program Files\Freescale\CWS12v5.1\lib\HC12c\include" -env"OBJPATH=C:\Documents
and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\bin" -env"TEXTPATH=C:\Documents and Settings\c.chatelain\Mes
documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\bin" -objn=“C:\Documents and Settings\c.chatelain\Mes documents\soft\FreeRTOSV6.1.1\Demo\HCS12_CodeWarrior_banked\RTOSDemo_Data\P&E_ICD\ObjectCode\Cpu.C.o”

Error   : Error in command line!

Error   : C4202: Invalid pragma OPTION, Invalid Options

IO_Map.h line 40  

Error   : Compile failed

These errors make me feel that there is some differences in software release. If there is another explanation I will be happy to know.


anonymous wrote on Thursday, April 21, 2011:

I receive such error. There are any results?

cchatel wrote on Saturday, May 14, 2011:

Finally we suceeded to run FreeRtos on the MC9S12XEP100 board (HCS12X). We made a lot of changes: first to compile FreeRtos for HCS12 component (I made a document in french to explained my change), and later, to compile it, and run it, for HCS12(X) component (there is some changes in memory map, vector table and port.c; CCR register contains 16 bits in HCS12X versus 8 in HSC12).
If you have any question,  I would be pleased to answer.

edwards3 wrote on Saturday, May 14, 2011:

Please post the code up at and the documentation as well even it it is in French. Google translate is my friend.

abacus1980 wrote on Tuesday, June 14, 2011:

I am working with the same processor and the OAF port does not seem to work with paging or global memory.  Did you have this same problem?  if so were you able to solve it?

anonymous wrote on Thursday, June 30, 2011:

Excuse me for my late answer. I made a document in which I explain how
I procede to make my port. First I tried to compile FREERTOS for the
“MC9S12DP256 banked model”, then using CodeWarrior Processor Expert I
move the code to the MC9S12XEP100 Cpu as explained in the document
that i send to
Good luck!


abacus1980 wrote on Monday, July 04, 2011:

Thank you very much for your efforts.  I really appreciate you following up!