Support
Usage
Download the binary distribution for your
platform and decompress the file in an appropriate place. Add this
location ('bin' subdirectory) to your PATH environment variable and you
are ready to go.
When compiling, remember to specify the target chipset with the "-mcpu"
switch with your custom building options. (Actually, you should also
specify linker scripts to match your architecture in order to build useful
images.)
Example
- arm-elf-gcc -mcpu=arm7tdmi -mthumb -O2 -g -c hello_world.c
- arm-elf-gcc -mcpu=arm7tdmi -mthumb -o hello_world hello_world.o -lc
Documentation
Local documents in PDF format.
Build process
GCC's t-arm-elf file was updated to
enable support for the following options:
- marm/mthumb (arm or thumb code generation)
- mhard-float/msoft-float (hardware or software fpu instructions)
- mno-thumb-interwork/mthumb-interwork (arm-thumb modes interworking)
The disabled options were mapcs-32/mapcs-26 (for old ARM machines with
26-bit program counters), fno-leading-underscore/fleading-underscore
(non-ELF library function format) and mcpu=arm7 (for arm7 targets without a
hardware multiply unit). Big endian targets are also disabled for new releases
since nobody seemed to use them.
Newlib was compiled using the "-DREENTRANT_SYSCALLS_PROVIDED" option in the
CFLAGS_FOR_TARGET Makefile variable. This means you should provide your own stubs
for the C-library syscalls, and is actually a good thing. Please check out
Bill Gatliff's article about Newlib.
The following steps and configuration switches were used in the
compilation process:
- cd [binutils-build]
- [binutils-source]/configure --target=arm-elf
--prefix=[toolchain-prefix] --enable-interwork --enable-multilib --with-float=soft
- make all install
- export PATH="$PATH:[toolchain-prefix]/bin"
- cd [gcc-build]
- [gcc-source]/configure --target=arm-elf --prefix=[toolchain-prefix]
--enable-interwork --enable-multilib --with-float=soft --enable-languages="c,c++"
--with-newlib --with-headers=[newlib-source]/newlib/libc/include
- make all-gcc install-gcc
- cd [newlib-build]
- [newlib-source]/configure --target=arm-elf
--prefix=[toolchain-prefix] --enable-interwork --enable-multilib --with-float=soft
- make all install
- cd [gcc-build]
- make all install
- cd [gdb-build]
- [gdb-source]/configure --target=arm-elf --prefix=[toolchain-prefix]
--enable-interwork --enable-multilib --with-float=soft
- make all install
|