05022024

Last update2016/05/28 14:38

Back 現在地: Home パートナー segger-tools

J-Link Pro Adapters

J-Link Adapters

 

The following adapters are available for J-Link:

 


J-Link JTAG Isolator

The J-Link JTAG Isolator can be connected between J-Link and any ARM-board that uses the standard 20-pin JTAG-ARM connector to provide electrical isolation. This is essential when the development tools are not connected to the same ground as the application. It is also useful to protect the development tools from electrical spikes that often occur in some applications, such as motor control applications. Another typical field of application is development of products with sensors or other analog circuitry, in which case the target hardware is protected from electrical noise originating from the development PC.
This product is compatible with J-Link, J-Link Pro and Flasher ARM.

 

More info...
Pricing

 


J-Link RX Adapter

The J-Link RX Adapter allows JTAG connections between J-Link and target hardware which comes with the Renesas RX600 series MCUs.
The J-Link RX adapter is able to optionally power the connected target hardware.
3.3V or 5V supply voltage can be selected using a Jumper. The target is supplied via the VTref connection when the supply option is jumpered.

 

More info...
Pricing


J-Link 19-pin Cortex-M Adapter

The J-Link 9-pin Cortex-M Adapter allows JTAG, SWD and SWO connections between J-Link and Cortex-M based target hardware systems. It adapts from the 20-pin  0.1'' JTAG connector to a 19-pin 0.05'' Samtec FTSH connector as defined by ARM.

The J-Link 19-pin Cortex-M Adapter may also be used to connect J-Link to a non Cortex-M target as far as the target connector uses the same pinout as shown below.

By default, TRST is not connected, but the Cortex-M Adapter comes with a solder bridge (NR1) which allows TRST to be connected to pin 9 of the Cortex-M adapter.

Pricing


J-Link 9-pin Cortex-M Adapter

The J-Link 9-pin Cortex-M Adapter allows JTAG, SWD and SWO connections between J-Link and Cortex-M based target hardware systems. It adapts from the 20-pin 0.1'' JTAG connector to a 9-pin 0.05'' Samtec FTSH connector as defined by ARM.

The J-Link 9-pin Cortex-M Adapter may also be used to connect J-Link to a non Cortex-M target as far as the target connector uses the same pinout as shown below.

By default, TRST is not connected, but the Cortex-M Adapter comes with a solder bridge (NR1) which allows TRST to be connected to pin 9 of the Cortex-M adapter.

 

Pricing

 


J-Link ARM 14-pin Adapter

This adapter allows to use J-Link with ARM7/9/11 targets using this 14-pin 0.1" mating JTAG connector defined by ARM.
The 14-pin connector, though defined by ARM as an alternative to the 20-pin connector is not widely used on modern eval boards.




Pricing


J-Link PPC 14-pin Adapter

The J-Link PPC 14 pin Adapter allows JTAG connections between J-Link and target hardware which use an MCU with Power Architecture or PowerPC. It adapts from the 20-pin 0.1'' to a 14-pin 0.1'' JTAG connector.

Note: J-Link support for PowerPC is not yet available.
Subscribe to J-Link software notification in order to be informed as soon as PowerPC support is available


J-Link TI 14-pin Adapter

The J-Link TI 14 pin Adapter allows JTAG connections between J-Link and target hardware which use a TI MCU and provides a 14-pin connector (e.g. the BeagleBoard with an OMAP3530 on it), defined by TI. It adapts from the 20-pin 0.1'' to a 14-pin 0.1'' JTAG connector.


J-Link 5V JTAG Adapter

The 5V JTAG adapter extends the output voltage range of J-Link  to 5V. Most targets have JTAG signals at voltage levels between 1.2V and 3.3V. These targets can be used with J-Link ARM without a 5V adapter. Higher voltages are common primarily in the automotive sector.
Note: Current J-Links are 5V tolerant, but output levels are limited to about 4V (See J-Link specifications for more details).
These output levels are sufficient for most 5V targets, meaning that current J-Links can be used with most 5V targets without adapter. The adapter is only required for 5V targets that require (input) signals above 3.3V.

Technical data:

  • 20 pin connector, female (plugs into J-Link)
  • 20 pin connector male, for target ribbon cable
  • LED shows power status
  • Adapter is powered by target
  • Power consumption < 20 mA
  • Target supply voltage: 3.3V - 5V
  • Max. JTAG-frequency: 12 MHz


Compatibility note

The J-Link ARM 5V JTAG adapter is compatible to J-Link ARM revisions 5 or newer.

Usage

The 5V JTAG adapter should be plugged directly into J-Link ARM with the 20 pin female connector. The target ribbon cable is then attached to the 20 pin male connector of the adapter. The picture below shows a J-Link ARM with a connected 5 volt adapter.

Pricing

 

J-Link PRO Download

J-Link downloads

 

Installing the software will automatically install the J-Link USB drivers. It also offers to update applications which use the J-Link DLL.
Multiple versions of the J-Link software can be installed on the same PC without problems; they will co-exist in different directories.

J-Link software & documentation pack can also be used with J-Link KS, SAM-ICE, mIDASLink, DIGI JTAG Link and any other licensed J-Link compatible emulator.

Software and documentation pack V4.24f [9767 kb]

J-Link software & documentation pack includes:

  • J-Link Commander (Simple command line utility, primarily for diagnostics and trouble shooting)
  • J-Flash, including sample projects for most popular eval boards
  • GDB Server (extra license required) - Support for GDB and other debuggers using the same protocol. Fully usable in eval mode without time or code size limit.
  • J-Mem - Simple memory viewer
  • J-Link RDI (extra license required) - Support for ARM RDI standard. Makes J-Link compatible with RDI compliant debuggers
  • J-Link DLL Updater - Allows to update 3rd party applications which use the J-Link DLL
  • J-Link TCP/IP Server - Free utility which provides the possibility to use J-Link / J-Trace remotely via TCP/IP.
  • JLinkARM.dll, used by most applications to access J-Link
  • JLinkARM.dll comes with flash breakpoint capabilities (extra license required)
  • Free flash programming utilities - Simple command line utilities which allow programming a bin file into the internal/external flash memory of popular eval boards
  • Processor specific utilities - Small command line utilities which allow some processor specific operations (unsecure of internal flash memory, boot bank switching, ...)
  • Manuals: UM08001 (J-Link User Guide), UM08003 (J-Flash User Guide), UM08004 (RDI User Guide), UM08005 (GDB Server User Guide), UM08007 (Flasher ARM User Guide)
  • Release notes for J-Link DLL, J-Flash, J-Link RDI DLL
  • Sample code for DCC communication
  • USB driver


Latest J-Link DLL release notes
Latest J-Flash release notes
Latest J-Link RDI DLL release notes

Beta software

We frequently publish new Beta versions. The Beta versions follow our current development version very closely and contain the latest features and improvements.
However, the Beta versions are not thoroughly tested, but it is usually safe to assume that the Beta version can be used without risk.

Beta software version
Beta software version for Linux

Previous software versions

Manuals

Manual Version Size
Flasher ARM manual (UM08007) Rev. 18 478 KB
J-Flash manual (UM08003) 4.10 Rev. 3 439.24 KB
J-Link manual (UM08001) 4.20 Rev.0 2105 KB
J-Link GDB Server manual (UM08005) 4.08 Rev. 0 508.33 KB
J-Link RDI manual (UM08004) 4.08 Rev. 0 796.85 KB
J-Link USB Protocol manual (RM08001) Rev. 6 337.48 KB

Terms of use

The software consists of proprietary programs of SEGGER, protected under copyright and trade secret laws.
All rights, title and interest in the software are and shall remain with SEGGER.

SEGGER J-Link software may only be used with original SEGGER products and authorized OEM products.
The use of the licensed software to operate SEGGER product clones is prohibited and illegal.

More information...

 

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

 

J-LINK PRO Flash Download

Flash Download

J-Link Flash Download

 

J-Link comes with a set of highly speed-optimized built-in flashloaders which allow fast download of applications, directly into the flash memory of your target system. This flash memory can be internal, on-chip flash memory or external CFI-compliant NOR flash memory.

And the best of all: This feature is free of charge.

What makes J-Link's built-in flash programming so much faster ?

The flashloaders which come with the J-Link software (JLinkARM.dll) are a set of so-called "RAMCodes" which are small programs that include the logic for erasing and programming the flash memory. These RAMCodes are downloaded into and are executed in the RAM of the target system.

But the flash-algorithm itself is not the only thing which makes the J-Link flashloaders so extremely fast. In addition to this, only the flash-sectors which are needed to be programmed are programmed by J-Link.

What does this mean?: By default, the J-Link DLL is configured to check if the same application which is intended to download, is already present in the flash of the target memory. If this is the case, the flash download it skipped which saves a lot of time. The process of checking if the target application is already in flash is also a highly speed-optimized process since this check is performed by a CRC comparison.

Moreover, if you are debugging, usually your target application continuously changes and the debug session is terminated and re-started multiple times. J-Link is also able to detect only small changes in your target application which means that only the parts which have been changed are re-downloaded if the debug session is re-started.

To get a better idea of what difference the above mentioned logic makes, in the following you will find a speed comparison test which has been performed with the J-Link flash download.

For the speed comparison test, a standard IAR EAWRM sample project and the maximum supported JTAG frequency (usually 12 MHz) has been used. All time values have been taken from the point where downloading starts until the debugger is ready to start debugging (application arrived at main()).

 

Emulator Settings Download-Time
Toshiba TMPM330FDFG, 512 KB application size
J-Link V8 J-Link commander1 5 sec. (102 KB/s)
J-Link Ultra J-Link commander1 4.2 sec. (122 KB/s)
J-Link V8 IAR EWARM flashloader 10.6 sec. (48 KB/s)
J-Link V8 SEGGER flashloader,
flash content completely different from application
9.5 sec. (54 KB/s)
J-Link V8 SEGGER flashloader,
flash content almost identical to application
(only the value of a constant variable has been changed)
7.8 sec. (66 KB/s)
J-Link V8 SEGGER flashloader,
flash content identical to application
2.8 sec. (183 KB/s)
Freescale MK40X256VMD100 (Cortex-M4 Kinetis), 256 KB application size
J-Link V8 J-Link commander2 8.3 sec. (31 KB/s)
J-Link Ultra J-Link commander2 7.5 sec. (34 KB/s)
J-Link V8 IAR EWARM flashloader 16.7 sec. (15.3 KB/s)
J-Link V8 SEGGER flashloader,
flash content completely different from application
16.4 sec. (15.6 KB/s)
J-Link V8 SEGGER flashloader,
flash content almost identical to application
(only the value of a constant variable has been changed)
3.9 sec. (65.6 KB/s)
J-Link V8 SEGGER flashloader,
flash content identical to application
2.8 sec. (91 KB/s)
ST STM32F103ZE, 512 KB application size
J-Link V8 J-Link commander3 25.8 sec. (20 KB/s)
J-Link Ultra J-Link commander3 25.8 sec. (20 KB/s)
ST-Link IAR EWARM flashloader 45 sec. (11.4 KB/s)
J-Link V8 IAR EWARM flashloader 28 sec. (18.3 KB/s)
J-Link V8 SEGGER flashloader,
flash content completely different from application
26 sec. (20 KB/s)
J-Link V8 SEGGER flashloader,
flash content almost identical to application
(only the value of a constant variable has been changed)
9.7 sec. (53 KB/s)
J-Link V8 SEGGER flashloader,
flash content identical to application
5.5 sec. (93 KB/s)

1J-Link commander has been used as follows:
speed 20000
exec device = TMPM330FDFG
loadbin C:\TMPM330.bin,0

2J-Link commander has been used as follows:
speed 20000
exec device = MK40X256VMD100
loadbin C:\MK40.bin,0

3J-Link commander has been used as follows:
speed 20000
exec device = STM32F103ZE
loadbin C:\STM32.bin,0x08000000

Why do the speeds differ between different devices with the same CPU core?

Download speed into RAM is identical for all devices, but flash programming speed depends heavily on the flash technolgy and flash controller used. On most devices, J-Link speed is so high that the limiting factor is the time that it takes to erase the flash memory and to copy the data from RAM to flash.

Does the data above include the time it takes to erase the flash?

Yes, in all cases in which the flash is programmed the required sectors are also erased. This time is included.

Debuggers with support for J-Link flash download:

Currently, the flash download feature of J-Link is supported by the following debuggers/workbenches:

  • IAR Embedded Workbench for ARM (IAR EWARM)
  • Keil RealView MDK
  • Yagarto GNU ARM Toolchain (free) + J-Link GDB Server
  • GNU Debugger (GDB) + J-Link GDB Server
  • RDI + any RDI compliant debugger

But in general, the flash download feature can be used with every workbench which supports J-Link, since even if it is not possible to select your target device in the debugger, you can always select it in the J-Link control panel, which is opened when a debug session starts.

Download into flash memory for production purposes

  • Flasher ARM - Stand-alone flash programming solution. Flasher ARM is a programming tool for ARM/Cortex devices with internal or external flash memory. Flasher ARM is designed for programming flash targets with the J-Flash software or stand-alone. Flasher ARM can also operate as a normal J-Link.
  • J-Flash - Complete flash programming solution. J-Flash is a Windows application, which can program internal and external flash on ARM/Cortex devices. J-Flash can be used as a GUI-based application or in batch mode.
  • J-Link Flash SDK - An enhanced version of the J-Link SDK, which comes with an DLL with API functions for flash programming (erase, program verify). Ideally for customers which are planning to built their own application for production process.

Enabling J-Link built-in flashloaders in different debuggers

Usually, in order to enable the J-Link built-in flashloaders you only need to disable the debugger's flashloader. Since the built-in flashloaders of J-Link make flash behave as RAM , when the debugger writes to the target memory, the J-Link DLL automatically detects if the memory range which is written in flash memory or not. If the affected memory area is in flash memory, the J-Link flashloader will become active and performs the programming of the flash memory automatically in a very short time. Please note that the correct device has to be selected in the debugger in order to tell J-Link which device is intended to be programmed.

The following screenshot illustrates how to disable the IAR EWARM flashloader, in order to use the J-Link built-in flashloader.

 

J-LINK PRO RDI

J-Link ARM RDI

 

Support for RDI compatible ARM debuggers

The JLink-RDI software is an RDI interface for J-Link. It makes it possible to use J-Link with any RDI compliant debugger. The package consists of 2 DLLs, which need to be copied to the same folder. In order to use these DLLs, they need to be selected in the debugger. It is a separate item and not included in the J-Link software. For more information on the pricing please check out our Pricelist.

Software download

Supported ARM Debuggers

J-Link RDI can be used with any RDI-compliant debuggers. In the following all RDI compliant debuggers which have been tested with J-Link RDI are listed.

  • ARM® Developer Suite (ADS)
  • ARM® RealView® Development Suite (RVDS) V3.0 (Since RVDS 3.1 removed RDI support, J-Link RDI will not work with RVDS 3.1)
  • IAR Embedded Workbench for ARM (EWARM)
  • RealView® Microcontroller Development Kit (Keil MDK)

For more information about how to use RDI with debuggers listed above, please refer to the J-Link RDI User's Guide (UM08004).

Flash breakpoints

The RDI DLL allows setting software breakpoints in flash memory areas, in the following called flash breakpoints. This makes it possible to set an unlimited number of flash breakpoints, rather than just the 2 hardware breakpoints permitted by the ICE. Setting flash breakpoints is executed very fast using a RAMcode specially designed for this purpose; on chips with fast flash the difference between breakpoints in RAM and Flash is unnoticeable.

More information about flash breakpoints

Configuration

RDI allows various configuartion settings, such as:

  • Target system initialization via setup file
  • JTAG Speed and scan chain settings
  • Enable / disable Flash programming
  • Breakpoint settings (use software breakpoints, use flash breakpoints
  • CPU specific settings (Endianess, Reset strategy)
  • Enable / Disable Logfiles

Commands in the setup file

Command Description
SetJTAGSpeed(x); Sets the JTAG speed, x = speed in kHz (0=Auto)
Delay(x); Waits a given time,
x = delay in milliseconds
Reset(x); Resets the target,
x = delay in milliseconds
Go(); Starts the ARM core
Halt(); Halts the ARM core
Read8(Addr); Reads a 8/16/32 bit value,
Addr = address to read (as hex value)
Read16(Addr);
Read32(Addr);
Verify8(Addr, Data); Verifies a 8/16/32 bit value,
Addr = address to verify (as hex value)
Data = data to verify (as hex value)
Verify16(Addr, Data);
Verify32(Addr, Data);
Write8(Addr, Data); Writes a 8/16/32 bit value,
Addr = address to write (as hex value)
Data = data to write (as hex value)
Write16(Addr, Data);
Write32(Addr, Data);
WriteVerify8(Addr, Data); Writes and verifies a 8/16/32 bit value,
Addr = address to write (as hex value)
Data = data to write (as hex value)
WriteVerify16(Addr, Data);
WriteVerify32(Addr, Data);
WriteRegister(Reg, Data); Writes a register
WriteJTAG_IR(Cmd); Writes the JTAG instruction register
WriteJTAG_DR(nBits, Data); Writes the JTAG data register

Example of setup file

/*********************************************************************
*
*    Setup file for J-LINK RDI
*
**********************************************************************
* File:    LPC2294.setup
* Purpose: Setup for Philips LPC2294 chip
**********************************************************************
*/
SetJTAGSpeed(1000);
Reset(0);
Write32(0xE01FC040, 0x00000001); // Map User Flash into Vector area at (0-3f)
Write32(0xFFE00000, 0x20003CE3); // Setup CS0
Write32(0xE002C014, 0x0E6001E4); // Setup  PINSEL2 Register
SetJTAGSpeed(2000);