|
The J-Link software contains an additional feature,
called flash breakpoints (FlashBP). 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 addi- tional license from SEGGER.
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 addi-
tional 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?
FlashBP 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 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.
Using FlashBP
Licensing
The software is licensed on a per J-Link basis.
It requires a J-Link with FlashBP feature. If you want to use FlashBP
with J-Link GDB Server or J-Link RDI 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 sales@segger.com.
Using FlashBP with different software components
The FlashBP feature can be used with the following J-Link software components:
For more information about how to use FlashBP with the different software components, please refer to the corresponding manuals.

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:
November 14, 2008
|