program - Program DUT

Erase and Program DUT MCU on-board flash.

General usage:

- command: program <target> [<uartPort>] [offset:]<img>[,[offset:]<img>[,...]] [noerase]
  [id: <usbDeviceID>]
  [path: <usbDevicePath>]
  [interface: <usbDeviceInterface>]
  [retry: <retryCount>]

Argument

Description

target

Target to program. A clock frequency may be appended as <target>@<freq> (for example STM32L4@200kHz) to override the default SWD/JTAG adapter speed. Not all targets support this option; unsupported targets will fail this step.

uartPort

UART port name. Only required for UART programming targets.

offset

Optional: Image Address Offset, in decimal or 0x-prefixed hexadecimal.

img

Firmware File. A value of none skips that offset/image slot without error, leaving a gap in a multi-image program step.

Optional: Additional offsets, images

noerase

Optional: If set, DUT will not be erased prior to programming.

usbDeviceID

Optional: Programming adapter USB device identifiers: VID:PID.

usbDevicePath

Optional: Programming adapter USB device path: port. ... .port.

usbDeviceInterface

Optional: Programming adapter USB device interface: interface_number.

retryCount

Optional: Number of times to retry the test step.

On the PLT-300A, the programming adapter can be specified using usbDeviceID, usbDevicePath, and usbDeviceInterface. Specifying the programming adapter location allows multiple adapters of the same type to be used in a single test plan, or for an external adapter to be used in place of the built-in programming adapter. See USB Interaction for details on specifying USB devices.

Firmware images can be provided as Intel HEX (.hex), ELF (.elf / .axf) or binary files (requiring an offset).

Usage with CMSIS programming packs:

- command: program CMSIS [offset:]<img>
  pack: <cmsisPack>
  target: <cmsisTarget>
  [id: <usbDeviceID>]
  [path: <usbDevicePath>]
  [retry: <retryCount>]

Argument

Description

offset

Optional: Image Address Offset.

img

Firmware File.

cmsisPack

Optional: CMSIS Pack file.

cmsisTarget

Target name, as defined in CMSIS Pack file.

usbDeviceID

Optional: USB device identifiers: VID:PID.

usbDevicePath

Optional: USB device path: port. ... .port.

retryCount

Optional: Number of times to retry the test step.

Firmware images can be provided as Intel HEX (.hex), ELF (.elf / .axf) or binary files (requiring an offset). Only one image may be specified for CMSIS programming.

Usage with USB-DFU targets:

- command: program USB-DFU [offset:]<img>
  target: <target>
  [id: <usbDeviceID>]
  [path: <usbDevicePath>]
  [retry: <retryCount>]

Argument

Description

offset

Optional: Image Address Offset.

img

Firmware File.

target

Target MCU to program.

usbDeviceID

Optional: USB device identifiers: VID:PID.

usbDevicePath

Optional: USB device path: port. ... .port.

retryCount

Optional: Number of times to retry the test step.

If neither usbDeviceID or usbDevicePath is set, the device connected to DUT USB-C Port (Port 1) is assumed. Only one image may be specified for USB-DFU programming.

For USB-DFU, firmware images must be in .dfu format. The dfuse-pack.py script from the dfu-util project <https://sourceforge.net/p/dfu-util/> can be used to generate .dfu files from hex or binary.

Supported target values:

target

Description

ATSAMD

Microchip (Atmel) SAM D1x/D2x, C2x, L2x, R2x or R3x (SWD)

ATSAMD_DAP

Microchip (Atmel) SAM D1x/D2x, C2x, L2x, R2x or R3x (USB, CMSIS-DAP)

ATSAME5

Microchip (Atmel) SAM D5x/E5x (SWD)

ATSAME5_DAP

Microchip (Atmel) SAM D5x/E5x (USB, CMSIS-DAP)

AVRATmega168P_ISP

Microchip (Atmel) AVR ATmega168P(A) (JTAG:ISP)

AVRATmega168P_XPm

Microchip (Atmel) AVR ATmega168P(A) (USB, XPmini)

AVRATmega168PB_ISP

Microchip (Atmel) AVR ATmega168PB (JTAG:ISP)

AVRATmega168PB_XPm

Microchip (Atmel) AVR ATmega168PB (USB, XPmini)

CC1352_DAP

TI CC1352P1, CC1352R1 RFSoC (USB, CMSIS-DAP)

CC1352P7_DAP

TI CC1352P7 RFSoC (USB, CMSIS-DAP)

CMSIS

CMSIS-DAP programmer, requires pack: and target: fields (USB)

EFM32

Silicon Labs EFM32 MCU (SWD)

EFR32

Silicon Labs EFR32 RFSoC (SWD)

ESP32_UART

Espressif ESP32 RFSoC (UART)

LPC11xx

NXP LPC11xx MCU (SWD)

nRF52

Nordic nRF52 RFSoC (SWD)

nRF52_DAP

Nordic nRF52 RFSoC (USB, CMSIS-DAP)

nRF52_JLink

Nordic nRF52 RFSoC (USB, JLink)

nRF91

Nordic nRF9160 RFSoC:Cortex-M33 (SWD)

nRF91_JLink

Nordic nRF9160 RFSoC:Cortex-M33 (USB, JLink)

PIC18F25K20

Microchip PIC18F25K20 (JTAG:ICSP)

PIC18F25K20_PK2

Microchip PIC18F25K20 (USB, PICkit2)

PN7360

NXP PN7360 (SWD)

PN7362

NXP PN7362 (SWD)

PN7412

NXP PN7412 (SWD)

PN7462

NXP PN7462 (SWD)

PSoC4

Infineon (Cypress) PSoC4 (SWD)

PSoC6

Infineon (Cypress) PSoC6 (SWD)

PSoC6_KP3

Infineon (Cypress) PSoC6 (USB, KitProg3)

RP2040

Raspberry Pi RP2040 (SWD)

RP2040_DAP

Raspberry Pi RP2040 (USB, CMSIS-DAP)

STM32F1

ST STM32F1xx MCU (SWD)

STM32F1_STLink

ST STM32F1xx MCU (USB, ST-Link)

STM32F2

ST STM32F2xx MCU (SWD)

STM32F2_STLink

ST STM32F2xx MCU (USB, ST-Link)

STM32F4

ST STM32F4xx MCU (SWD)

STM32F4_STLink

ST STM32F4xx MCU (USB, ST-Link)

STM32G0

ST STM32G0xx MCU (SWD)

STM32G0_STLink

ST STM32G0xx MCU (USB, ST-Link)

STM32G4

ST STM32G4xx MCU (SWD)

STM32G4_STLink

ST STM32G4xx MCU (USB, ST-Link)

STM32L0

ST STM32L0xx MCU (SWD)

STM32L0_STLink

ST STM32L0xx MCU (USB, ST-Link)

STM32L4

ST STM32L4xx MCU (SWD)

STM32L4_STLink

ST STM32L4xx MCU (USB, ST-Link)

STM32L5

ST STM32L5xx MCU (SWD)

STM32L5_STLink

ST STM32L5xx MCU (USB, ST-Link)

STM32H7

ST STM32H7xx MCU (SWD)

STM32H7_DualBank

ST STM32H7xx MCU, dual-bank flash (SWD)

STM32H7_STLink

ST STM32H7xx MCU (USB, ST-Link)

USB-DFU

USB Device Firmware Upgrade (DFU 1.0, 1.1) (USB)

Note

The target list above covers commonly used programming targets. Additional MCU-specific targets (further STM32 and LPC family variants, TI CC13xx/CC26xx RFSoCs, additional PIC18 and AVR parts, and others) are supported by the underlying programmer; contact Blue Clover Devices if the target you need is not listed here.

Examples