SAM-BA® In-System Programmer (ISP)

Last modified by Microchip on 2023/11/10 10:58

Introduction


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 Arm®-based Microchip 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 software programs.

See the "Supported Devices and Evaluation Kits" section for a listing of supported target 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 (Arm-based Microchip 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 the 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 following 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 (Arm-based Microchip MPU or MCU). The SAM-BA Monitor communicates with the SAM-BA Host over a serial communications link.

Note: The "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 "QML Scripts" section of the "SAM-BA® In-System Programmer - Host Application Program" page.

Secure Boot


The SAMA5D2 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.

Note:

Enabling the ROM Boot Code for Secure Boot mode requires a Non-Disclosure Agreement (NDA) from Microchip. Contact your nearest Microchip Sales office for instructions on how to attain confidential documents.

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 In-System Programmer - Applets" page.

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 is shown on the "SAM-BA In-System Programmer Supported Devices and Evaluation Kits" page.

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 In-System Programmer - Applets"). The target Console is configured by the boot configuration in the target device. For more information, refer to the "SAM-BA In-System Programmer Target Console Serial Communications" topic and device datasheet.

Note: The "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 an Arm-based Microchip 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 is shown on the "SAM-BA In-System Programmer Supported Devices and Evaluation Kits" page.

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 (Arm-based Microchip 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

The SAM-BA In-system Programmer is a set of software programs that provide utility functions and in-system read, write, execute, and verification of internal and external memories of Arm-based Microchip 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 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 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 (Arm-based Microchip 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 an Arm-based Microchip 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 is shown on the "SAM-BA In-System Programmer Supported Devices and Evaluation Kits" page.