RTEMS sucessfully ported to MetroWerks CodeWarrior

Dieter Schaefer CW-RTEMS at Schaefer-Comtronic.de
Thu Feb 6 22:54:08 UTC 2003

first I have to apologize for my late reply - yesterday evening it was just too late and today I was out of the 
> Dieter Schaefer wrote:
> > 
> > Schaefer-Comtronic is proud to announce that RTEMS has been successfully ported to
> > MetroWerks CodeWarrior Development Studio for PowerPC hosted on Windows.
> > 
> > At present, this port is available for the TQM860L family of modules.
> > It supports
> > * MPC860 with 50MHz and 80MHz
> > * 64MByte SDRAM and 8MByte Flash
> > * SMC1 + SMC2 for Terminal/Console I/O
> > * Ethernet on SCC1 and FEC
> > * Telnet-Server, FTP-Server and WebServer
> Are these the ones in the RTEMS source?
Yes, Telnet, FTP and Webs are taken from the RTEMS sources.
Shell and Monitor, which are "below" Telnet, needed some corrections.
> > * CAN-Controller (Intel 82527)
> This sounds new unless it is based upon the one in the eth_comm BSP.
> Ideally this would end up in libchip/canbus so there is a prayer of
> using it on other CPU families and boards.
It was derived from a previous project, kind of a CAN-Monitor, where performance and timing was 
mandatory. Using the traditionally approach with open/close, read/write etc. was not possible. Messages were 
kept in a system of linked-lists. (zero-copy approach) On request, selected messages were converted and 
written to files for later access thru FTP.
For more general purposes, we are thinking about to port something like Can-Open. We will try to get some 
more feed-back on that topic later this month. (embedded world fair in Nuernberg)
> You are encouraged to submit any modifications to the RTEMS source.
> Please make it easy to review and merge by breaking it into discrete
> parts as much as is possible.  For example, the last time someone
> had RTEMS compiling under the Metrowerks toolset, there were some
> uses of GNU compiler extensions that had to be removed.
Well, the GNU developers have added some quite clever and useful extensions. (MW is a little bit behind on 
that - pls don't tell anybody <grin>) 
Basically there were 3 areas of modifications
* Inline Asm: MW/CW has a GNU compatible mode (kind of ... ) Those parts have to be modified. 
  However, most of the modifications, probably all, could go back to the GNU version. 
  Generating identical code of course.
* InterruptHandler(s): minimal modifications to take care about the EABI conventions. (R2 + R13)
* "sloppy programming": add function prototypes, add proper type-casts, correct wrong type-cast ....
  This was most of the work. Some areas contain some real ugly code ... sorry to say that. 
  That code works, nothing to complain, but it's hard to port it.
> > Ports for other targets are planned or already under development.
> > In particular boards based on MPC555, MPC565, MPC8260 and ColdFire processors.
> Cool.  We would be happy to take any improvements.  
Sequence and priorities will be adjusted based on feed-back from the "embedded world" fair.
Looking forward ...

Dieter B. Schaefer

More information about the users mailing list