Skip to main content
  • Products
  • Evaluate our Software
  • Downloads
  • Free Utilities
  • Purchase
  • Support
  • About Us
  • Blog
  • Forum
  • Search
    • Contact Us
    • Forum
    • Wiki
    • Web Shop
    • Newsletter
    • RSS
  •   Jobs
  •   Videos
  •   Blog
  •   Sustainability
  • J-Link Debug Probes
  • Technology
  • Accessories
  • Tools
  • Models
J-Link PRO Debug Probe with Ethernet

J-Link Unlimited Flash Breakpoints

The J-Link software comes with an additional feature, called Unlimited Flash Breakpoints. Unlimited Flash Breakpoints allow the user to set an unlimited number of breakpoints when debugging in flash memory.

  1. 1.J-Link Unlimited Flash Breakpoints
  2. 2.Can I use Unlimited Flash Breakpoints in CFI NOR flash?
  3. 3.What is special about software breakpoints in flash?
  4. 4.How does this work?
  5. 5.What performance can I expect ?
  6. 6.How is this performance achieved ?
  7. 7.Using Unlimited Flash Breakpoints with different software components
  8. 8.Licensing

J-Link Unlimited Flash Breakpoints

The J-Link software comes with an additional feature, called Unlimited Flash Breakpoints. Unlimited Flash Breakpoints allow the user to set an unlimited number of breakpoints when debugging in flash memory.
Without this feature, the number of breakpoints which can be set in flash is limited to the number of hardware breakpoints supported by the debug unit of the CPU (2 on ARM 7/9, 4-6 on Cortex-M).

J-Link's "Unlimited flash breakpoints" works in both internal and external flash, even memory mapped QSPI flashes!

J-Link has a smart strategy of using hardware breakpoints as much as possible, but once the CPU runs out of hardware breakpoints, J-Link automatically uses Flash breakpoints.1
J-Links "Unlimited flash breakpoints" actually work even in situations where hardware breakpoints can not be used, such as external memory or memory mapped QSPI flashes that are outside of the area on which hardware breakpoints can be set. On most Cortex-M3 and M4 devices, hardware breakpoints can not be used on external memory,
"J-Link's Unlimited flash breakpoints" can.

FlashBreakpoints

There are basically 2 types of breakpoints in a computer system: Hard ones and soft ones. Hardware breakpoints require a dedicate hardware unit for every breakpoint. In other words, the hardware dictates how many hardware breakpoints can be set simultaneously. ARM7 and ARM 9 cores have 2 breakpoint units (called "watchpoint units" in ARM's documentation), allowing 2 hardware breakpoints to be set. Hardware breakpoints do not require modification of the program code. Software breakpoints are different: The debugger modifies the program and replaces the breakpointed instruction with a special value. Additional software breakpoints do not require additional hardware units in the processor, since simply more instructions are replaced. This is a standard procedure that most debuggers are capable of, however, it requires the program to be located in RAM.

 

Can I use Unlimited Flash Breakpoints in CFI NOR flash?

Yes! On some CPUs it is the only way to set breakpoints in external flash memory. For example, in Cortex-M systems, the typically 6 hardware breakpoints of the Flash-Patch Unit can NOT be used to set breakpoints in external memory on most Cortex-M system, since the address range of the unit is limited. This means: If you are using a Cortex-M3 or M4 with external flash, a program in this external flash can not be debugged with the popular emulators except a J-Link with the "Unlimited Flash Breakpoint" license. In other words: When debugging a program in external flash on a Cortex-M device, a J-Link with the "Unlimited Flash Breakpoint" license such as J-Link ULTRA+ is almost a must.

What is special about software breakpoints in flash?

Unlimited Flash Breakpoints allow you to set an unlimited number of breakpoints even if your application program is not located in RAM, but in flash memory. This is a scenario which was very rare before ARM-microcontrollers hit the market. This new technology makes very powerful, yet inexpensive ARM microcontrollers available for systems, which required external RAM before. The downside of this new technology is that it is not possible to debug larger programs on these micros in RAM, since the RAM is not big enough to hold program and data (typically, these chips contain about 4 times as much flash as RAM), and therefore with standard debuggers, only 2 breakpoints can be set. The 2 breakpoint limit makes debugging very tough; a lot of times the debugger requires 2 breakpoints to simply step over a line of code. With software breakpoints in flash, this limitation is gone.

How does this work?

Basically very simple:
The J-Link software reprograms a sector of the flash to set or clear a breakpoint.

What performance can I expect ?

A RAMCode, specially designed for this purpose, sets and clears Flash Breakpoints extremely fast; on micros with fast flash the difference between breakpoints in RAM and flash is hardly noticeable.

How is this performance achieved ?

We have put a lot of effort in making Unlimited Flash Breakpoints really usable and convenient. Flash sectors are programmed only when necessary; this is usually the moment execution of the target program is started. A lot of times, more than one breakpoint is located in the same flash sector, which allows programming multiple breakpoints by programming just a single sector. The contents of program memory are cached, avoiding time consuming reading of the flash sectors. A smart combination of software and hardware breakpoints allows us to use hardware breakpoints a lot of times, especially when the debugger is source level-stepping, avoiding reprogramming flash in these situations. A built-in instruction set simulator further reduces the number of flash operations which need to be performed. This minimizes delays for the user, maximizing the life time of the flash. All resources of the ARM micro are available to the application program, no memory is lost for debugging. All of the optimizations described above can be disabled.

Using Unlimited Flash Breakpoints with different software components

Unlimited Flash Breakpoints can be used with the following J-Link software components:

  • J-Link DLL (For example if you use the J-Link DLL natively in IAR Embedded Workbench for ARM or RealView® MDK)
  • J-Link ARM RDI / RDDI
  • J-Link GDB Server


For more information about how to use Flash Breakpoints with the different software components, please refer to the corresponding manuals.

Licensing

The software is licensed on a per J-Link basis. It requires a J-Link with Flash Breakpoints. J-Link Flash Breakpoints can also be used with J-Link ARM RDI / RDDI and J-Link GDB Server. If you want to use Flash Breakpoints with J-Link ARM RDI / RDDI, you will need an additional license for this software component too.

In order to receive your free 30 days trial license, please send an e-mail including the J-Link serial number to: sales@segger.com.

More Information

Purchase

  • Pricing

Technology

  • Control Panel
  • Flash Breakpoints
  • Flash Download
  • Interface Description
  • J-Link SDK
  • J-Link DSK
  • Monitor-mode Debugging
  • Power Profiling
  • Real Time Transfer (RTT)

Tools

  • J-Run
  • Ozone - J-Link Debugger
  • J-Link Configurator
  • J-Link Remote Server
  • J-Link Commander
  • J-Mem
  • J-Link SWO Viewer
  • J-Scope
  • J-Flash
  • J-Flash SPI
  • J-Link RDI
  • RTT Viewer
  • SystemView
  • Terms of Use
  • Third Party applications

Models

  • Model Overview
  • J-Link PRO
  • J-Link ULTRA+
  • J-Link WiFi
  • J-Link PLUS
  • J-Link BASE
  • J-Link EDU Mini
  • J-Link OB

About us

  • The Company
  • Partners
  • Job Offers
  • Media
  • Contact us

Support

  • Technical Support
  • Blog
  • Forum
  • Wiki

Downloads

  • Application Notes
  • Embedded Studio
  • embOS
  • emCompress
  • emCrypt
  • emFile
  • emLib
  • emLoad
  • emModbus
  • emNet
  • emPower
  • emSecure
  • emSSH
  • emSSL
  • emUSB-Device
  • emUSB-Host
  • emVNC
  • emWin
  • Flasher
  • Free Utilities
  • IoT
  • J-Link / J-Trace
  • Linux Studio
  • SystemView
  • CE / REACH

Social Media

Headquarters

SEGGER Microcontroller GmbH

Ecolab-Allee 5
40789 Monheim am Rhein, Germany
info@segger.com
Tel.: +49-2173-99312-0
Fax: +49-2173-99312-28

Locations

USA: SEGGER Microcontroller Systems LLC

Boston area
101 Suffolk Lane
Gardner, MA 01440, USA
us-east@segger.com
Tel.: +1-978-874-0299
Fax: +1-978-874-0599

Silicon Valley
Milpitas, CA 95035, USA
us-west@segger.com
Tel.: +1-408-767-4068

China: SEGGER Microcontroller China Co., Ltd.

Room 218, Block A, Dahongqiaoguoji
No. 133 Xiulian Road
Minhang District, Shanghai 201199, China
china@segger.com
Tel.: +86-133-619-907-60

ISO 9001 certified

ISO 9001

30+ years of experience

First-class embedded software tools since 1992
  • Imprint
  • Disclaimer
  • Privacy Policy

© 2023 SEGGER - All rights reserved.