User guide
GNU-Based Software Development on AT91SAM
Microcontrollers
1. Introduction
Most development solutions used today in the ARM
®
world are commercial packages,
such as IAR
®
EWARM or ARM
®
RealView
®
. Indeed, they integrate all the tools
required for embedded software programming and are well-supported. Recently how-
ever, open-source solutions like the GNU toolchain have become much more
competitive. But, conversely to commercial offers, they lack a full-fledged and easy to
use package for the end user.
The goal of the present document is to solve this issue by providing a step-by-step
guide for setting up a working GNU-based environment targeted at the Atmel AT91
microcontroller family. It will offer the following features:
• Compilation and building of projects using the GNU compiler toolchain
• Debugging using the Atmel SAM-ICE
™
emulator and SEGGER GDB-server
• Memory programming using SAM-BA
™
, Atmel In-Situ Programming (ISP) tool
• Integration of those tasks in an Eclipse
™
-based development environment
In addition, use of this toolchain will be demonstrated using an existing project for
Atmel AT91 microcontrollers. Covered topics include importing the project, compiling
it, debugging it and flashing it in the microcontroller memory.
2. References
Atmel, Getting Started with AT91SAM7S Microcontrollers, lit° 6293.
Atmel SAM Boot Assistant (SAM-BA™) User Guide, lit° 6132.
3. Components
Several different packages have to be combined in order to obtain a fully-featured
system which can be compared with commercial offers. This section describes each
component of the GNU environment about to be setup.
3.1 SAM-ICE
Atmel SAM-ICE is a JTAG emulator designed for all Atmel AT91 microcontrollers. Its
features include:
• Support for all Atmel AT91 ARM7
™
/ARM9
™
based microcontrollers
• No power supply required, powered through USB
• Maximum JTAG speed 8 MHz
• Auto speed recognition
• Support for multiple devices
• Fully plug and play compatible
• Standard 20-pin JTAG connector
• Support for adaptable clocking
AT91 ARM
Thumb
Microcontrollers
Application Note
6310A–ATARM–26-Mar-07