SAM-BA® ISP - Introduction

SAM-BA® In-system Programmer (ISP) — Introduction

The SAM-BA® In-system Programmer (ISP) is a set of software programs that provides utility functions and in-system read, write, execute, and verification of internal and external memories of Microchip Technology’s Arm®-based MPUs and MCUs. It consists of an open-source host application program (SAM-BA Host) running on Windows or Linux® and a monitor program (SAM-BA Monitor) that is embedded in the target device.

A hardware debugger or programming device is not required to use the SAM-BA In-System Programmer (ISP) software programs.

A listing of supported target devices and evaluation kits are shown in the topic Supported Devices and Evaluation Kits.

SAM-BA Host Application Program

The SAM-BA Host is an open-source software application program that runs on a host PC running Windows or Linux. It communicates with the target device (Microchip Technology Arm-based MPU or MCU) which has the SAM-BA Monitor program embedded in its ROM Boot Code. In addition, the SAM-BA Host and Monitor can load and execute binary applet programs in RAM of the target device to provide additional features and capabilities. Finally, the SAM-BA Host can execute Qt Modeling Language (QML) scripts to combine many low-level commands to simplify development and debugging.

Additional information on the SAM-BA Host Application program can be found in the follow topics:

SAM-BA Monitor Program

The SAM-BA Monitor program, controlled by the SAM-BA Host application program, performs basic internal memory read, write, and execute commands. It is embedded in the ROM Boot Code of the target device (Microchip Technology Arm-based MPU or MCU). The SAM-BA Monitor communicates with the SAM-BA Host over a serial communications link.

The SAM-BA Host to Monitor Serial Communications link is a dedicated serial port separate from the Target Console serial communications.

Additional information on the SAM-BA Monitor program can be found in the following topics:

SAM-BA Applets

Applets are binary programs that the SAM-BA Host and Monitor can load and execute in the target device RAM to provide additional features and capabilities.

Additional information on the SAM-BA Applets can be found in the topic: SAM-BA Applets

Applet programs can perform the following utility functions:

SAM-BA QML Scripts

The SAM-BA Host can execute Qt Modeling Language (QML) scripts to combine many low-level commands to simplify development and debugging.

Additional information on the SAM-BA QML Scripts can be found in the topic: SAM-BA Host QML Scripts

Secure Boot

The SAMA5Dx family and SAM9X60 have the ability to load signed and encrypted programs during the Boot Process. This allows only authorized code to load and execute on the processor.

Enabling the ROM Boot Code for Secure Boot mode requires a Non-Disclosure Agreement (NDA) from Microchip Technology. Contact your nearest Microchip Sales office for instructions on how to attain confidential application note AN2435, SAMA5D2 Series Secure Boot Strategy (Lit. No. DS00002435).

Glossary

Applets

Applets are binary programs that the SAM-BA Host and Monitor can load and execute in the RAM of the target device to provide additional features and capabilities. For more information, see the SAM-BA Applets topic.

Board

Within the context of the SAM-BA In-System Programmer, a board is an evaluation kit containing a target device. The SAM-BA Host can be configured to a specific evaluation kit using the -b. —board option. A listing of supported target devices and evaluation kits are shown in the topic Supported Devices and Evaluation Kits.

Bootstrap

Specifically, the at91bootstrap is the second-stage bootloader that is stored in external Non-Volatile Memory (NVM) (SD Memory Card, MultiMedia Card (MMC), Embedded MultiMedia Card (eMMC), NAND Flash, Serial Flash, QSPI Flash Memory) and, if valid code detected, is copied into internal SRAM by the first-stage bootloader that is stored in the ROM Boot Code. The first-stage bootloader will jump to and begin the execution of the at91bootstrap.

Console

(Also: target console, device console, console terminal, applet console, ROM code console, DEBUG, and UART_CONSOLE) The Console is a serial communications port (generally a UART) on the target device that can communicate with a terminal emulation program on a host computer. It provides status information from operating systems, such as Linux, and debug information from utility programs (for example, from SAM-BA Applets). The target Console is configured by the boot configuration in the target device. For more information, refer to the Target Console Serial Communications topic and device data sheet.

The SAM-BA Host to Monitor Serial Communications link is a dedicated serial port separate from the Target Console serial communications.

Device

Within the context of the SAM-BA In-System Programmer, a device is a Microchip Technology Arm-based MPU or MCU that is under development, also known as the target. The SAM-BA Host can be configured to communicate with a specific device using the -d, --device option. A listing of supported target devices and evaluation kits are shown in the topic Supported Devices and Evaluation Kits.

Host

The SAM-BA Host application program is an open-source software application that runs on a host PC running Windows or Linux. It communicates with the target device (Microchip Technology Arm-based MPU or MCU) which has the SAM-BA Monitor program embedded in its ROM Boot Code. In addition, the SAM-BA Host and Monitor can load and execute binary applet programs in RAM of the target device to provide additional features and capabilities. Finally, the SAM-BA Host can execute Qt Modeling Language (QML) scripts to combine many low-level commands to simplify development and debugging.

In-System Programmer (ISP)

The SAM-BA® In-system Programmer (ISP) is a set of software programs that provide utility functions and in-system read, write, execute, and verification of internal and external memories of Microchip Technology’s Arm-based MPUs and MCUs. It consists of an open-source software application program (SAM-BA Host) that runs on a host PC running Windows or Linux and a monitor program (SAM-BA Monitor) embedded in a target device. A hardware debugger or programming device is not required to use the SAM-BA In-System Programmer (ISP) software programs.

ROM Boot Code

The ROM Boot Code is the first-stage bootloader located in the MPU’s internal Read-only Memory (ROM). The ROM Boot Code begins the process of initializing the processor and peripherals. It will load the second-stage bootloader into internal Static RAM (SRAM) from external Non-Volatile Memory (NVM) provided the boot on external memories is enabled and valid code is detected. If boot on external memories is disabled or valid code is not detected, the ROM Boot Code will initialize and start the SAM-BA Monitor program.

SAM-BA monitor

The SAM-BA Monitor program, controlled by the SAM-BA Host application program, performs basic internal memory read, write, and execute commands. It is embedded in the ROM Boot Code of the target device (Microchip Technology Arm-based MPU or MCU). The SAM-BA Monitor communicates with the SAM-BA Host over a serial communications link.

Target

Within the context of the SAM-BA In-System Programmer, a target is a Microchip Technology Arm-based MPU or MCU that is under development, also known as a device. The SAM-BA Host can be configured to a specific device using the -d, --device option or evaluation kit using the -b. --board option. A listing of supported target devices and evaluation kits are shown in the topic Supported Devices and Evaluation Kits.

© 2020 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.