Introduction

This application note describes the use of at91bootstrap, a second-stage bootloader designed for Microchip Technology Arm®-based Microprocessor Units (MPUs).

The document outlines the process of obtaining the at91bootstrap source code, configuring it with a suitable board-specific setup, and compiling it using MPLAB® X IDE version 6.25 or later. It also provides step-by-step instructions for programming both the at91bootstrap bootloader and a bare-metal application into external non-volatile memory connected to the SAM9X60-Curiosity board, enabling a complete and reliable system start-up sequence.

The bare-metal application is intended to run directly after the system has been initialized by at91bootstrap. In this setup, at91bootstrap performs the essential hardware configuration—such as setting up clocks, memory, and I/O interfaces—and then transfers control to the bare-metal application. This approach allows developers to run their custom application in a known, pre-initialized environment.

The examples used in this document are based on the Microchip SAM9X60-Curiosity board.

This document assumes that the reader is familiar with boot strategies for the 32-bit MPU device used. Refer to the relevant device data sheet for more details about boot strategy options and how to configure them.

For details on the SAM9X60 MPU device used in this document, refer to the SAM9X60 data sheet (see References).