J-LINK PRO Flash Breakpoints
J-Link Flash Breakpoints
List of supported microcontrollers
How do breakpoints work?
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.
Using Flash Breakpoints
What is special about software breakpoints in flash?
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 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 then 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.
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 and J-Link GDB Server. If you want to use Flash Breakpoints with J-Link ARM RDI or J-Link GDB Server, you will need an additional license for these software components.
In order to receive your free 30 days trial license, please send an e-mail including the J-Link serial number to: このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 .
Using Flash Breakpoints with different software components
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
- J-Link GDB Server
For more information about how to use Flash Breakpoints with the different software components, please refer to the corresponding manuals.
Article about Flash Breakpoints in ARM's "I.Q." magazine