Help With coldfire needed

Chris Johns cjohns at cybertec.com.au
Thu Feb 6 20:13:05 UTC 2003


Alan Cudmore wrote:

> My basic questions are:
> 1. What is the best version of GCC to use for the coldfire?
> 2. Do I need patches on GCC to make the coldfire work?
> 3. Is the version of RTEMS I am using tied to a particular version of GCC ?
>
> Right now I'm using RTEMS SS 11182002, Gcc 3.2 and binutils 2.13.1.
> Should I be using GCC 2.95 with special coldfire patches? If so, can I
> still use RTEMS SS 11182002 with the 2.95 GCC?
>
>
> Thanks,
> Alan
>
> Read on for more details:
>
> I need some advice on using RTEMS on the Coldfire. I'm trying to get a
> BSP working for the MCF5307C3 Eval board and here is where I am so far:
>
> 1. I started with RTEMS ss 11182002, GCC 3.2 and binutils 2.13.1.
> 2. I was able to clone the MCF5206elite libcpu and bsp as my starting
> point. I can build the BSP and examples without error.
> 3. I carefully went through and "transformed" the 5206elite bsp into my
> 5307C3 bsp. I have double checked every bit in the register definitions.
> 4. I can load up and run the RTEMS examples for the most part, but the
> console and UART output just does not seem to work. If I write the
> characters that my UART driver is supposed to be outputting into RAM, I
> can run & dump RAM and see the results of hello.exe, paranoia.exe,
> ticker.exe etc..
>
> In an effort to verify that I can get do something with the UART, I set
> up a minimum.exe example that does not include the console or clock
> drivers, then I cut and pasted a small Polled UART initialization
> routine and putchar into that example. I'm just trying to initialize the
> uart and put out a couple of characters in polled mode. I verified the
> addresses of all of the uart registers, and I double checked how they
> are being programmed, but I just cant seem to get the uart output working..
>
> I'm starting to suspect that maybe GCC 3.2 might not be ready for the
> coldfire.
>
> Any help would be appreciated,
> Alan

We use 3.2, and run C++, with STL, exceptions etc, plus large packages like NetSNMP.

One thing to watch out for is making sure variables are correctly set to 
volatile. Look for counts, index etc in driver control structures. Sometimes 
these are not flagged as volatile and should be. This is something that will 
effect code that worked on 2.95 but not on 3.2 with the Coldfire.

-- 
  Chris Johns, cjohns at cybertec.com.au




More information about the users mailing list