SAMA5D29-Curiosity – Configure and Build at91bootstrap to Load a MPLAB® Harmony v3 Application from SD Memory Card

Last modified by Microchip on 2024/06/20 12:44

Introduction

This training topic describes how to download, configure, and build at91bootstrap to load an MPLAB® Harmony v3 Software Framework application binary image (harmony.bin) from SD memory card to DDR2 SDRAM on the SAMA5D29-Curiosity Development Board using the MPLAB X Integrated Development Environment (IDE).  

Once at91bootstrap has been built, the resulting binary image (boot.bin) can be copied to SD memory card

AT91bootstrap is a second-stage bootloader for Arm®-based Microchip Technology microprocessors (MPU). For more information see the "at91bootstrap: A Second Stage Bootloader for Microchip MPUs" page.

Prerequisites

  • MPLAB X IDE Installed on the host computer 
  • MPLAB XC32 Compiler installed on the host computer 

 This training topic was developed with MPLAB X IDE v6.20 and MPLAB XC32 Compiler v4.35.

Secure Digital Multimedia Card (SDMMC)

The SAMA5D29-Curiosity has two Secure Digital (SD) memory card slots: 

  1. Secure Digital Multimedia Card (SD/MMC) (J7) – J7 is a Secure Digital (SD) or MultiMediaCard (MMC) memory card slot. It is connected to the SD MMC port 1 (SDMMC1) peripheral of the SAMA5D29. 
  2. Micro Secure Digital (J6) (Bottom Side) – J6 is a microSD memory card slot mounted on the bottom side of the development board. It is connected to the SD MMC port 0 (SDMMC0) peripheral of the SAMA5D29. 

In this example, we are selecting the microSD memory card slot (J6) mounted on the bottom side of the development board.  

Download at91bootstrap

Create a Project Directory.

For the purposes of this training, we’ll name our project directory "at91bootstrap". 


Download or clone at91bootstrap version 4.

Download or clone from the Linux4sam GitHub repository

This training topic was developed with at91bootstrap version 4.0.8.

Open Project at91bootstrap

From MPLAB X IDE, select File > Open Project…

An Open Project dialog is displayed. 


Find and select the at91bootstrap project directory. 

Click on the Open Project button.  

The at91bootstrap project will be displayed in the Projects pane (upper left) and in the at91bootstrap – Dashboard pane (bottom left). 

IDE Open Project

You may receive a Configuration Loading Error. This is due to an older version of the Device Family Pack (DFP) at the time of creating the at91bootstrap project. You will update the DFP to the latest version in the next steps. 

Back to Top

Configure at91bootstrap Project Properties

Open at91bootstrap Project Properties.

Open the at91bootstrap Project Properties using one of the following methods: 

  1. In the Projects pane, highlight at91bootstrap and click on the wrench icon in the at91bootstrap - Dashboard
  2. In the Projects pane, right-click on at91bootstrap and select Properties from the menu. 

The Projects Properties – at91bootstrap dialog box opens. 

If you received a Configuration Loading Error in the previous step, you may see a [Resolve] link next to a version of the DFP. Highlight the latest DFP and click on the Apply button. This will update the configuration to the latest DFP.  

Project Properties

Back to Top


In the Device drop-down box, select ATSAMA5D29.

Configure the MPLAB XC32 Compiler.

In the Categories pane, select Makefile

Enter the following text in the Build command and Debug build command boxes: 

make CROSS_COMPILE="C:/Program Files/Microchip/xc32/v4.35/bin/bin/pic32c-" 

Enter the following text in the Clean command box: 

make mplabclean CROSS_COMPILE="C:/Program Files/Microchip/xc32/v4.35/bin/bin/pic32c-" 

Type the version number of the MPLAB XC32 Compiler on your host computer. In this step, we are using version 4.35. 

The installation location of the MPLAB XC Compiler versions can be found by selecting Tools > Options from the MPLAB X IDE toolbar. An Options dialog box will open. Select Embedded from the toolbar and select the Build Tools tab. 

When cutting and pasting, beware of hidden formatting characters. 

Screen capture of Project Properties: Makefile

Click on the Apply button.

Back to Top


Configure at91bootstrap to load harmony.bin from SD memory card.

In the Categories pane, select Kconfig and click on the Load button. 

Find the at91boostrap project directory. Select configs directory and then sama5d29_curiositysd_uboot_defconfig and click the Open button.

In this example, we are selecting the microSD memory card slot (J6) mounted on the bottom side of the development board.

If you would like to boot from the SD/MMC memory card slot (J7), select the sama5d29_curiositysd1_uboot_defconfig file. 

Screen capture of Project Properties: Kconfig load default configuration

Back to Top


Make the following changes: 

In this step, you are taking an existing default configuration and altering it to load the MPLAB Harmony v3 Software Framework application (harmony.bin) from the SD memory card. This makes configuration a little bit easier than starting from scratch. 

Expand Next Software Type and select the Load 4 MB into start of SDRAM radio button. 

Kconfig load settings

Set Next Software Image File Name to harmony.bin.
Expand Demo Application Image Storage Setup.

Enter the address to load the application 0x26F00000 to The External Ram Address to Load Demo-App Image.  

This value should match the .text load address in the applications linker script (ddram.ld). This value is shown below for the pio_led_on_off_interrupt application. 

IDE ddram linker

Click on the Apply and OK buttons.

This completes the configuration of the at91bootstrap project properties. 

Back to Top

Build at91bootstrap

Build at91bootstrap.

Build the at91bootstrap project using one of the following methods: 

  1. In the Projects pane, right-click on at91bootstrap and select Build from the menu, or 
  2. Click on the Build icon (hammer) in the tool ribbon

Back to Top


Observe the build is successful. 

IDE Output Window: Build Successful

Back to Top


Note the location of boot.bin: 

<project_directory>\at91bootstrap\build\binaries\boot.bin. 

The boot.bin file is the binary image of at91bootstrap. The boot.bin image can be written to the SD memory card using the SAM-BA® Host Applet qspiflash. Instructions on how to do this are listed in the "Learn More" section.

Back to Top

Summary

The at91bootstrap has been configured and built to load an MPLAB Harmony v3 Software Framework application from the SD memory card on the SAMA5D29-Curiosity. 

Back to Top

Learn More