Segger Logo Embedded Software Solutions
Software productsHardware productsDownloadsPricesCustomersOur PartnersSitemapForumAbout us
J-Link ARM RDI Flash breakpoints
| J-Link software overview | J-Link General Information | Performance comparison | USB driver installation | J-Mem | J-Link DLL | Flash programming overview | J-Flash ARM | Flash SDK | Using J-Link with IAR "C"-Spy | ARM-RDI | ARM-RDI-Flash BPs | JTAG Isolator | J-Link Adapters | Troubleshooting | J-Link FAQs | J-Link Pricing | GDB Server |

The J-Link RDI software contains an add. feature, called Flash break points (short FlashBPs). This feature requires an add. license. It adds the ability to set an unlimited number of software breakpoints in flash memory areas, rather than just the 2 hardware breakpoints.

How do breakpoints work?

There are basically 2 types of breakpoints in a computer system: Hard ones and soft ones. Hard BPs require a dedicate hardware unit for every hardware 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. Add. soft BPs do not require add. 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.

What is special about software breakpoints in flash ?

It allows 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 RDI-software reprograms a sector of the flash to set or clear a breakpoint.

What performance can I expect ?

A RAM code, 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 FlashBPs 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 of the 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.

The feature is available for the following chips at this time:

Manufacturer Name BusWidth Size
Analog Devices ADuC7020x62 16 62 KB
Analog Devices ADuC7021x32 16 32 KB
Analog Devices ADuC7021x62 16 62 KB
Analog Devices ADuC7022x32 16 32 KB
Analog Devices ADuC7022x62 16 62 KB
Analog Devices ADuC7024x62 16 62 KB
Analog Devices ADuC7025x32 16 32 KB
Analog Devices ADuC7025x62 16 62 KB
Analog Devices ADuC7026x62 16 62 KB
Analog Devices ADuC7027x62 16 62 KB
Analog Devices ADuC7028x62 16 62 KB
Analog Devices ADuC7030 16 30 KB
Analog Devices ADuC7031 16 30 KB
Analog Devices ADuC7032 16 94 KB
Analog Devices ADuC7033 16 94 KB
Analog Devices ADuC7060 16 30 KB
Analog Devices ADuC7128 16 126 KB
Analog Devices ADuC7129 16 126 KB
Analog Devices ADuC7229x126 16 126 KB
Atmel AT91SAM7A3 32 256 KB
Atmel AT91SAM7S32 32 32 KB
Atmel AT91SAM7S321 32 32 KB
Atmel AT91SAM7S64 32 64 KB
Atmel AT91SAM7S128 32 128 KB
Atmel AT91SAM7S256 32 256 KB
Atmel AT91SAM7S512 32 512 KB
Atmel AT91SAM7SE32 32 32 KB
Atmel AT91SAM7SE256 32 256 KB
Atmel AT91SAM7SE512 32 512 KB
Atmel AT91SAM7X128 32 128 KB
Atmel AT91SAM7X256 32 256 KB
Atmel AT91SAM7X512 32 512 KB
Atmel AT91SAM7XC128 32 128 KB
Atmel AT91SAM7XC256 32 256 KB
Atmel AT91SAM7XC512 32 512 KB
NXP LPC2101 32 8 KB
NXP LPC2102 32 16 KB
NXP LPC2103 32 32 KB
NXP LPC2104 32 120 KB
NXP LPC2105 32 120 KB
NXP LPC2106 32 120 KB
NXP LPC2109 32 64 KB
NXP LPC2114 32 120 KB
NXP LPC2119 32 120 KB
NXP LPC2124 32 120 KB
NXP LPC2129 32 248 KB
NXP LPC2131 32 32 KB
NXP LPC2132 32 64 KB
NXP LPC2134 32 128 KB
NXP LPC2136 32 256 KB
NXP LPC2138 32 500 KB
NXP LPC2141 32 32 KB
NXP LPC2142 32 64 KB
NXP LPC2144 32 128 KB
NXP LPC2146 32 256 KB
NXP LPC2148 32 500 KB
NXP LPC2194 32 248 KB
NXP LPC2212 32 248 KB
NXP LPC2214 32 248 KB
NXP LPC2292 32 248 KB
NXP LPC2294 32 248 KB
NXP LPC2364 32 128 KB
NXP LPC2366 32 256 KB
NXP LPC2368 32 500 KB
NXP LPC2378 32 500 KB
NXP LPC2468 32 500 KB
NXP LPC2478 32 500 KB
OKI ML67Q4002 32 256 KB
OKI ML67Q4003 32 512 KB
OKI ML67Q4050 32 64 KB
OKI ML67Q4051 32 128 KB
OKI ML67Q4060 32 64 KB
OKI ML67Q4061 32 128 KB
ST STR710FZ1 32 144 KB
ST STR710FZ2 32 272 KB
ST STR711FR0 32 80 KB
ST STR711FR1 32 144 KB
ST STR711FR2 32 272 KB
ST STR712FR0 32 80 KB
ST STR712FR1 32 144 KB
ST STR712FR2 32 272 KB
ST STR715FR0 32 80 KB
ST STR730FZ1 32 128 KB
ST STR730FZ2 32 256 KB
ST STR731FV0 32 64 KB
ST STR731FV1 32 128 KB
ST STR731FV2 32 256 KB
ST STR735FZ1 32 128 KB
ST STR735FZ2 32 256 KB
ST STR736FV0 32 64 KB
ST STR736FV1 32 128 KB
ST STR736FV2 32 256 KB
ST STR750FV0 32 80 KB
ST STR750FV1 32 144 KB
ST STR750FV2 32 272 KB
ST STR751FR0 32 80 KB
ST STR751FR1 32 144 KB
ST STR751FR2 32 272 KB
ST STR752FR0 32 80 KB
ST STR752FR1 32 144 KB
ST STR752FR2 32 272 KB
ST STR755FR0 32 80 KB
ST STR755FR1 32 144 KB
ST STR755FR2 32 272 KB
ST STR755FV0 32 80 KB
ST STR755FV1 32 144 KB
ST STR755FV2 32 272 KB
ST STR911FAM46 16 1152 KB
ST STR911FAM47 16 2176 KB
ST STR911FAW46 16 1152 KB
ST STR911FAW47 16 2176 KB
ST STR911FM32 16 288 KB
ST STR911FM44 16 544 KB
ST STR911FW32 16 288 KB
ST STR911FW44 16 544 KB
ST STR912FAW46 16 1152 KB
ST STR912FAW47 16 2176 KB
ST STR912FAZ46 16 1152 KB
ST STR912FAZ47 16 2176 KB
ST STR912FM32 16 288 KB
ST STR912FM44 16 544 KB
ST STR912FW32 16 288 KB
ST STR912FW44 16 544 KB
TI TMS470R1A64 32 63 KB
TI TMS470R1A128 32 127 KB
TI TMS470R1A256 32 255 KB
TI TMS470R1A288 32 287 KB
TI TMS470R1A384 32 383 KB
TI TMS470R1B512 32 511 KB
TI TMS470R1B768 32 767 KB
TI TMS470R1B1M 32 1023 KB
TI TMS470R1VF288 32 287 KB
TI TMS470R1VF688 32 255 KB
TI TMS470R1VF689 32 383 KB

More chips will be supported in the future.

Licensing

The software is licensed on a per J-Link basis. It requires a J-Link with RDI feature.
The following items are required to use software:

  • J-Link
  • RDI license
  • Flash breakpoints license

In order to receive your free 30 days trial license, follow the steps on how to obtain and installing the license key.

Setting up flash breakpoints

Step 1
Download the RDI software.
Step 2
Unzip the files to a folder on your hard drive e.g. c:\Segger\JLinkRDI.
Important:
The IAR program folder (normally C:\Program Files\IAR Systems\Embedded Workbench 4.0\arm\bin) contains a version of JLinkARM.dll. Please overwrite this older version with the new version in the zip file.
Step 3
Start the IAR Embedded Workbench.
Step 4
Open the sample workspace for your CPU.
Step 5
Choose Project|Options from the Menu and the Options dialog box pops up. Browse to the JLinkRDI.dll and click OK.
Step 6
Choose RDI|Configure from the Menu and the RDI configuration dialog box appears on your screen.
Click on the "Flash" tab.
Step 7
Select your your processor and flash address.
Click on the "Breakpoints" tab.
Step 8
Configure the use of breakpoints as prefered.
Click the OK button to close the RDI configuration dialog.
Step 9
Start the debugger.

Software download

Copyright SEGGER Microcontroller GmbH & Co.KG. All rights reserved.
For more information, please visit our web site www.segger.com or contact us at info@segger.com
Last update: March 12, 2008