ARM cross-compiler » History » Version 2

Version 1 (Vanč Levstik, 14.01.2011 14:58) → Version 2/4 (Vanč Levstik, 14.01.2011 15:02)

h1. Tutorial for cross-compiling for our ARM processor.

Just a short tutorial helping you build Buildroot that compiles programs for ARM. It is made for Ubuntu Linux, but should work on other distros too.

h2. To build the Buildroot

With @apt-get install@, you should get yourself following packages (you probably have some of them already, but just to be sure):
* build-essential *build-essential - this installs a complete build environment
* libssl-dev *libssl-dev
* libncurses-dev *libncurses-dev
* bison *bison
* flex *flex
* texinfo *texinfo
* zlib1g-dev *zlib1g-dev
* gettext *gettext
* autoconf *autoconf
* wget *wget
* patch *patch

Then you should set your shell to bash instead of dash, you do this with:
@#sudo dpkg-reconfigure dash@
And then select No

h2. Getting and compiling Buildroot

You can get our Buildroot here: "Buildroot-FRISMS":http://laps.fri.uni-lj.si/fri-sms/datoteke/buildroot-2009.11-fri.tar.bz2
Then you just extract the Buildroot, move into that folder and do:
#make
Compiling takes some time, check that there are no errors.

h2. Compiling our programs

After compiling Buildroot is done, you should add: @\PATH_TO_YOUR_FOLDER\buildroot-2009.11-fri\output\staging\bin@ into your enviroment variable (PATH)
Then your Makefile for compiling programs should look something like this (made for simple helloworld with name main.c):

<pre>
CC=arm-linux-gcc
CFLAGS=-I. --sysroot=/PATH_TO_YOUR_FOLDER/buildroot-2009.11-fri/output/staging
OBJ=main.o

%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
main: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS)
.PHONY: clean
clean:
rm -f *.o *~ main
</pre>