[SOLVED] J-Link Commander in production

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] J-Link Commander in production

    Hello all,
    i'm really new to Segger products and i have two little questions about the software products J-Flash and J-Link Commander.
    Actually we are using J-Link Plus with the J-Link Commander (Batch- and CommanderScript-File) to flash devices in production process.
    If i call the Batch-File, J-Link commander take down the CommandScript-File. In parallel the J-Link Flash Download window opens and show the actual progress of (compare,erase,program,verify). In the J-Link - Control panel in the tab Seetings-Flash download i can adjust different options for the compare(skip,CRC,readback,fastest method)- and very(Skip,..)-process. Are these options used by the commands erase,loadbin and verifybin in my commandScript-File?

    CommandScript-File example:
    erase
    loadbin Fir.bin, 0x00
    verifybin Fir.bin, 0x00

    I'm a litlte bit confused.I read here segger.com/jlink-flash-download.html the chapter "Download into flash memory for development purposes" - I understood that i should use JFlash with Flasher in production purpose and not J-Link Commander. Is that right? Are there difference in verification-,programming- or the erase-process?

    Best Regards,
    Arne
  • Hello Arne,

    In the J-Link - Control panel in the tab Seetings-Flash download i can adjust different options for the compare(skip,CRC,readback,fastest method)- and very(Skip,..)-process. Are these options used by the commands erase,loadbin and verifybin in my commandScript-File?
    Yes. You can also use the command line parameter -SettingsFile <PathToFile>. An example SettingsFile can be found at $JLINK_INST_DIR$\Samples\JLink\SettingsFiles\Sample.jlinksettings .
    I understood that i should use JFlash with Flasher in production purpose and not J-Link Commander. Is that right?

    This is correct. We strongly advice to not use J-Link Commander but J-Flash for production purposes.

    J-Flash
    • Allows a (much) higher level of customization
    • Is designed for production purposes
    • Is optimized for production grade flash programming (double verification etc.)
    • J-Flash projects can be used for standalone flash programming with SEGGER Flasher products
    J-Link Commander
    • Is designed for development purposes
    • The flash programming logic by default is configured for debugging which is highly optimized for speed flash
      programming and not for production grade flash programming

    J-Link PLUS ships with a build-in license for J-Flash. No further configuration or license required from your side, J-Flash just works with J-Link PLUS.

    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello Niklas,
    thanks for youre really fast answer and clarification :).

    I want to connect multiply Flasher over ethernet to a server. In my server applications (.Net IIS - Soap Service) i want to read out memory of every target device over Flasher and update *.conf- and *.dat-File for every Flasher. If i cant install JFlash/JLink on server side it is possible to generate *.conf-File and *.dat-File on a local machine and use the J-Link SDK in server applications to read out the memory of target devices and update the *.conf- and *.dat-File of every Flasher? Following of these process it is possible to start the Flash-process for every Flasher over Telnet?

    It is also possible to execute the JLinkScript-File with the J-Link SDK without the need of install JLink.exe?

    Best Regards,
    Arne
  • Hi Arne,

    I will sum up my answers in order to avoid confusion:

    J-Flash
    • Generating .cfg and .dat files with J-Flash on a local machine - Possible

    J-Link SDK
    • In order to use J-Link SDK jlink.exe is not required, but you need to link JLinkARM.dll into the application running on the server
      JLinkARM.dll and its headers both ship with J-Link SDK.
    • Reading of target memory using J-Link SDK - Possible
    • Updating .cfg and .dat files of a Flasher using J-Link SDK - Possible

    Flasher
    • Starting the Flash-process via Telnet - Possible
      The Telnet Interface is explained in UM8022 in section 3 "Remote Control" .

    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Arne,


    A single J-Link SDK-license may be used to build multiple different applications.
    It is also possible to run multiple instances of an application.

    It is also possible to do these in parallel for multiply Flasher with one SDK in one Visual Studio Solution

    Not really sure what you mean here. Uploading config files is usually a one time setup which is done once or, if done regularly, maybe once per week,
    so doing it one-by-one is usually not a problem.

    However, if you want to do it parallel, you need multiple instances of the application.
    Only one connection (to J-Link / Flasher) at a time per instance is possible.

    It is of course possible to close the existing connection and then open another connection to a different J-Link / Flasher in one session of an application.

    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi Niklas,

    i mean if i programm a web-service for example "Update_Flasher_Firmware_Service" or "Read_Memory_Target_Service" in .Net with youre SDK. These Service is hosted on a Server Microsoft IIS (Internet Information Services).
    In production i have for example three Flasher. Every Flasher have is own control system. The Service Read_Memory_Target_Service (Service call with IP of Flasher) is called by issue of the control system. So i have three service request in parallel on my Server (IIS). Every service call generate a Instance which read the memory of target device. I have three connections in parallel to different Flashers (IP).I hope i can clarify my aim. If the SDK is multitasking/thrading able for these type of use?

    Regards,
    Arne

    The post was edited 5 times, last by arvbar ().

  • Hi Arne,


    the scenario you described will result in multiple instances of the same application(s), which is possible.


    Best regards,
    Niklas
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello Niklas,
    I read the datasheet UM08022 which describe the functions of Flasher. Now i'm really confused about the functionality and boot modes of Flasher.
    I want to integrate the Flasher PROs in parallel (for example ten for a automatic tray handling station) in my production line with a ethernet connection to a host PC in matter to my initial post.I have a lot of Firmware-Files (Firmwarex.dat and Firmware.cfg) on a local computer (High variance of Firmwares).
    Flasher Pro is install already in production line and cant remove for updating firmware files from production line or i think reboot in different modes it is not possible. The following process should be fully automated from a server.

    1. I will read out different memory spaces of my target. (Not production like, but the yC comes with different data which is save in memory) - Over the SDK possible.
    Does Flasher Pro starts in J-Link mode because i have a ethernet connection?

    2. Check is firmware on the Flasher Pro (SDK or Telnet/ASCII working?)

    3. If the Firmware is not available on the Flasher Pro i will update Firmware.dat und Firmware.cfg (SDK or Telnet/ASCII working?)

    4. After Updating i will start the Flash auto flash process (SDK or Telnet/ASCII working?).

    Does the ASCII telnet interface also working in J-Link mode?

    I hope my questions are not confusing you ;). I'm really new and interested in Seggers Flasher Pro.

    Regards,
    Arne
  • Hi Arne,

    The Flasher manual is some kind of misleading at the point describing the different Flasher modes. The description of three different modes has historical reasons. We will check if we can improve the manual here. Basically the Flasher has two modes:
    1) J-Link / Stand-Alone mode: Flasher can be controlled via USB / Ethernet / Remotely (Handshake control, ASCII (via RS232/Telnet)
    Flasher boots in this mode if the button is not pressed during supplying the Flasher with power.
    2) MSD-Mode: Flasher boots as MSD (massive storage device) and files can be changed via drag & drop.
    Flasher boots in this mode if the button is pressed during supplying the Flasher with power.
    1. I will read out different memory spaces of my target. (Not production like, but the yC comes with different data which is save in memory) - Over the SDK possible.
    Does Flasher Pro starts in J-Link mode because i have a ethernet connection?
    Correct. Using the J-Link SDK, you can establish a connection to the Flasher via Ethernet or USB interface and read out the target memory. Flasher needs to be connected in mode 1)
    2. Check is firmware on the Flasher Pro (SDK or Telnet/ASCII working?)
    Can be done either using the SDK or ASCII (RS232/Telnet) interface.
    3. If the Firmware is not available on the Flasher Pro i will update Firmware.dat und Firmware.cfg (SDK or Telnet/ASCII working?)
    See 2.
    4. After Updating i will start the Flash auto flash process (SDK or Telnet/ASCII working?).
    Three different ways (see chapter 3.1 Remote control --> Overview)

    Does the ASCII telnet interface also working in J-Link mode?
    Yes (see above).


    Best regards
    Erik
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hello Erik,
    thanks for your fast answer. In this point i think it is better to revise the manual, because it is very confusing for new people to understand the different ways.;) But youre answer is very helpful.
    So once Flasher Pro is started with ethernet connection i have the full control in J-Link / Stand-Alone mode.
    Consecutively i have combined the possibilitys.


    Flasher Pro <-> Ethernet <-> Server
    - SDK (Update/Erase/Verify of "firmware.cfg and firmware.dat" on Flasher Pro is possible). It is also possible to send auto start command over ethernet with SDK?
    - Remote Control ASCII (Telnet) (Update/Erase/Verify of "firmware.cfg and firmware.dat" is also possible) Start Command could also be send.
    - Also its possible to use SDK for Firmware administration on Flasher Pro and Telnet ASCII for sending auto start command in production line if i'm starting Flash-Process from Server side.

    Additionally i can establisch a RS232 connection from Server to Flasher Pro for example. As defined in remote control i can use the same ASCII commands like Telnet to control (Update/Erase/Verify/Starting of "firmware.cfg and firmware.dat" on Flasher Pro)

    I think a workaround for (new)customer would be really helpful to demonstrate the benefits and control possibilitys of Flasher pro :).

    Best Regars,
    Arne
  • So once Flasher Pro is started with ethernet connection i have the full control in J-Link / Stand-Alone mode.
    Correct.
    It is also possible to send auto start command over ethernet with SDK?
    Not yet. In general this is not necessary at all (see text below).
    Remote Control ASCII (Telnet) (Update/Erase/Verify of "firmware.cfg and firmware.dat" is also possible) Start Command could also be send.
    Correct.
    Also its possible to use SDK for Firmware administration on Flasher Pro and Telnet ASCII for sending auto start command in production line if i'm starting Flash-Process from Server side.
    Correct.
    Additionally i can establisch a RS232 connection from Server to Flasher Pro for example. As defined in remote control i can use the same ASCII commands like Telnet to control (Update/Erase/Verify/Starting of "firmware.cfg and firmware.dat" on Flasher Pro)
    Correct.

    In general, there are two different Flasher user cases:
    a) Stand-alone mode. Flasher is prepared once and either a employee triggers the flash programming process either via the programming button or the flash programming process is triggered via "Remote Control" (Handshake control, ASCII (via RS232/Telnet).
    b) Some kind of PC software controls the Flasher (e.g. J-Flash or some customized software created using the J-Link SDK).

    For me it sounds like you are mixing a) and b) but right now I would expect that using only b) would suffice and you do not need the stand-alone mode programming feature as you want to have the total control from the PC / Server? If I understand you correct, everything can be done using the J-Link SDK without storing data or config files on the Flasher. Another side effect of controlling everything using the J-Link SDK would be increasing the total programming speed as no config / data file need to be parsed.

    Example program data file:
    PC / Server --> Connect to J-Link via IP --> Connect to target --> Program data file


    - Erik
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hey Erik,
    thanks for youre answer.

    "Example program data file:
    PC / Server --> Connect to J-Link via IP --> Connect to target --> Program data file"

    In most case i think there are different departments for developement and production.
    So in youre use case the developement department create a .Jflash Project-File with additionally in my case binary (Firmware) .bin. and i as production engineer should use this two file and process them on server side with the sdk over ethernet? Is that right?

    My Notation was that if there are for example multiple Flasher Pro connect over ethernet to a central server which is seperated from Flasher Pro (in company).
    The Development department create Flasher .cfg- and .dat- File on a local machine. These Files are append to a production order. In production these files are load on all Flasher over Ethernet and then i can start the process over Ethernet. So in this case i maybe have a speed advantage because the server not load the complete firmware over ethernet?

    Regards,
    Arne
  • Hi Arne,

    Development department creates a data file (e.g. *.hex, *.bin, etc...) and the production use this file to program the device. You are correct, the data file needs to be transmitted for each device via Ethernet. For applications < 1 MB this should not create that much traffic but for larger applications it could. Therefore, I have discussed this topic internally and we will add a functionality which will allow to trigger the programming cycle via Ethernet / USB (same behavior as when pressing the programming button on the Flasher itself or sending the #AUTO command via the ASCII interface).

    Best regards
    Erik
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.