Overo Bare Metal

From Gumstix User Wiki
Jump to: navigation, search

Setup the cross compiling environment

The one I used is Sourcery CodeBench Lite Edition, you can get it from its website.
Please choose the eabi verison and the tar.bz2 one. I used arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
Untar the file:

$ mkdir ~/overo-standalone
$ cd ~/overo-standalone
$ tar xvjf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Add the bin to your PATH:

$ export PATH=$PATH:~/overo-standalone/arm-2008q3/bin

Write the program

The following two Hello World programs have been tested on an overo.
You can get source files from here.

Compile the program

Assembly verison:

$ cd asm/

Use make to compile the asm program

$ make

C version:

$ cd c/

Run the compile file in c program folder

$ sh compile

Run the program

You needed a flashed, bootable MicroSD. You can make one by using Sakoman's scripts (mkcard.sh and mksdcard.sh).
Copy the .bin file generated by the compiler to the boot drive on the SD card:

$ cp *.bin /media/boot/

Umount the SD card

$ umount /media/boot
$ umount /media/rootfs

Plug the SD card in overo and connect the overo on a Tobi expansion board.
Power it up and go into serial console.

When the console prompt "Hit any key to stop autoboot", please hit any key to interrupt.
And run:

# mmc list
# mmc part
# fatls mmc 0:1
# fatload mmc 0:1 0x80200000 boot.bin
# go 0x80200000

By now you should see "Hello world!" poping in the console.


Code used:

The Hello World C code is from:
The commands used in serial console are from:
The code used in Hello World is modified from:
The Definitive Guide to the ARM Cortex-M3 P172-174

Cross compiling tool used:



Linker script:

Futher readings:

Building Bare-Metal ARM Systems with GNU

TRM(Technical Reference Manuals):

TI OMAP35x Applications Processor Technical Reference Manual
ARM Architecture Reference Manual
ARM Assembly Language Tools User's Guide
RealView Platform Baseboard for Cortex-A8 User Guide