05172024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools J-LINK PRO Flash Breakpoints

J-LINK PRO Flash Breakpoints

Flash Breakpoints

J-Link Flash Breakpoints

 

The J-Link software contains an additional feature, called Flash Breakpoints. Flash Breakpoints allow the user to set an unlimited number of software breakpoints when debugging in flash memory, rather than just the 2 hardware breakpoints.

Setting the breakpoints in flash is executed very fast using a RAM code specifically designed for this purpose; on chips with fast flash, the difference between breakpoints in RAM and flash is unnoticeable. This feature requires an additional license from SEGGER.

Embedded Software
Click to watch demonstration video

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:

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