SEGGERs in-circuit flash programmers are fast, robust, reliable, and easy to use. Whether the focus is on size, flexibility, portability, security, or mass production, the SEGGER Flasher Family has the perfect programmer for the task at hand.
SEGGER Flashers are a family of professional in-circuit programmers, designed to be used in service environments, prototype programming, and for mass production. They program the flash (non-volatile) memory of microcontrollers and Systems-on-Chip (SoCs) as well as attached SPI-style flashes with single data transfer buses or parallel data transfer over multiple I/O pins.
Flashers work with a PC or in stand-alone mode, connect via USB and/or Ethernet (Flasher PRO, Flasher PRO XL, Flasher Portable PLUS and Flasher ARM), and come with driver and user tools for all major platforms (Linux, macOS and Windows).
SEGGER Flashers have a standard internal memory of 128 megabytes to store firmware images and programming configurations. They are designed to handle any flash programming requirements. Where larger images need to be programmed, the Flasher PRO XL comes into play. With its huge memory capacity, it can also program target systems running large footprint OSes such as Android, Linux, Windows IoT.
With the Flasher Hub-12 or the Flasher Hub-4 in combination with the Flasher Compact that is ideal for integration into space-limited production environments, like production rigs or automated test equipment (ATE), SEGGER offers a full-featured gang programming system for parallel in-system programming (ISP). SEGGER also provides a comprehensive ecosystem covering several security issues like Authorized Flashing, protection of intellectual property (IP), TELP, and much more with SEGGERS's Flasher Secure.
SEGGER Flashers support writing to a wide range of flash memories and microcontrollers with built-in flash memory. For this, they use either the programming interface or the debug interface of the CPU, e.g. TAG, SWD, cJTAG, I2C, UART, SPI, SPD and many others. On all Flashers, the interfaces are controlled by two dedicated CPUs running at up to 200MHz, single cycle and can adopt to almost any target interface required.
The Flasher Portable PLUS is a handheld, battery-driven, stand alone flash programmer, designed to meet the need for an extremely portable, production-grade flash programmer for in-field firmware updates.
The Flasher ARM is used to program the non-volatile memories of Arm-based microcontrollers and Systems-on-a-Chip (SoCs) as well as external flashes like (Q)SPI flashes that are directly connected to the microcontroller. It can be used in stand-alone or PC-based mode and connects via USB, Ethernet or an RS232 interface. Like the Flasher PRO, it has a 20-pin connector, which is compatible with the standard 20-pin JTAG connector defined by Arm. Various adapters are available.
As a multi-platform solution, Flasher ARM comes with the setup and control software for Linux, macOS and Windows. Software and firmware updates are included. Similarly, use on all target devices currently supported, and on any that will be added, is also included.
The Flasher ARM as a member of the SEGGER Flasher family supports a wide range of CPU cores and an even wider range of different devices in host-based mode. The list of supported manufacturers, families, and devices and SoCs includes support for tens of thousands of devices in hundreds of device families with billions of devices programmed.
This concept makes it possible to adapt to almost any system for ISP programming purposes. Dedicated flash loaders, which can be easily downloaded to the programmer, make it possible to program almost any device. This flexibility allows using the debug or dedicated programming interfaces of microcontrollers to program the on-chip memories as well as the programming of the off-chip parallel or (Q)SPI flashes. (Q)SPI can also be programmed directly.
As a multi-platform solution, Flasher ARM comes with the setup and control software for Linux, macOS and Windows. Software and firmware updates are included. Similarly, use on all currently supported target devices, and any that will be added, is also included.
The Flasher ARM is easy to set up and operate using SEGGER software tools. It can be operated in either stand-alone or PC-based programming mode. In stand-alone mode it can be operated via remote control (USB, UART, Ethernet) or by the push of a button or TTL triggers.
Many modern devices require some pieces of unique information. Flasher ARM allows the programming of data that differs amongst other otherwise identical units. Typical examples are things like serial numbers, ethernet hardware addresses (MAC), and digital signatures, and license keys that enable/disable product features. All these options can be adapted from device to device by applying patch data to the original firmware.
The Flasher ARM comes with SEGGER's built-in web server. It is designed to present important device and current operation data for a quick overview and, additionally, to check the status of the programmer, providing information about:
This may be important for fast troubleshooting through code verification, for instance, as it is when executing a cyclic redundancy check (CRC) that helps to detect errors during data transmission or storage.
Using the emFTP server enables easy upload of configuration files and firmware images. By connecting to the emFTP server using an FTP client of choice, files can be transferred between client and Flasher.
Having access to the Flasher configuration via FTP enables configuration of multiple Flashers from a central production control server. This interface also can be used to make the production line part of a CI/CD system to push stable releases into the current production.
Analyzing the reliability of the production line is an important task, when it comes to increasing the production frequency. This purpose is supported by the built-in FTP server, which lets users check the history of past programming cycles via log file download. Each entry provides the following information:
A: The Ethernet data lines are isolated as required per IEEE 802.3 (test voltage 1500 Vrms for one minute). Note that this is NOT valid for the Ethernet shield that has a direct electrical contact to the USB shield and a resistive and capacitive coupling to probe GND. For an effective isolation, you need to use an unshielded twisted pair Ethernet cable.
All results were taken from the J-Link Commander output. Tests started with the flash either empty or erased, as flash erase times depend very much on the selected device. Sector sizes may grow for large devices. Please refer to the chip manual of the appropriate device to get information about erase times.
J-Link supports the programming of memory-mapped QSPI NOR flash via the standard methods described above.
In the beginning, SPI NOR flash was usually a custom connection and not standardized, with advanced MCUs and QSPI flash memory-mapped made visible in the MCU address space. However, it eventually became a full replacement and even successor of parallel NOR flash. With J-Link, all features known from internal flash are also available in memory-mapped QSPI flash:
Note: Hardware breakpoints are not usable in QSPI flash on many Cortex-M based devices. This makes J-Link + flash breakpoints the only real option to debug in QSPI flash on these devices.
A customized flash algorithm is needed to program these devices. Customers can do this themselves using J-Link Device Support Kit, or SEGGER can help. Please contact
sa...@segger.com to request a quotation.
SEGGER engineers have written, validated, and optimized the flash loaders, making sure they work reliably and deliver the best possible performance. SEGGER has hardware in-house for all supported devices and can re-test and give support to users.
SEGGER's Embedded Experts can add support for new or custom devices by drawing on their extensive experience. In many cases, this is done by SEGGER free of charge. However, in urgent cases, or for devices which are not designed for the mass market, or devices that are highly complex, or for other reasons, there may be a charge.
All tests were performed by placing a 512 KB program into the flash memory of a blank STM32F417IG microcontroller connected via SWD interface. The SWD speed was selected at the maximum possible for each debug probe.
The J-Link also has the option of further software enhancements with the production flash programming utility (J-Flash). The ability to take full advantage of the development environment using the Unlimited Flash Breakpoint module also means you free your development from the hardware breakpoint restriction. In this test, J-Link is the clear winner.
We do not recommend or support the following programming methods via J-Link Commander or J-Flash Lite for production purposes. Regarding production programming, only production grade programming tools should be used.
Production grade programming tools typically feature 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.
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:
Flasher is a programming tool for all common devices with internal or external flash memory. For a list of all supported devices click here. Flasher ARM is designed for programming flash targets with the J-Flash software or stand-alone.
J-Flash is an application that can program internal and external flash on ARM/Cortex devices. J-Flash can be used as a GUI-based application or in batch mode. It is available for Windows, Linux and macOS.
The memories that can be programmed range from the internal flash memory of microcontrollers and SoCs to external parallel flash memory (CFI Flashes) as well as (Q)SPI flashes. (Q)SPI flashes can also be programmed by connecting directly to the pins.
3a8082e126