SAM9X60-EK – Configure and Build at91bootstrap for a MPLAB® Harmony 3 Project with MPLAB X IDE

Introduction

This training topic describes configuring and building at91bootstrap for loading and debugging an MPLAB® Harmony 3 project on the SAM9X60-EK Evaluation Kit using the MPLAB X Integrated Development Environment (IDE).

Background

The at91bootstrap is used by MPLAB X IDE to initialize DRAM so that it can continue loading the MPLAB Harmony 3 Software Framework project binary (harmony.bin). Once the project has been loaded onto the SAM9X60-EK, MPLAB X IDE can be used to develop and debug the application.

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


Prerequisites

The following are prerequisites for this training:

This training topic was developed with MPLAB X IDE v6.05 and XC32 v4.21.


Download at91bootstrap

1

Create a Project Directory.

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

2

Download or clone at91bootstrap version 4.

Download or clone from the Linux4sam GitHub repository.

This training topic was developed with at91bootstrap version 4.0.5.


Open Project at91bootstrap

1

From MPLAB X IDE, select File > Open Project…
An Open Project dialog is displayed.

2

Find and select the at91bootstrap project directory.

ide_at91_open_proj.png

3

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).

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.

ide_at91bootstrap_configuration_error.png

Configure at91bootstrap Project Properties

1

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.

ide_at91_proj_properties_resolve.png

2

Configure the XC32 Compiler.

In the Categories pane, select Makefile.

a

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

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

b

Enter the following text in the Clean command box:

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

ide_at91_sam9x60_curiosity_proj_xc32.png

c

Click on the Apply button.

In the cross-compiler path entered above, type the version number of the XC32 compiler on your host computer. In this step, we are using version 4.21.

The installation location of the XC compiler versions can be found by selecting from the MPLAB X IDE toolbar: Tools > Options. 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.

3

Configure at91bootstrap

a

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

b

Find the at91boostrap project directory and select the configs directory and then select sam9x60ek_bkptnone_defconfig.

c

Click on the Open button.

ide_at91_kconfig_load_sam9x60ek.png

4

Observe the following settings:

a

Expand Primary Operation and observe the Configure and stop radio button.

ide_at91_sam9x60ek_proj_pri_ops.png

b

Expand DRAM. Next, expand DRAM parts and select the DDR2 DDR_W972GG6KB (SAM9X60-EK) radio button.

ide_at91_sam9x60ek_proj_dram.png

c

Scroll down and expand Board’s Workaround Options. Expand Workaround for Board Quirks and select the Quirks for SAM9X60-EK board radio button.

ide_at91_sam9x60ek_proj_quirks.png

d

Click on the Apply and then the OK button.

The Project Properties dialog will close.

This concludes configuring the at91bootstrap Project Properties.


Build at91bootstrap

1

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
  2. Click on the Build icon (hammer) in the tool ribbon.

2

Observe the build is successful.

ide_at91_sam9x60_curiosity_build_successful.png

3

Note the location of at91bootstrap.elf:

<project_directory>\at91bootstrap\build\binaries\at91bootstrap.elf

The at91bootstrap has been customized and compiled for debugging using the MPLAB X IDE for the SAM9X60-EK Evaluation Kit.


Summary

The at91bootstrap has been configured and built to load and debug an MPLAB Harmony 3 Software Framework project using the MPLAB X IDE for the SAM9X60-EK Evaluation Kit.


What’s Next?

Once at91bootstrap has been configured and built, it can be used with an MPLAB Harmony 3 Software Framework project. The at91bootstrap.elf file is configured in the Project Properties as shown in the example figure below.

MPLAB X IDE uses at91bootstrap to initialize DRAM and continue loading the MPLAB Harmony 3 application binary image (harmony.bin) using a Debug Probe. Once the project has been loaded onto the SAM9X60-EK, MPLAB X IDE can be used to develop and debug the application.

ide_rtt_proj_bootstrap.png

For training topics on configuring at91boostrap from Non-Volatile Memories (NVM), see:

Second-Stage Bootloader at91bootstrap

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.