Downloading to the Target MCU

The downloading or device programming process is to transfer the content of a firmware image file, built from a project, onto the flash of the target MCU. JumpStart C++ for Cortex includes a built-in downloader (iflash-cortex) which is accessible within the IDE, under ImageCraft->Program Device with Project Output.


A hardware debug / programming pod is needed to provide the programming access. iflash-cortex can use the following debug / programming pods:


  1. Segger JLINK, an industry standard pod with excellent support for all Cortex-M and numerous other MCUs.

  2. ST ST-LINK, a low-cost pod from ST. It only works with the STM32F series of MCUs. Low level debug support is through ST’s ST-Link GDB server.

  3. Black Magic Probe is an open source hardware and software debug pod. Notably, it contains a GDB server built into its firmware for more robust and potentially faster performance.


NOTE: the ST-LINK low level support is through a GDB Server DLL provided by ST. As of this writing, there are some performance issues that makes flash programming slow using this pod. ST is addressing these problems, and will provide updates that will address the problems, probably sometimes toward the end of 2018.

Meanwhile, for flash programming, you may use ST’s STLINK utility (available on their website) for faster programming performance. NOTE: If you are using one of the ST Nucleo boards, Windows will allow you to drag and drop the .bin file to the virtual folder for the board created when you plug in the board. However, our experience shows that sometimes the program does not work correctly when programmed using this technique, and we do not recommend using this technique.

NOTE: If you are using the ST-LINK pod, you must also quit the ST-LINK utility before you can use the IDE built-in downloader, or to run the debugger. Otherwise, the ST-LINK utility locks the debug pod for exclusive access.

Installing the USB Drivers

The ST-LINK and Segger JLINK both require their own USB drivers. Windows or Windows Update maybe able to install the necessary USB drivers when you plug in the pod. If not, we provide copies of the drivers under <install root>\Drivers\.