NXP has released a new version of the LinkServer software. This is a utility for debugging and using scripting for a wide range of devices and debugging probes. It includes support for the MCU-Link, LPC-Link2, on-board and CMSIS-DAP based debug probes with the ‘LinkFlash’:

With the new release, it includes a graphical user interface (GUI) for flash programming. It also includes erasing, verifying, recovery, and saving the memory to a file.
Outline
The NXP LinkServer integrates seamlessly with my Eclipse MCUXpresso IDE and VS Code based projects. I like its command line and scripting interface, which is great for automation. For example I’m using the MCU-Link with the LPC55S169 in a CI/CD environment.

What the new release 24.9.75 adds on top of this is a GUI for common tasks. Things like programming or erasing the device memory. A GUI is not something useful in a scripting or CI/CD environment, but it makes common tasks easy and accessible.
The GUI in the LinkServer is akin to what exists in Eclipse (NXP MCUXpresso IDE). LinkServer is independent of the IDE. It also very useful with using VS Code.
In the next sections, I’ll go through the main features:
- Command Line Interface (CLI) and help options
- Probe Selection
- Selecting Device
- Programming
- Erasing
- Resurrecting
- Saving
- Verifying
Help
With
LinkServer -h
it shows the new gui option:

With
LinkServer gui -h
LinkServer gui -h get more information:

Starting
To start the GUI, I use the next command line:
LinkServer gui flash
Alternatively, I can launch it with a shortcut on Windows:

This starts a new window:

The nice thing is that it remembers the last settings.
Probe
If having multiple probes connected, I can choose which one to use.

Additionally there is a ‘Refresh’ button available.
Device
The device selection supports filtering:

New devices can be added through description files.
Program
For programming, I can browse for an executable (ELF/Dwarf, S19, Intel Hex or Binary). Or simply drag&drop the file anywhere into the window. For binary files I can specify the offset:

With the ‘Program’ button the executable gets programmed, and the log output is shown:

Commands
The GUI is very useful for scripting. Because it shows the command line for each action. I can copy & paste the text and use it in my scripts.

Erase
Here I can erase the memory. Like the program action, I get the command line for it too:

Resurrect
The ‘resurrect’ tries to recover bricked NXP Kinetis or NXP MCXC devices: basically it tries to do a mass erase.

Save
With the ‘Save’ function I can read the device memory and save it to a file:

Verify
With ‘Verify’ I can compare the device memory with a given file:

Summary
The ‘LinkFlash’ or GUI flash programmer is a great extension and feature of the LinkServer. Common tasks like programming are easy to use. I really like the way how it gives me the command line options for the different tasks. That way I can use the GUI for what I want, and then copy-paste the command line into my scripts.
The GUI in my opinion is a great addition for all users, especially for the beginners. And it is really an extension of the command line tools. Plus it makes the command line tools more accessible too.
So what do you think? Is that GUI useful for you too? Are you more of a GUI person or a CLI person? Please post a comment!
Happy programming 🙂
PS: there is another great new feature in this LinkServer release. More about it in a next post.
greetings Mr Styger
i have a question regarding MCU_link and gdb server it’s in this topic Loading Multiple (Binary) Files with GDB | MCU on Eclipse
but i m only allowed to post a comment here ,
i have a flashloader.bin that i want to load and in execute in RAM (OCRAM1 0x20240000)
i’m using an rt1176 nxp board , and i tried using linksever but couldn’t get the correct cmds , would you be kind to share some advices on how to make that possible ?
kind regards
LikeLike
Is your goal to use Eclipse with gdb to debug an application in RAM? Or to use LinkServer how to load a binary into RAM and run it?
LikeLike
well my goal is to write a script for automation that does two main things :
-1 load a binary (flashloader) into RAM and run it ,to burn boot fuses and other specific fuses
-2 flash and load the main application binary directly into NOR flash and execute from there .
now i did the application in NOR part using linkserver flash erase &flash load cmds and i can boot from that memory . however i’m having a trouble loading the flashloader binary into RAM and run it .
LikeLike
well my goal is to write a script for automation that does two main things :
-1 load a binary (flashloader) into RAM and run it ,to burn boot fuses and other specific fuses
-2 flash and load the main application binary directly into NOR flash and execute from there .
now i did the application in NOR part using linkserver flash erase &flash load cmds and i can boot from that memory . however i’m having a trouble loading the flashloader binary into RAM and run it .
LikeLike
As for the RAM use case: have you verified that it works with the debugger? Running something in RAM usually means that you need to have a different setup (e.g. linking).
LikeLike
As for loading into RAM: I’m using the ‘run’ command in LinkServer. Have a look here: https://mcuoneclipse.com/2025/07/19/optimizing-ci-cd-with-ram-target-applications/
This should address your needs too?
LikeLike
Perfect ! that exactly what i need , althought i have two files one axf and one binary that i’ll i have to run in RAM , but this simple command definitely does the job , i was using gdb and linkserver gdbserver and use these commands
file flashloader.axf
set pagination off
set non-stop on
target remote localhost:3333
load
restore {key_file} binary {key_address}
continue
and
linkserver gdbserver MIMXRT1176:MIMXRT1170-EVK –gdb-port 3333
this will load my axf then the key_file then run it
LikeLike
What I do in such cases (multiple files) is to use the SRecord tool to process them and produce one file. See for example https://mcuoneclipse.com/2016/02/26/merging-s19-files/. I can produce a binary or S19 file from the .axf/.elf, and then use SRecord to merge multiple files, e.g. in to a bin or S19.
LikeLike
(if what you mean is have i tried using a gui/ide to verify first)
yes indeed , in fact my initial method is to use MCUXpresso to run/debug flashloader into RAM using the IDE , now i have to do that with a script instead of MCUxpresso
LikeLike