J-Link Ultra Model comparison
Model comparison
The following tables show the features which are included in each J-Link / J-Trace model.
Hardware features
Software features are features implemented in the software primarily on the host. Software features can either come with the J-Link or be added later using a license string from Segger.
Hardware features | ||||||
---|---|---|---|---|---|---|
J-Link | J-Link Pro | J-Link Ultra | J-Trace for Cortex-M3 | J-Trace | ||
USB | ||||||
Supported cores | ARM7 | (no tracing) |
||||
ARM9 | (no tracing) |
|||||
ARM11 |
|
|
||||
Cortex-A5 | (no tracing) |
(no tracing) |
||||
Cortex-A8 | (no tracing) |
(no tracing) |
||||
Cortex-M0 | (no tracing) |
|||||
Cortex-M1 | (no tracing) |
|||||
Cortex-M3 | (no tracing) |
|||||
Cortex-M4 | (no tracing) |
|||||
Cortex-R4 | (no tracing) |
(no tracing) |
||||
(no tracing) |
(no tracing) |
|||||
JTAG | ||||||
SWD | ||||||
SWO | ||||||
ETM Trace | ||||||
Software features | ||||||
J-Flash | (optional) |
(optional) |
(optional) |
(optional) |
||
Flash Breakpoints2 | (optional) |
(optional) |
(optional) |
(optional) |
||
Flash Download1 | ||||||
GDB Server | (optional) |
(optional) |
(optional) |
(optional) |
||
RDI | (optional) |
(optional) |
(optional) |
(optional) |
1 Most IDEs come with their own flashloaders, so in most cases this feature is not essential for debugging your applications in flash. The J-Link flash download (FlashDL) feature is mainly used in debug environments where the debugger does not come with an own flashloader (e.g. the GNU Debugger). For more information about flash breakpoints, please refer to Flash Download.
2 The flash breakpoint feature allows setting an unlimited number of breakpoints even if the application program is not located in RAM, but in flash memory. Without this feature, the number of breakpoints which can be set in flash is limited to the number of hardware breakpoints (typically two for ARM 7/9, six for Cortex-M3). For more information about flash breakpoints, please refer to Flash Breakpoints.
J-Link Ultra Flash programming utilities
Flash programming utilities
The SEGGER J-Link comes with dedicated flash programming utilities (DFPU) for a number of popular eval boards. These utilities are designed to program a .bin file into the flash memory of the target hardware, with J-Link. Each dedicated flash programming utility works only with the Eval board it was designed for.
Using the dedicated flash programming utilities which come with J-Link, is permitted for development purposes only. As long as the dedicated flash programming tools are used for development purposes only, no additional license is required. If you want to use the dedicated flash programming utilities for commercial and production purposes, you need to obtain a license from SEGGER. SEGGER also offers to create dedicated flash programming utilities for custom hardware. When starting a dedicated flash programming utility, a message box appears which tells the user about the purpose of the dedicated flash programming utility:
Supported Eval boards
The list below shows the Eval boards for which dedicated flash programming utilities have been already developed. Simple flash programming utilities for other, popular Eval boards are on the schedule.
Eval board manufacturer | Eval board name | Flash memory | Prices for source code |
---|---|---|---|
Cogent | CSB737 | Typically 65 MB external NOR flash | Product 8.20.01 |
ST Microelectronics | MB525 | Typically 128 KB internal NOR flash | Product 8.20.03 |
Toshiba | TOPAS910 | Typically 32 MB external NOR flash | Product 8.20.02 |
Supported flash memories
The dedicated flash programming utilities for J-Link can be created for the following flash memories:
- Internal flash
- External NOR flash
- NAND flash
- Data flash
- SPI flash
In order to use external NOR flash, a CFI compliant flash memory has to be used because the flash programming utilities use the CFI information to detect the flash size and sectorization.
How to use the dedicated flash programming utilities
The dedicated flash programming utilities are very simple to use. Every tool expects a path to a data file (*.bin) passed as a command line parameter, on startup. If no path is passed the flash programming utility searches for a data in the Samples directory. This .bin file has to be named as shown in the table above. For example, for the Cogent CSB737 Eval board this file is named: CogentCSB737.bin.
Using the dedicated flash programming utilities for production and commercial purposes
If you want to use dedicated flash programming utilities for production and commercial purposes you need to obtain a license from SEGGER. In order to obtain a license for a dedicated flash programming utility, there are two options:
- Purchasing the source code of an existing dedicated flash programming utility
- Purchasing the source code of a dedicated flash programming utility for custom hardware
The source code can be compiled using a Microsoft Visual C++ V6 or newer compiler. It contains code which is executed on the target device (RAMCODE). This RAMCODE may not be used with debug probes other than J-Link.
Purchasing the source code of an existing dedicated flash programming utility
Purchasing the source code of an existing dedicated flash programming utility (described above) allows you to use the dedicated flash programming utility for production and commercial purposes. Making the resulting executable publicily available is not permitted.
For more information about the pricing for the source code of existing dedicated flash programming utilities, please refer to the pricelist.
Purchasing the source code of a dedicated flash programming utility for custom hardware
SEGGER also offers to design dedicated flash programming utilities for custom hardware for which you will also need to obtain a license. The resulting executable may be used for organization internal purposes only.
F.A.Q.
Q: Can the dedicated flash programming utilities be used for commercial purposes?
A: Yes, you can buy the source code of one or more of the flash programming utilities
which makes it possible to use them for commercial and production purposes.
Q: I want to use the dedicated flash programming utilities with my own hardware. Is that possible?
A: The free dedicated flash programming utilities which come with J-Link do not support custom hardware.
In order to use your own hardware with a dedicated flash programming utility, SEGGER offers to create
dedicated flash programming utilities for custom hardware
Q: Do I need a license to use the dedicated flash programming utilities?
A: As long as you use the dedicated flash programming utilities, which come with J-Link, for development purposes only, you do not need an additional license.
In order to use them for commercial and/or production purposes you need to obtain a license from SEGGER.
Q: Which file types are supported by the dedicated flash programming utilities?
A: Currently, the dedicated flash programming utilities support *.bin files.
Q: Can I use the dedicated flash programming utilities with other debug probes than J-Link?
A: No, the dedicated flash programming utilities only work with J-Link
J-Link Ultra Flash SDK
J-Link Flash SDK
An enhanced version of the J-Link SDK, which contains additional API functions for Flash programming. The add. API functions (Prefixed JLINKARM_FLASH_) allow erasing and programming the flash memory. This DLL comes with a sample executable, as well as with source code of this executable and a project file. It can be an interesting option if you want to write your own programs for production purposes. This DLL also requires an extra license from SEGGER; please contact このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 .com for more information.
Additional API functions included in the Flash SDK
The following table lists the additional Flash SDK API routines:
Flash functions | |
---|---|
Routine | Explanation |
JLINKARM_FLASH_AddBank() | Adds a flash bank. |
JLINKARM_FLASH_DelBank() | Deletes a flash bank. |
JLINKARM_FLASH_SetBankPara() | Sets a bank parameter. |
JLINKARM_FLASH_SetClockSpeed() | Sets the CPU clock speed. |
JLINKARM_FLASH_EraseRequired() | Erases all required sectors to program data file. |
JLINKARM_FLASH_Program() | Programs data file into flash memory. |
JLINKARM_FLASH_Verify() | Compares data file with memory content. |
JLINKARM_FLASH_OpenDataFile() | JLINKARM_FLASH_OpenDataFile() Opens a data file. |
JLINKARM_FLASH_CloseDataFile() | Closes a data file. |
JLINKARM_FLASH_GetNumLoadedBytes() | JLINKARM_FLASH_GetNumLoadedBytes() Returns number of bytes in data file. |
J-Link Ultra GDB Server
GDB Server
The J-Link GDB Server is a remote server for the GDB which allows to use J-Link with GDB or any toolchain which uses GDB as debugging interface, such as Yagarto and Sourcery G++). The GDB and GDB Server communicate via a TCP/IP connection, using the standard GDB remote serial protocol. The GDB supports a standard set of commands like open elf/bin files, reading/writing memory, etc. Beside this, the GDB also supports so called monitor commands which are passed to the GDB Server and interpreted by it, allowing it to implement J-Link specific commands like reading/writing CP15 registers, enabling flash download via J-Link, using flash breakpoints, enabling semihosting, etc.
GNU Project Debugger (GDB) overview
The GNU Project Debugger (GDB) is a freely available debugger, distributed under the terms of the GNU Public license (GPL). It connects to an emulator via a TCP/IP connection. It can connect to every emulator for which a GDB server software is available. The latest Unix version of the GDB is freely available from the GNU commitee under: http://www.gnu.org/software/gdb/download/
GDB Server licensing
J-Link GDB Server is distributed as "free for evaluation and non commercial use". The software can be used free of charge for educational and non-profit purposes without an additional license. To use the software for other, especially commercial purposes, a license is required. To obtain an trial or unlimited license, please このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 with us. Full and valid license terms are specified in file License.txt which comes with the J-Link software and documentation package.
Note: J-Link OEM versions ATMEL SAM-ICE and Digi JTAG Link come with a built-in license for J-Link GDB Server.
Supported cores
Currently the J-Link GDB Server can be used with the following CPU cores:
- ARM7TDMI (Rev 1)
- ARM7TDMI (Rev 3)
- ARM7TDMI-S (Rev 4)
- ARM720T
- ARM920T
- ARM922T
- ARM926EJ-S
- ARM946E-S
- ARM966E-S
- ARM1136JF-S
- ARM1136J-S
- ARM1156T2-S
- ARM1156T2F-S
- ARM1176JZ-S
- ARM1176JZF
- ARM1176JZF-S
- Cortex-M0
- Cortex-M1
- Cortex-M3
Requirements
To use the J-Link GDB Server, you have to meet the following requirements:
- J-Link / J-Trace ARM / J-Trace for Cortex-M3
- PC running Microsoft Windows 2000 / 2003 / XP / Vista / Windows 7
- Target hardware with ARM / Cortex core
User interface
The J-Link GDB Server's user interface shows information about the debugging process and allows the user to configure some settings like target endianess, if memory reads should be cached in order to improve performance or if a logfile shall be generated.
Setting up the J-Link GDB Server
Typically, most of the GDB and target setup is done from GDB via remote commands (monitor) in the .gdbinit file. The commands used in the .gdbinit file are performed before the download of the application into the target memory is performed. This allows the user to perform initialization steps which might be necessary to enable the access to the target memory. The .gdbinit file also allows to use download into flash memory via J-Link and flash breakpoints.
Protocol extensions
- SWO support
GDB Server supports transfer of SWO data (terminal output, instrumentation trace, PC samples, etc.) - ETM (processor trace) support: upon request
J-Link Ultra IDE integration
J-Link IDE integration
J-Link / J-Trace can be used with different IDEs. Some IDEs support J-Link directly, for other ones additional software (such as J-Link RDI) is necessary in order to use JLink. The following tables list which features of J-Link / J-Trace can be used with the different IDEs.
ARM Cortex-M3 | |||||
---|---|---|---|---|---|
IDE | Debug support4 | Flash Download | Flash Breakpoints | Trace support | SWO support |
IAR EWARM | |||||
Keil MDK | |||||
Rowley | |||||
CodeSourcery | |||||
Yargato (GDB) |
ARM7/9 | ||||
---|---|---|---|---|
IDE | Debug Support4 | Flash Download | Flash Breakpoints | Trace support3 |
IAR EWARM | ||||
Keil MDK | ||||
Rowley | ||||
CodeSourcery | ||||
Yargato (GDB) | ||||
RDI compliant toolchains such as RVDS/ADS |
1 | 1 | 1 |
ARM11 | ||||
---|---|---|---|---|
IDE | Debug support4 | Flash Download | Flash Breakpoints | Trace support3 |
IAR EWARM | 2 | 2 | ||
Rowley | ||||
Yargato (GDB) | 2 | 2 |
1 Requires J-Link RDI license for download of more than 32KBytes
2 Coming soon
3 Requires emulator with trace support
4 Debug support includes the following: Download to RAM, memory read/write, CPU register read/write,
Run control (go, step, halt), software breakpoints in RAM and hardware breakpoints in flash memory.