NXP LinkServer 24.9.75: New GUI for Flash Programming

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’:

Programming with 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.

NXP LPC55S16-EVK with NXP MCU-Link Debug Probe

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:

LinkServer GUI option

With

LinkServer gui -h

LinkServer gui -h get more information:

Help on gui option

Starting

To start the GUI, I use the next command line:

LinkServer gui flash

Alternatively, I can launch it with a shortcut on Windows:

Shortcut to launch GUI

This starts a new window:

LinkFlash GUI

The nice thing is that it remembers the last settings.

Probe

If having multiple probes connected, I can choose which one to use.

Probe Selection

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:

Programming Settings

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

Program Button with log output

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.

Commands

Erase

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

Erase

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:

Save

Verify

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

Verify

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.

Links

9 thoughts on “NXP LinkServer 24.9.75: New GUI for Flash Programming

  1. 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

    Like

      • 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 .

        Like

      • 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 .

        Like

        • 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).

          Like

        • 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

          Like

  2. (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

    Like

Leave a reply to yosri cherni Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.