This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28379D: Uniflash under linux

Part Number: TMS320F28379D
Other Parts Discussed in Thread: UNIFLASH

Hi,

I would like to program TMS320F28379D (flash and otp memory) from linux command line.

I am struggling with Uniflash under linux. I have Intel Atom 330 board which is x86_64.

So far I tested:

  • xubuntu 16.04 - Uniflash can be installed and run, but is not detecting xds110. In syslog there is some complains about glibc version (too old)
  •   ubuntu 20.04.6 LTS - Cannot install Uniflash, installer display message that libusb and libgconf are missing (unfortunatelly these libraries are no longer in the distribution)

I was informed that UniFlash is supported for Linux and x86-64 architecture.

Please tell me what Linux (distribution and version) should I use to have UniFlash working.

This is very critical for me, in one week programming of 1k devices with TMS320F28379D must be started.
UniFlash is only a component for me, I need to build the environment that is based on UniFlash.

Regards,

Piotr Romaniuk

    •   ubuntu 20.04.6 LTS - Cannot install Uniflash, installer display message that libusb and libgconf are missing (unfortunatelly these libraries are no longer in the distribution)

    I was informed that UniFlash is supported for Linux and x86-64 architecture.

    You are likely missing some dependencies. The many of the dependencies should be similar to CCS. Please see this page:

    https://software-dl.ti.com/ccs/esd/documents/ccsv12_linux_host_support.html

  • Yes, you are right. I installed missing packages to Ubuntu 20.04. Uniflash started and detected xds110. 

    Unfortunatelly it worked very slow - was unusable.

    I am now updating packages in the system. I will check it again after the update.

    For my goal I need command line tools so maybe GUI usage problem would be minor for me.

    Regards,

    Piotr Romaniuk

    PS
    I will write here what is the progress.

  • For my goal I need command line tools so maybe GUI usage problem would be minor for me.

    UniFlash does come with a command line interface. See the "Command Line Interface" section of the below document:

    https://software-dl.ti.com/ccs/esd/uniflash/docs/v8_6/uniflash_quick_start_guide.html#command-line-interface

  • UniFlash GUI is not working. It is so slow that tens of seconds lasts while setting initial configuration (it was much effective and responsive in 16.04).

    I wish to verify everything works before I switch to CLI.

    What should I do before I use CLI? Should I deploy something in GUI first?

    Regards,

    Piotr Romaniuk

  • UniFlash GUI is not working. It is so slow that tens of seconds lasts while setting initial configuration

    You are using an Intel Atom 330. The performance is going to be very slow. I would really recommend a more current powerful processor.

  • This is 1.6GHz.

    The cause of the problem is that UniFlash is written using node-webkit. I am not convinced that this is the only reason of slow work.
    I see also a lot of errors in console while UniFlash is running.

    Schortcut on desktop does not start anything it opens in editor. For running uniflash I copied its contents:

             /opt/ti/uniflash_8.6.0/node-webkit$ sudo ./nw /opt/ti/uniflash_8.6.0

    Is it correct?

    After some time I was able to generate stand alone archive from UniFlash. This will be my starting point for tomorrow continuation.
    Definitely, GUI is not usable on such cpu/ram resources.

    Regards,

    Piotr Romaniuk

    PS
    Below messages from console when UniFlash is running:

    pi@lopi-tool:/opt/ti/uniflash_8.6.0/node-webkit$ sudo ./nw /opt/ti/uniflash_8.6.0
    [8654:8675:0426/223558.795687:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8654:8675:0426/223558.796908:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8654:8675:0426/223558.954189:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8654:8675:0426/223558.954507:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8654:8734:0426/223613.265346:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug.com/1216328.
    [8654:8734:0426/223613.266405:ERROR:chrome_browser_main_extra_parts_metrics.cc(230)] END: ReportBluetoothAvailability()
    [8684:8693:0426/223659.302585:ERROR:cert_verify_proc_builtin.cc(600)] No net_fetcher for performing AIA chasing.
    [8684:8696:0426/223659.303592:ERROR:cert_verify_proc_builtin.cc(600)] No net_fetcher for performing AIA chasing.
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    (nw:8654): dconf-WARNING **: 22:38:28.019: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8654): dconf-WARNING **: 22:38:28.307: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8654): dconf-WARNING **: 22:38:30.659: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    
    (nw:8654): dconf-WARNING **: 22:38:54.922: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    [0426/225614.590760:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/225614.591617:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/225614.591814:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8654:8654:0426/225614.668989:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    [0426/225645.253730:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/225645.255096:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/225645.255270:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8654:8654:0426/225645.375568:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    
    [0426/225715.875720:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/225715.876566:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/225715.876702:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8691:8713:0426/225715.932572:ERROR:command_buffer_proxy_impl.cc(328)] GPU state invalid after WaitForGetOffsetInRange.
    [8654:8654:0426/225715.935880:ERROR:command_buffer_proxy_impl.cc(328)] GPU state invalid after WaitForGetOffsetInRange.
    [8691:8713:0426/225715.945512:ERROR:command_buffer_proxy_impl.cc(125)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
    [8654:8654:0426/225716.001924:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    pi@lopi-tool:/opt/ti/uniflash_8.6.0/node-webkit$ 
    pi@lopi-tool:/opt/ti/uniflash_8.6.0/node-webkit$ sudo ./nw /opt/ti/uniflash_8.6.0
    [sudo] password for pi: 
    [8882:8902:0426/225737.464145:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8882:8902:0426/225737.464833:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8882:8902:0426/225737.643085:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8882:8902:0426/225737.643960:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8882:8906:0426/225752.443759:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug.com/1216328.
    [8882:8906:0426/225752.444071:ERROR:chrome_browser_main_extra_parts_metrics.cc(230)] END: ReportBluetoothAvailability()
    [8913:8921:0426/225837.956182:ERROR:cert_verify_proc_builtin.cc(600)] No net_fetcher for performing AIA chasing.
    [8913:8924:0426/225837.957407:ERROR:cert_verify_proc_builtin.cc(600)] No net_fetcher for performing AIA chasing.
    [0426/230323.225466:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/230323.226585:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/230323.226793:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8882:8882:0426/230323.351319:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    [0426/230408.798181:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/230408.799014:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/230408.799164:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8882:8882:0426/230408.901078:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    [0426/230509.350655:WARNING:exception_snapshot_linux.cc(427)] Unhandled signal -1
    [0426/230509.351292:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
    [0426/230509.351419:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
    [8882:8882:0426/230509.445515:ERROR:gpu_process_host.cc(972)] GPU process exited unexpectedly: exit_code=512
    [9020:9020:0426/230509.833511:ERROR:sandbox_linux.cc(380)] InitializeSandbox() called with multiple threads in process gpu-process.
    [8925:8944:0426/230509.871190:ERROR:command_buffer_proxy_impl.cc(125)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    
    (nw:8882): dconf-WARNING **: 23:10:01.524: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:01.527: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    
    (nw:8882): dconf-WARNING **: 23:10:40.806: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:41.085: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:46.033: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:46.100: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:46.136: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:10:47.217: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    [8882:8902:0426/233022.427178:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    [8882:8902:0426/233022.435363:ERROR:bus.cc(397)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    
    (nw:8882): dconf-WARNING **: 23:30:24.006: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:32:18.543: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    Error creating proxy: Unknown or unsupported transport “disabled” for address “disabled:” (g-io-error-quark, 13)
    
    (nw:8882): dconf-WARNING **: 23:32:30.331: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    (nw:8882): dconf-WARNING **: 23:32:36.560: failed to commit changes to dconf: Unknown or unsupported transport “disabled” for address “disabled:”
    
    
    
    

  • Speed of command line tools is acceptable. I work with generated uniflash_linux.zip as a template.

    Unfortunatelly there are some issues:

    1. script one_time_setup.sh creates incorrect links (in the package there is libstdc++.so.6.0.30 but the script tries to link 6.0.28) - minor, I corrected manually.

    2. althrough the flash was erased I obtained errors (please see at the end of this message). Restart of cpu power and reconnecting usb xds helped. I verified the state of CPU by uniflash on  laptop (windows), the memory was blank, it was possible to program and erasse cpu.
    OTP message is very strange, this hex file do not touch OTP.

    For production it is not acceptable to restart power nor reconnect usb.

    3. in production we use DCSM, so hex files will contain OTP writes as well. Will it be properly handled by DSlite flash command?

    4. In UniFlash-GUI there is a feature 'Remain Connected after operation". How to obtain it in CLI?

    In production we program two cores in the order: cpu02, cpu01 and holding them until the sequence is finished by this feature. As long as they are connected they are not reset and security is not effective.

    Regards,

    Piotr Romaniuk

    pi@tool:~/uniflash_linux$ ./dslite-C28xx_CPU1.sh
    + set -e
    ++ readlink -f ./dslite-C28xx_CPU1.sh
    + script=/home/pi/uniflash_linux/dslite-C28xx_CPU1.sh
    ++ dirname /home/pi/uniflash_linux/dslite-C28xx_CPU1.sh
    + scriptDir=/home/pi/uniflash_linux
    + hexfile=user_files/images/Bootloader_cpu01.hex
    + MODE=flash
    + USEROPTIONS=
    + '[' '' == --listMode ']'
    + '[' 0 -ne 0 ']'
    + '[' 0 -eq 0 ']'
    + args=(\"$scriptDir\"/ccs_base/DebugServer/bin/DSLite $MODE -c user_files/configs/f28379d.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad=\"No verification\" -e -f -v \"$hexfile\")
    + echo -e Executing: '"/home/pi/uniflash_linux"/ccs_base/DebugServer/bin/DSLite' flash -c user_files/configs/f28379d.ccxml -l user_files/settings/generated.ufsettings -s 'VerifyAfterProgramLoad="No' 'verification"' -e -f -v '"user_files/images/Bootloader_cpu01.hex"'
    Executing: "/home/pi/uniflash_linux"/ccs_base/DebugServer/bin/DSLite flash -c user_files/configs/f28379d.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad="No verification" -e -f -v "user_files/images/Bootloader_cpu01.hex"
    + eval '"/home/pi/uniflash_linux"/ccs_base/DebugServer/bin/DSLite' flash -c user_files/configs/f28379d.ccxml -l user_files/settings/generated.ufsettings -s 'VerifyAfterProgramLoad="No' 'verification"' -e -f -v '"user_files/images/Bootloader_cpu01.hex"'
    ++ /home/pi/uniflash_linux/ccs_base/DebugServer/bin/DSLite flash -c user_files/configs/f28379d.ccxml -l user_files/settings/generated.ufsettings -s 'VerifyAfterProgramLoad=No verification' -e -f -v user_files/images/Bootloader_cpu01.hex
    DSLite version 12.7.0.3313
    Configuring Debugger (may take a few minutes on first launch)...
            Initializing Register Database...
            Initializing: IcePick_C_0
            Executing Startup Scripts: IcePick_C_0
            Initializing: C28xx_CPU1
            Executing Startup Scripts: C28xx_CPU1
            Initializing: CPU1_CLA1
            Executing Startup Scripts: CPU1_CLA1
            Initializing: C28xx_CPU2
            Executing Startup Scripts: C28xx_CPU2
            Initializing: CPU2_CLA1
            Executing Startup Scripts: CPU2_CLA1
    Connecting...
    C28xx_CPU1: GEL Output:
    Memory Map Initialization Complete
    info: C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. Also, CPU1 will be halted to determine SR ownership for the CPU which will run the Flash Plugin code, after which CPU1 will be set to run its application. User code execution from SR could commence after both flash banks are programmed.
    Loading Program: user_files/images/Bootloader_cpu01.hex
            Preparing ...
            0 of 15754 at 0x80000
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0xc000 on Page 0 of Length 0x180: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x00C000@Program
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0x130 on Page 0 of Length 0x2: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x000130@Program
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0x134 on Page 0 of Length 0x2: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x000134@Program
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0x136 on Page 0 of Length 0x2: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x000136@Program
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0x138 on Page 0 of Length 0x2: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x000138@Program
    fatal: C28xx_CPU1: Trouble Setting Breakpoint with the Action "Remain Halted" at 0xc0eb: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Internal error while writing 0x0005F444@Data
    fatal: C28xx_CPU1: Trouble Reading Register ST1: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error setting the GSxMSEL register for Flash operations
    fatal: C28xx_CPU1: Can't Run Target CPU: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    fatal: C28xx_CPU1: Error: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Unable to determine target status after 20 attempts
    error: C28xx_CPU1: Failed to remove the debug state from the target before disconnecting.  There may still be breakpoint op-codes embedded in program memory.  It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
    error: C28xx_CPU1: Error occurred during flash operation: Could not read 0x0007026D@Data: target is not connected
    error: C28xx_CPU1: Error occurred during flash operation: Could not write 0x0005F444@Data: target is not connected
    error: C28xx_CPU1: Error occurred during flash operation: Could not read 0x0005F444@Data: target is not connected
    error: C28xx_CPU1: Error setting the GSxMSEL register for Flash operations
    error: C28xx_CPU1: Error occurred during flash operation: Could not read 0x000130@Program: target is not connected
    error: C28xx_CPU1: Error executing PLL configuration algorithm. Operation cancelled. (0x0)
    error: C28xx_CPU1: Error occurred during flash operation: Could not write 0x0005D200@Data: target is not connected
    error: C28xx_CPU1: File Loader: Memory write failed: Unknown error
            Finished

  • 3. in production we use DCSM, so hex files will contain OTP writes as well. Will it be properly handled by DSlite flash command?

    Most operations that can be done in UniFlash GUI can be done from the command. Are you able to do this from UniFlash GUI?

    4. In UniFlash-GUI there is a feature 'Remain Connected after operation". How to obtain it in CLI?

    Please see: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/998161/tms320f280048-q1-uniflash-programming-issue/3687539#3687539

  • Most operations that can be done in UniFlash GUI can be done from the command. Are you able to do this from UniFlash GUI?

    Yes it generally works in UniFlash GUI windows version. There are some issues but we try to capture logs before we report it here.

    Ad.4 

    Oh yes, you remainded me that there is DSS scripting. I knew about it but did not use yet. 

    Ad. 2.
    Can you aswer to question [2]? We will perform programming 1K devices next week, such problem will make it much more difficult and time consuming.

    Regards,
    Piotr Romaniuk

  • Ad. 2.
    Can you aswer to question [2]? We will perform programming 1K devices next week, such problem will make it much more difficult and time consuming.

    Looks like the flash operation is failing. I will bring this thread to the attention of the device experts.

  • Hi Piotr,

    I am assigned to this post now.

    Please clarify couple of questions:

    1) Where did the console summary mention that it is writing to OTP?

    2) Do you have any initialized sections mapped to RAM in your application?  

    3) Did you already configure DCSM on this device before the attempt for which you showed the error messages?

    Thanks and regards,

    Vamsi

  • Hi Vamsi,

    1) Where did the console summary mention that it is writing to OTP?

    I thought this way:

    1. @CCS, I used dcsm_security_tool for generating OTP configuration. I added it to my project (modification in linker script and values for OTP in .asm). It resulted in OTP locations in .hex file.
    2. @UniFlashGUI I succesfully programmed and secured CPUs only by .hex files that contained OTP location 
    3. @UniflashGUI there is 'Standalone Command Line' - I assumed that this have the same functionality that GUI has,

    The issue that I reported above was for the software without OTP modification. This would be my next step. I already have some older boards so I can experiment with OTP as well [edited] CLI can program OTP, here is the proof (I also checked the OTP contents is consistent with hex)

    DSLite version 12.7.0.3313
    Configuring Debugger (may take a few minutes on first launch)...
            Initializing Register Database...
            Initializing: IcePick_C_0
            Executing Startup Scripts: IcePick_C_0
            Initializing: C28xx_CPU1
            Executing Startup Scripts: C28xx_CPU1
            Initializing: CPU1_CLA1
            Executing Startup Scripts: CPU1_CLA1
            Initializing: C28xx_CPU2
            Executing Startup Scripts: C28xx_CPU2
            Initializing: CPU2_CLA1
            Executing Startup Scripts: CPU2_CLA1
    Connecting...
    C28xx_CPU1: GEL Output:
    Memory Map Initialization Complete
    info: C28xx_CPU1: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. Also, CPU1 will be halted to determine SR ownership for the CPU which will run the Flash Plugin code, after which CPU1 will be set to run its application. User code execution from SR could commence after both flash banks are programmed.
    C28xx_CPU2: GEL Output:
    Memory Map Initialization Complete
    info: C28xx_CPU2: If erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code. Also, CPU1 will be halted to determine SR ownership for the CPU which will run the Flash Plugin code, after which CPU1 will be set to run its application. User code execution from SR could commence after both flash banks are programmed.
    Loading Program: user_files/images/new-cpulock/Bootloader_cpu02.hex
            Preparing ...
            0 of 24 at 0x78000
            0 of 16 at 0x78010
            0 of 32 at 0x78020
            0 of 24 at 0x78200
            0 of 16 at 0x78210: 1%
            0 of 32 at 0x78220: 1%
            0 of 8124 at 0x80000: 1%
            Finished: 1%
            Setting PC to entry point.: 1%
    Verifying Program: user_files/images/new-cpulock/Bootloader_cpu02.hex
            Preparing ...
            0 of 24 at 0x78000
            0 of 16 at 0x78010
            0 of 32 at 0x78020
            0 of 24 at 0x78200
            0 of 16 at 0x78210: 1%
            0 of 32 at 0x78220: 1%
            0 of 8124 at 0x80000: 1%
            Finished: 1%
    info: C28xx_CPU2: Program verification successful for user_files/images/new-cpulock/Bootloader_cpu02.hex
    Success
    

    I there any gap in my inference process? Do UniflashGUI and CLI use the same mechanism underneath (DSlite debug server / DSS)?

    2) Do you have any initialized sections mapped to RAM in your application?

    I am not sure if I understand what you mean. I probably have some variables in RAM that are initialized to non-zero values, but this is done by start up code, not jtag programer.

    3) Did you already configure DCSM on this device before the attempt for which you showed the error messages?

    Thanks and regards,

    I am not sure, probably not. Please notice that after restart programming was ok.

    I was surprissed that dslite logged issue at 0xc000 memory address (that is RAMGS if I remember correctly):

            Preparing ...
            0 of 15754 at 0x80000
    fatal: C28xx_CPU1: Trouble Writing Memory Block at 0xc000 on Page 0 of Length 0x180: (Error -1044 @ 0x0) The debug probe reported an error. Confirm debug probe configuration and connections, reset the debug probe, and retry the operation. (Emulation package 12.7.0.00059)
    error: C28xx_CPU1: Error occurred during flash operation: Target failed to write 0x00C000@Program

    The problem was so persistent that I needed to restart all.

    Regards,

    Piotr Romaniuk

    .

  • Hi Piotr,

    I will review and get back to you next week.

    Thanks and regards,

    Vamsi

  • Hi Piotr,

    Sorry for the delay.  I reviewed the errors.

    This is not an error from the flashing process.

    Error says that the flash tool is not able to load the flash tool's code in the RAM.

    When the error occurs, can you try to load the code in to that failing RAM address and see if you are able to load successfully?  You can also try writing to that RAM address in debugger memory window and see whether the writes succeed or not.

    Please let me know how it goes.

    Thanks and regards,

    Vamsi

  • Hi Vamsi,

    It happened once. If I remember corectly, second trial after that also failed. It needed to restart power of XDS and CPU to make it working again. 
    I cannot test it right now, but if it is frequent it will happen again during programming series of devices (1K).

    When the error occurs, can you try to load the code in to that failing RAM address and see if you are able to load successfully?  You can also try writing to that RAM address in debugger memory window and see whether the writes succeed or not.

    I have only CLI. Uniflash GUI is too slow on this device. 

    Regards

    Piotr Romaniuk

    PS
    Is debug server (i.e. DSLite) also written in Node Webkit?

  • Piotr,

    Ok, if it happens again and if that results in a flashing error, I can help.

    As of now, I can tell that this is not a flashing error.  You can use CCS and try loading some code to that failing RAM address next time when it fails.  And our team can help based on that information from you, whenever you have it ready.

    Regarding DSLite question, I will ask Ki to clarify that for you.

    Thanks and regards,
    Vamsi

  • Hi Vamsi,

    As of now, I can tell that this is not a flashing error
    Error says that the flash tool is not able to load the flash tool's code in the RAM.

    Thank you for confirmation that it stuck on initial phase even before it touch flash or OTP.

    I was concerned about the problem because:

    • I used all components from Texas Intruments: CPU, JTAG, DSLite, but
    • calling DSLite not always succeded although I did everythink in normal way.
    • I need to program and secure a lot of cpu boards,
    • I will change OTP in this process, so retry may not be trivial or even possible.

    I did not isolate the error, so I don't know if it is on CPU or JTAG site. Next time I will try to do more experiments and logging as you suggested.

    Regards,

    Piotr Romaniuk

  • Is debug server (i.e. DSLite) also written in Node Webkit?

    That is correct. 

  • Hi Piotr,

    Can I close this post for now?  You can open a new post for any new questions you may have when you get more information from your experiments.

    Thanks and regards,

    Vamsi

  • Yes. Please.

    Regards,

    Piotr Romaniuk