Difference between revisions of "J-Link drag and drop programming"

From SEGGER Wiki
Jump to: navigation, search
(Data file conditioner utility)
 
(17 intermediate revisions by 3 users not shown)
Line 4: Line 4:
   
 
__TOC__
 
__TOC__
  +
  +
== Windows specifics ==
  +
=== Download of data files ===
  +
  +
Data files cannot be guaranteed to be programmed correctly.<br>
  +
Known affected Windows versions are:<br>
  +
*<span style="color:red">Windows 10: 22H2 OS Builds 1904x.2788 or later</span>
  +
*<span style="color:red">Windows 11: 22H2 and 21H2 OS build 22621.1344 or later</span><br>
  +
Windows intermittently transfers chunks of the data file in non-sequential order.<br>
  +
More info, see [[#Host transfers data file out of order | Section: Host transfers data file out of order]].
   
 
== macOS specifics ==
 
== macOS specifics ==
  +
See [[#Host transfers data file out of order | Section: Host transfers data file out of order]]
=== Download of large data files ===
 
  +
  +
== Host transfers data file out of order ==
  +
Since certain versions / updates, at least Windows and macOS stopped transferring the data file in sequential order.<br>
  +
It can now happen that the file is transferred in multiple blocks that may be sent by the host out of order.<br>
  +
Depending on how the host splits the data file transfer, J-Link may not have any chance of programming the data file correctly because it cannot buffer the whole chunk after a gap until the gap is filled by the host.<br>
  +
Therefore, it is strongly recommended to only use "conditioned" data files for drag & drop programming.<br>
  +
SEGGER provides a [[#Data file conditioner utility | data file conditioner utility]] for this purpose.
  +
  +
== Data file conditioner utility ==
  +
Due to the recent host OS changes discussed in [[#Host transfers data file out of order | Section: Host transfers data file out of order]],<br>
  +
SEGGER created a data file conditioner utility that prepares a data file in a way that out of order transfers do no longer hurt.<br>
  +
The utility is part of the [https://www.segger.com/downloads/jlink/ J-Link software package] (starting with V7.92).<br>
  +
{{Note|1=The conditioner utility (DDConditioner.exe under Windows) needs a hex/mot/srec/bin file as an input and outputs an *.srec file.<br>The conversion can be easily triggered by drag & drop the file to be converted onto the executable of the utility}}
   
  +
== Error codes ==
Data files that are 1 MB (1024 KB) or larger in size cannot be guaranteed to be programmed correctly.<br>
 
  +
TBD
Apple macOS has a scheduler that splits data files writes to the drag & drop drive to 1 MB chunks that are delegated to multiple threads.<br>
 
This may lead to data being written to the drive non-sequentially because each 1 MB job of each thread may be interrupted by another thread at any time.<br>
 
Due to limited RAM in J-Link (OB), the drag & drop functionality relies on data for a single file being written sequentially by the host operating system.
 

Latest revision as of 17:08, 10 August 2023

Drag-And-Drop is an optional J-Link OB intuitive programming feature. It allows programming of your target MCU in a very simple way. J-Link OB with Drag-And-Drop capability appears both as a debug probe and as a flash drive on the user's computer. With the flash drive option it is now as simple as dragging and dropping a file (a Motorola S-record, an Intel Hex, or a plain binary) onto the J-Link drive. There is no need to install application software. Anyone that can drag and drop a file to a USB memory stick can now program the target on an evaluation board.

Windows specifics

Download of data files

Data files cannot be guaranteed to be programmed correctly.
Known affected Windows versions are:

  • Windows 10: 22H2 OS Builds 1904x.2788 or later
  • Windows 11: 22H2 and 21H2 OS build 22621.1344 or later

Windows intermittently transfers chunks of the data file in non-sequential order.
More info, see Section: Host transfers data file out of order.

macOS specifics

See Section: Host transfers data file out of order

Host transfers data file out of order

Since certain versions / updates, at least Windows and macOS stopped transferring the data file in sequential order.
It can now happen that the file is transferred in multiple blocks that may be sent by the host out of order.
Depending on how the host splits the data file transfer, J-Link may not have any chance of programming the data file correctly because it cannot buffer the whole chunk after a gap until the gap is filled by the host.
Therefore, it is strongly recommended to only use "conditioned" data files for drag & drop programming.
SEGGER provides a data file conditioner utility for this purpose.

Data file conditioner utility

Due to the recent host OS changes discussed in Section: Host transfers data file out of order,
SEGGER created a data file conditioner utility that prepares a data file in a way that out of order transfers do no longer hurt.
The utility is part of the J-Link software package (starting with V7.92).

Note:
The conditioner utility (DDConditioner.exe under Windows) needs a hex/mot/srec/bin file as an input and outputs an *.srec file.
The conversion can be easily triggered by drag & drop the file to be converted onto the executable of the utility

Error codes

TBD