emWin upgrade     Trade-In program     Web shop


J-Flash is a PC software running on Windows (Windows 2000 and later) systems, which enables you to program the internal and external flash of your microcontroller via J-Link or Flasher.

J-Flash comes with sample projects for most popular microcontrollers and evaluation boards which run out-of-the-box. J-Flash can be controlled via GUI or via command line which makes it also possible to use J-Flash for production purposes.



  • Works with RX600, ARM7/9/11, Cortex-A5/A8/A9 and Cortex-M0/M0+/M1/M3/M4/M7 cores
  • Supports the following internal and external flash devices:
    • internal flash of most popular microcontrollers
    • CFI-compliant NOR flash (the combinations 18x, 2x8, 1x16, 2x16 are supported)
    • most non-CFI compliant NOR flash devices (the combinations 18x, 2x8, 1x16, 2x16 are supported)
    • SPI NOR-Flash
    • NAND flash
    • Atmel DataFlash
  • Multi-bank programming support*
  • Can be controlled via command-line (for production automation)
  • High speed programming: up to 150 kByte/sec (flash device dependent)
  • Very high blank check speed: App. 16 Mybte /sec (target dependent)
  • Smart read-back: Only non blank-portions of flash transferred and saved
  • Free 30 day trial version available
  • Easy to use, comes with projects for standard evaluation boards

*Currently only supported for Flasher ARM stand-alone mode.

SEGGER J-Flash Introduction
2:08 SEGGER: J-Flash Introduction





Documentation download          Software download

Programming speeds

The following table shows some performance values regarding the programming speed.

Microcontroller Hardware Flash device Flash organization Programming speed
Atmel AT49BV162A Eval board Atmel AT91EB40 Atmel AT49BV162A internal flash 1x16 bits 97.8
Atmel AT91RM9200 Cogent CSB337 Eval board Intel 28F640J3 1x16 bits 93.0
Digi NS9360 Net Silicon NS9360 Eval board AMD AM29LV160DB 2x16 bits 208.5
Sharp LH7A400-10 LogicPD LH7A400-10 Eval board Intel 28F640J3A120 2x16 bits 147.8
Analog Devices ADuC7020 Analog Devices ADuC7020 Eval board Analog Devices ADuC7020 internal flash 1x32 bits 30.8
Atmel AT91SAM7S64 Atmel AT91SAM7-EKS64 Eval board Atmel AT91SAM7S64 internal flash 1x32 bits 18.5
Atmel AT91SAM7X256 Atmel AT91SAM7X-EK Eval board Atmel AT91SAM7X256 internal flash 1x32 bits 35.3
Philips LPC2106 IAR LPC2106 Eval board Philips LPC2106 internal flash 1x32 bits 22.2
ST STR711 IAR STR711 Eval board ST STR711 internal flash 1x32 bits 50.5
Philips PCF87750 Philips PCF87750 (custom hardware) Philips PCF87750 internal flash 1x32 bits 68.2

What is multi-bank programming support?

Multi-bank programming support describes the possibility to program different flash devices, present on the same hardware, in one Flash programming session. For example, if you want to use the internal flash of your target hardware as well as the external flash for the target application code, multi-bank programming enables you to download the target application into the internal and external flash in one flash programming session. The settings for both flash banks are saved in the same J-Flash project, so you will only need one project in order to program multiple flash banks.

Support for Atmel DataFlash, NAND flash, SPI-NOR flash

Since the connection of these flashes varies from microcontroller to microcontroller, there are always some modifications which are necessary, to get DataFlash/NAND/SPI-NOR flash supported on a specific hardware.
The J-Flash software comes with sample projects which allow programming the DataFlash/NAND flash on popular eval boards. If you have a hardware-design which is based on the one of the eval board, these sample projects should also work for your custom hardware.
If your hardware design varies too much, usually a custom RAMCode is needed which programs the flash of your target hardware. RAMCodes for custom hardware can be created on request. For more information about pricing and requirements for a custom RAMCode, please contact SEGGER also provides a RAMCode template which enables customers to write a custom RAMCode on their own. The RAMCode template is available upon request.