Use regular GCC/binutils/NewLib arm-elf soft-float cross-compilers build.
The Debian GNU/Linux packages are provided on this server. Look into Cross-copilers article at this Wiki.
Board software packages
The basic support for AT91SAM7X256 is included in System-Less Framework. It has been provided by Tran Duy Khanh together with oc8n board support.
The Qemu amulator has been extended by Filip Navara to support AT91 architecture and some peripherals of AT91SAM7X256 chip and at91pes board.
The sources are included in repository http://repo.or.cz/w/qemu/navara.git
git clone git://repo.or.cz/qemu/navara.git
The full emulator configuration for all tagets
./configure --enable-system --enable-linux-user --enable-io-thread --prefix=$(pwd)/bin
The minimal build of ARM target only can be made by
./configure --target-list=arm-softmmu --disable-kvm --prefix=$(pwd)/bin
To run emulator for at91pes board use
qemu-system-arm -M at91pes -kernel tests/demo_full_try2.elf
To run with GDB support
qemu-system-arm -M at91pes -kernel tests/demo_full_try2.elf -gdb tcp::1234 -S
- -gdb tcp::1234 (shortcut -s) .. directs qemu to accept GDB connections on TCP port 1234
- -S .. option stops application startup and waits for GDB. The GDB command "c"ontinue is then used to start application.
The GDB to analyze given binary can be started by
Then connect to target is achieved by GDB command
target remote :1234
Both steps can be automated by use of ".gdbinit" file or use of next GDB invocation line
arm-elf-gdb tests/demo_full_try2.elf --eval-command="target remote :1234"
To run with DDD (Data Display Debugger) start DDD with
ddd --debugger arm-elf-gdb
The connection to target can be automatized with use of ".gdbinit" script
file bin/main.elf target remote :1234 b main c