J-Link Flash Download
J-Link comes with a set of highly speed-optimized built-in flashloaders which allow fast download of applications, directly into the flash memory of your target system. To access a list of supported devices, please go to supported CPUs and devices. If a device is not yet listed there, silicon vendors and end customers can add support for said device by themselves using the Open Flash Loader feature.
|And the best of all: This feature is free of charge. |
J-Link is Fastest in Flash Programming
Programming speeds on various targets
The flash download performance with J-Link has been tested with various devices. These tests were performed with J-Link Commander by placing an image of the full flash size of the device into the flash memory of the device.
Note: All tests have been performed with empty/erased flashes. As flash erase times heavily depend on the device, sector sizes and may differ for large devices because they have more large sectors than smaller ones, please refer to the chip manual of the appropriate device to get information about erase times.
The results are taken from the J-Link Commander output.
|Device series||Prog. speed |
(pure programming time)
|Total speed |
|Total time to |
program a 512 KB image
|Ambiq APOLLO (e.g. APOLLO512)||104 KB/s||99 KB/s||5.176s|
|Analog Devices ADSP-CM4xx (e.g. ADSP-CM403F)||153 KB/s||120 KB/s||4.269s|
|Analog Devices ADuCM320||101 KB/s||---||---|
|Atmel AT91SAM4L (e.g. AT91SAM4S)||263 KB/s||235 KB/s||2.176s|
|Atmel AT91SAM4E||263 KB/s||235 KB/s||2.176s|
|Atmel AT91SAM4S||263 KB/s||235 KB/s||2.176s|
|Atmel ATSAMD20 (e.g. ATSAMD20J18)||123 KB/s||---||---|
|Atmel ATSAMV70/V71 (e.g. ATSAMV7EA)||132 KB/s||129 KB/s||3.890s|
|SiLabs EFM32 Giant Gecko (e.g. EFM32GG990)||171 KB/s||---||---|
|Freescale Kinetis K60 (e.g. K60N512)||55 KB/s||---||---|
|Freescale Kinetis E02 (e.g. MKE02Z64xxx2)||32 KB/s||---||---|
|Freescale Kinetis L25 (e.g. MKL25Z128xxx4)||37 KB/s||---||---|
|Freescale Kinetis M34 (e.g. MKM34Z128xxx5)||25 KB/s||---||---|
|Infineon XMC4500||50 KB/s||---||---|
|Marvell 88MC200||195 KB/s||100 KB/s||5.122s|
|NXP LPC18xx (e.g. LPC1857)||265 KB/s||253 KB/s||2.030s|
|Renesas Synergy S7 (e.g. R7FS7G2)||135 KB/s||123 KB/s||4.178s|
|ST STM32F1 (e.g. STM32F103VG)||31 KB/s||---||---|
|ST STM32F4 (e.g. STM32F407IE)||276 KB/s||244 KB/s||2.099s|
|ST STM32F7 (e.g. STM32F756NG)||176 KB/s||171 KB/s||3.003s|
|ST STM32L0 (e.g. STM32L073VZ)||17 KB/s||17 KB/s||30.968s|
|ST STM32L4 (e.g. STM32L476ZG)||71 KB/s||66 KB/s||7.737s|
|TI CC1350 (e.g. CC1350F128)||187 KB/s||165 KB/s||3.097s|
|TI MSP432P401||505 KB/s||377 KB/s||1.360s|
|Toshiba TMPM330||199 KB/s||---||---|
External, parallel NOR flash
The flash download feature of J-Link supports programming of external CFI-compliant, parallel NOR flash devices, allowing these devices to be programmed either directly from the debugger or through J-Link commander. For more information regarding how to setup the debugger / J-Link Commander for download into parallel (CFI) NOR flash memory, please refer to UM08001, chapter "Flash Download". For production environments, we recommend using J-Flash or Flasher ARM.
Non-memory mapped flashes: Serial NOR-, NAND-, DataFlash and EEPROM
Since these flash devices are not connected to the address and data bus directly and the connection to the CPU / MCU / MPU differs from device to device, a custom RAMCode or a dedicated flash programming utility (DFPU) is necessary in order to program these flash devices. With custom RAMCodes it is possible to program these types of flash devices via J-Flash and Flasher ARM. J-Flash comes with a few custom RAMCodes for NAND, Data-flashes and SPI-NOR Flashes for selected evalboards. To program SPI flash memories directly via the SPI bus, there is J-Flash SPI.
If you need support for an other combination of MCU / SOC and non-memory flash device, please do not hesitate to get in touch with us: firstname.lastname@example.org
|CPU/MCU||Eval board||Flash type|
|Atmel AT91SAM9G20||Atmel AT91SAM9G20-EK||Atmel AT45DBxxxD DataFlash|
|NXP LPC11Axx||-||internal EEPROM|
Adding support for new devices: Open Flash Loader
In general, the J-Link DLL comes with a build-in device database that defines which devices are supported. SEGGER tries to update this database as often as possible. Still there are occasions, where support for a device is needed, that is not available yet. In such cases the Open Flash Loader feature allows to add support to the J-Link. The device will be supported in similar fashion as all already supported devices. This includes flash download as well as the unlimited flash breakpoint feature. In addition to creating support for the device, an existing CMSIS compatible flash algorithm can be used to create support for the J-Link as well.
For detailed instructions, please refer to UM08001, chapter "Adding support for new devices".
- Flasher ARM - Stand-alone flash programming solution. Flasher ARM is a programming tool for ARM/Cortex devices with internal or external flash memory. Flasher ARM is designed for programming flash targets with the J-Flash software or stand-alone. Flasher ARM can also operate as a normal J-Link.
- J-Flash - Complete flash programming solution. J-Flash is a Windows application, which can program internal and external flash on ARM/Cortex devices. J-Flash can be used as a GUI-based application or in batch mode.
On supported CPUs, all kinds of flashes can be programmed:
- Internal flash
- External parallel NOR flash
- Serial NOR flash1
- NAND flash1
1Requires production programming software (J-Flash) and a so called custom RAMCode (since these flashes are not memory-mapped accessible)
Download into flash memory for development purposes
The following methods of programming via J-Link Commander or J-Flash Lite are not recommended or supported for production purposes.
For production programming, production grade programming tools should be used. These typically features a more sophisticated multi-step verification process. Many applications also require customization / patching of variable data such as serial number(s), MAC addresses and similar.
We recommend J-Flash or Flasher for production grade programming needs.
J-Link Commander is a free command line utility for simple analysis of the target system with J-Link. J-Link Commander also allows downloads into flash memory of target systems.
How to perform downloading into flash via J-Link Commander:
- Connect J-Link to the PC.
- Connect target system to J-Link
- Start J-Link Commander.
- Type the following commands:
J-Link> device <devicename> // For a list of known devices, please refer to here
J-Link> speed <speed_khz>
J-Link> loadbin <PathToBinFile>, <programmingaddress>
- J-Link Commander executes the flash download and prints out the time statistics on success.
J-Flash Lite is a free, simple graphical user interface which allows downloading into flash memory of target systems.
J-Flash Lite is part of the J-Link Software and Documentation package, available for download here.
How to perform downloading into flash via J-Flash Lite:
- Make sure that the latest J-Link software & documentation pack is installed.
- Connect J-Link to the PC
- Connect target system to J-Link
- Start J-Flash Lite
- Select device, debug interface and communication speed.
- Choose a file and click Program Device or click Erase Chip
- J-Flash Lite performs the requested operation
Flash programming speed in direct comparison
The speed tests have been made with different debug probes and software under the same test conditions. SEGGER J-Link, IAR I-jet and ST-Link V2 and Keil's ULINKpro were tested.
J-Link is the only probe which has been tested in different environments such as with IAR Embedded Workbench for ARM, KEIL uVision and SEGGER's J-Link commander. The tests with J-Link were performed with J-Link software version 4.59a and using J-Link flash loader.
All tests have been performed by placing a 512 KB program into the flash memory of a blank STM32F417IG microcontroller connected via SWD interface. The SWD speed has been selected at the maximum possible for each debug probe. Tests via JTAG interface gave similar results.
J-Link vs. I-jet
The I-jet, which is limited only for use with the IAR Embedded Workbench for ARM, pales in comparison to the J-Links flash programming speed. As can be seen, it is six times slower than the SEGGER J-Link. With the option to further software enhance the J-Link with the production flash programming utility (J-Flash) and the ability to take full advantage of your development environment with the Unlimited Flash Breakpoint module (freeing your development from the hardware breakpoint restriction), makes the J-Link the clear winner.
J-Link vs. ULINKpro
ULINKpro can be used with KEIL uVision only. It also supports ETM trace but without large, built-in RAM buffer present in the J-Trace PRO. Because of the trace support it comes at a much higher price than the industry standard J-Link.
Download and flash programming speed are fairly high, but still way behind J-Link. Flash breakpoints (the ability to set an unlimited number of breakpoints in flash memory) are not available. ULINKpro has a smaller brother, ULINK2, which does not support ETM trace and is less costly than ULINKpro. Because it is slower than ULINKpro, it has not been used in this comparison.
J-Link vs. ST-LINK
The ST-LINK, which is limited only for use with STM8 and STM32 microcontroller families, is cheaply available. This device performs lowest among those tested. The consequences of this include a great increase in development time and debugging frustrations. The inability to move to another ARM/Cortex core may make this device more costly, as projects may become active which ultimately require the purchase of a debug probe that can support a newly chosen microcontroller.
This speed comparison shows the J-Link to be the fastest debug probe available. If you are considering the use of a device other than those found in this test, we urge you to ask the supplier for their flash programming numbers before making the move. We are confident SEGGER will outperform all others. With offerings to suite every debug/production need; SEGGER has you covered.
- Flasher ARM (Production Flash Programmer, Includes J-Flash)
- J-Link PRO (Fastest Download Speeds, Built-in Ethernet and Software Enhanced)
- J-Link ULTRA+ (Fastest Download Speeds, Software Enhanced)
- J-Link PLUS (Software Enhanced - Includes All Software Add-on Licenses)
- J-Link BASE *
- J-Link EDU (Reduced Cost for Education/Hobbyist Use Only)
* This is the device which was used during the above test. All other devices within the J-Link family are a superset of this device and may include performance and/or software enhancements.
To reiterate as it is applicable to all comparisons made above; with the high performance, reliability, cross IDE compatibility, and the option to further software enhance the J-Link with the production flash programming utility (J-Flash) and the ability to take full advantage of your development environment with the Unlimited Flash Breakpoint module (freeing your development from the hardware breakpoint restriction), the SEGGER J-Link is the clear winner!