vmware qemu port

sashiono wrote on Tuesday, August 14, 2007:

I would like to try to get FreeRTOS to run in an emulated environment.  I’m Thinking the best platform would be Qemu. mainly because this could simulate many different hardware configurations.

sashiono wrote on Tuesday, August 14, 2007:

Originally I was thinking that it could be based off of one of the dos ports. but I think better would be to use QEMU. Perhaps the qemu-system-arm flag would be the best option. as it has a dual uart, Ethernet and a ARM926E core.

The Main hurdle is getting FreeRTOS to compile into the proper form that QENU can recognize, boot, and execute.  Or really any application for that matter. If I could find a "hello world" type makefile that builds a QEMU bootable image. that would be a great starting point. 

Once we can do that, then debugging via gdb would be simple and we really have unlimited ram to try out things with freertos.

I don’t have much experience with QEMU, but it seems that it would be possible.

It would also be a good way for people to try out FreeRTOS without hardware. Or before their hardware is ready.

sashiono wrote on Tuesday, August 14, 2007:

just found this as well, working on getting it setup. http://wiki.openmoko.org/wiki/OpenMoko_under_QEMU
essentially an emulated S3C2410A and some peripherals.
could make a decent Simulated FreeRTOS environment.

sashiono wrote on Saturday, August 18, 2007:

I finally got FreeRTOS running on a simulated arm7.
I’m using Skyeye simulating the lpc2210 hardware.
I’m using timer0 and uart0 simulated hardware

right now I have direct serial print functions working, When I try interrupt driven I can’t only get one character to print out. So I’m guessing that the interrupt driven uart is not properly simulated.  

so far I have been able to get tasks and coroutines(in the idle hook)
right now I have three tasks and two coroutines all being scheduled properly.

Both preemptive and not preemptive modes seem to work as well. (to test out preemptive I have one task not blocking and other tasks still get swapped in to run)

A couple of stuff I haven’t figured out yet is that the timers are not quite operating at the correct speed, so right now even though the tick should be every 1ms. its more like every 2 seconds. (and I know that skyeye is not that slow) I’m guessing that it is not properly simulating the pll. and I have no idea what the default clock is running at.

I’ll post up an example when I get more stuff figured out.

but everything is looking good so far.

rtel wrote on Monday, August 20, 2007:

Sounds very interesting.  I am not familiar with SkyEye at all.  Let me know when you post something up so I can link to it.


sashiono wrote on Monday, August 20, 2007:

Here is a link to what I have working so far.


If anyone has played with skyeye before and could help me figure out the bugs that I have that would be great.