Game Boy Advance (GBA) Port

spacewrench wrote on Sunday, February 10, 2008:

Hi, I’ve just managed to get FreeRTOS 4.7.0 running on a Nintendo GBA-SP (also works on a DS).  My demo just fires off two threads, one of which prints the tick count every second or so, while the other pokes data into the screen.  I’ll have to start adding code to handle various devices, but it doesn’t look like it’s that hard (so far!).

Anybody interested in the patches?

rtel wrote on Sunday, February 10, 2008:

That sounds fun.  Excuse my ignorance, but what processor does the GBA use?  Some form of ARM at a guess?


saiberion wrote on Sunday, February 10, 2008:

Your guess is right.

As far as I know and found out the GBA itself has an ARM7TDMI core at about 16.8 MHz.
The nintendo DS has 2 cores. One ARM946E-S at 67 MHz and an ARM7TDMI at 33 MHz.

But I don’t know the exact technical specifications.

spacewrench wrote on Sunday, February 10, 2008:

Yes, it’s an ARM7TDMI.  There’s a ton of info about it, and I’m pretty sure I once saw the actual manufacturer / part number, but I can’t find it now.  It looks like there was once a very active homebrew community, but it seems to have moved on to the DS, or to have gotten old / married / busy and gone away.  <a href=“”>Here’s</a> the best collection of info I’ve found in one web page.

There’s a <a href=">good emulator, VisualBoyAdvance</a>, and you can still get programmable cartridges for real hardware.  I’m planning to use FreeRTOS on an old GameBoy to control a floor radiant heat system – I need to monitor several OneWire thermometers and control a relay to switch on pumps &amp; so forth.

I couldn’t figure out how to upload stuff to the Files area, so I put my patches <a href=“”>here</a>.  Includes a compiled copy of the demo program (“demo.gba”) so you can try it on the emulator without setting up a toolchain.  Note that the compilation process requires a final preparation step (“gbafix”) where some magic numbers are poked into the binary header.  You can get a copy of gbafix <a href=“”>here</a>.