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: CLI uniflash package 8.8.1 does not recognize FlashEraseSelection setting

Part Number: TMS320F28379D
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

Hi,

DSLite from UniFlash 8.8.1 does not support FlashEraseSelection setting as previous version (from 8.2.0) did.

log from DSLite running:

Executing: /home/pi/uniflash_linux/ccs_base/DebugServer/bin/DSLite flash -c /home/pi/uniflash/f28379d.ccxml -l /home/pi/uniflash/generated.ufsettings -s VerifyAfterProgramLoad="No verification" -e -f -v "/mnt/programator/Bootloader_cpu01-part2.hex"
DSLite version 12.8.0.3522
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
GEL Expression: OnTargetConnect()
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.
Failed: Unknown Property: FlashEraseSelection

generated.settings file:

{"Texas Instruments XDS110 USB Debug Probe/C28xx_CPU1":{"FlashEraseSelection":"Necessary Sectors Only (for Program Load)"},"Texas Instruments XDS110 USB Debug Probe/C28xx_CPU2":{"FlashEraseSelection":"Necessary Sectors Only (for Program Load)"}}

f28379d.ccxml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
        <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
        <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
            <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds510c28x.xml" id="drivers" xml="tixds510c28x.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds510cla1.xml" id="drivers" xml="tixds510cla1.xml" xmlpath="drivers"/>
            <instance XML_version="1.2" href="drivers/tixds510cs_child.xml" id="drivers" xml="tixds510cs_child.xml" xmlpath="drivers"/>
            <property Type="choicelist" Value="1" id="Power Selection">
                <choice Name="Probe supplied power" value="1">
                    <property Type="stringfield" Value="3.3V" id="Voltage Level"/>
                    <property Type="choicelist" Value="1" id="Power Isolation"/>
                </choice>
            </property>
            <property Type="choicelist" Value="1" id="The JTAG TCLK Frequency (MHz)">
                <choice Name="Fixed with user specified value" value="SPECIFIC">
                    <property Type="stringfield" Value="3.0MHz" id="-- Enter a value from 100.0kHz to 2.5MHz"/>
                </choice>
            </property>
            <platform XML_version="1.2" id="platform_0">
                <instance XML_version="1.2" desc="TMS320F28379D_0" href="devices/f28379d.xml" id="TMS320F28379D_0" xml="f28379d.xml" xmlpath="devices"/>
                <device HW_revision="1" XML_version="1.2" description="" id="TMS320F28379D_0" partnum="TMS320F28379D" simulation="no">
                    <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C router" id="IcePick_C_0" isa="ICEPICK_C">
                        <subpath id="Subpath_1">
                            <property Type="numericfield" Value="0x11" desc="Port Number_0" id="Port Number"/>
                        </subpath>
                    </router>
                </device>
            </platform>
        </connection>
    </configuration>
</configurations>

It is very critical, because it does not allow programming memories in parts (flash, otp) because it erases all sectors.

I installed uniflash 8.8.1 on linux (ubuntu 24.04).
I selected the options and jtag emulator type and generated package with command line tools.
Unfortunately DSLite is not working properly.

Regards,

Piotr Romaniuk

  • Hi Piotr,

    Thank you for the logs and file. I will be taking a look at this tomorrow.

    Thanks

    ki

  • I have tried reproducing this on a variety of machines including WIndows 10, Ubuntu 22.04, and Ubuntu 24.04 (which is not officially supported by UniFlash). All my generated standalone packages with FlashEraseSelection being used did not cause any issue. They have all been successful.

    Would it be possible to share your standalone package?

  • Hi Ki,

    I isolated the problem. 

    I have configuration file generated in CCS (I needed power supply for JTAG isolation adapter). When I use my f28379d.ccxml file the error appears. 
    f28379d.ccxml from the uniflash generated package works fine.

    I executed following command line (f28379d.ccxml - is one of two versions listed below):

    sudo ccs_base/DebugServer/bin/DSLite flash -c f28379d.ccxml -l user_files/settings/generated.ufsettings -s VerifyAfterProgramLoad=No verification -e -f -v user_files/images/Bootloader_cpu02-part2.hex -n 2
    

    My f28379d.ccxml from CCS:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
                        
    
    
    
        
        <configuration XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
                    
            <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe_0" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe_0" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
                    
            <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe_0">
                            
                <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
                            
                <instance XML_version="1.2" href="drivers/tixds510c28x.xml" id="drivers" xml="tixds510c28x.xml" xmlpath="drivers"/>
                            
                <instance XML_version="1.2" href="drivers/tixds510cla1.xml" id="drivers" xml="tixds510cla1.xml" xmlpath="drivers"/>
                            
                <instance XML_version="1.2" href="drivers/tixds510cs_child.xml" id="drivers" xml="tixds510cs_child.xml" xmlpath="drivers"/>
                            
                <property Type="choicelist" Value="1" id="Power Selection">
                    <choice Name="Probe supplied power" value="1">
                        <property Type="stringfield" Value="3.3V" id="Voltage Level"/>
                        <property Type="choicelist" Value="1" id="Power Isolation"/>
                    </choice>
                </property>
                <property Type="choicelist" Value="1" id="The JTAG TCLK Frequency (MHz)">
                    <choice Name="Fixed with user specified value" value="SPECIFIC">
                        <property Type="stringfield" Value="3.0MHz" id="-- Enter a value from 100.0kHz to 2.5MHz"/>
                    </choice>
                </property>
                <platform XML_version="1.2" id="platform_0">
                                    
                    <instance XML_version="1.2" desc="TMS320F28379D_0" href="devices/f28379d.xml" id="TMS320F28379D_0" xml="f28379d.xml" xmlpath="devices"/>
                                    
                    <device HW_revision="1" XML_version="1.2" description="" id="TMS320F28379D_0" partnum="TMS320F28379D" simulation="no">
                                            
                        <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C router" id="IcePick_C_0" isa="ICEPICK_C">
                                                    
                            <subpath id="Subpath_1">
                                                            
                                <property Type="numericfield" Value="0x11" desc="Port Number_0" id="Port Number"/>
                                                        
                            </subpath>
                                                
                        </router>
                                        
                    </device>
                                
                </platform>
                        
            </connection>
                
        </configuration>
        
    </configurations>
    

    f28379d.ccxml from uniflash:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="configuration_0">
            <instance XML_version="1.2" desc="Texas Instruments XDS110 USB Debug Probe" href="connections/TIXDS110_Connection.xml" id="Texas Instruments XDS110 USB Debug Probe" xml="TIXDS110_Connection.xml" xmlpath="connections"/>
            <connection XML_version="1.2" id="Texas Instruments XDS110 USB Debug Probe">
            	
            		   <instance XML_version="1.2" href="drivers/tixds510icepick_c.xml" id="drivers" xml="tixds510icepick_c.xml" xmlpath="drivers"/>
            	
            		   <instance XML_version="1.2" href="drivers/tixds510c28x.xml" id="drivers" xml="tixds510c28x.xml" xmlpath="drivers"/>
            	
            		   <instance XML_version="1.2" href="drivers/tixds510cla1.xml" id="drivers" xml="tixds510cla1.xml" xmlpath="drivers"/>
            	
            		   <instance XML_version="1.2" href="drivers/tixds510cs_child.xml" id="drivers" xml="tixds510cs_child.xml" xmlpath="drivers"/>
            	
                
                <platform XML_version="1.2" id="platform_0">
                    <instance XML_version="1.2" desc="TMS320F28379D" href="devices/f28379d.xml" id="TMS320F28379D" xml="f28379d.xml" xmlpath="devices"/>
                </platform>
            </connection>
        </configuration>
    </configurations>

    The error message was misleading.

    What is wrong with my ccxml file?

    Regards,

    Piotr Romaniuk

    PS
    I used following  generated.ufsettings:

    {"Texas Instruments XDS110 USB Debug Probe/C28xx_CPU1":{"FlashEraseSelection":"Necessary Sectors Only (for Program Load)"},"Texas Instruments XDS110 USB Debug Probe/C28xx_CPU2":{"FlashEraseSelection":"Necessary Sectors Only (for Program Load)"}}

  • I am currently using the F28379D LaunchPad with onboard XDS100. I will have to try an F2837xD setup using an XDS110. I will give this a try tomorrow.

  • The issue is a mismatch of the debug probe name in the settings file vs your custom ccxml file:

    settings: "Texas Instruments XDS110 USB Debug Probe"

    uniflash ccxml: "Texas Instruments XDS110 USB Debug Probe"

    custom ccxml: "Texas Instruments XDS110 USB Debug Probe_0"

    I suspect that you generated the command-line package using the default ccxml file generated by UniFlash and then swapped in your custom one afterwards? Assuming that is the case, you should instead specify your custom ccxml file to open the UniFlash session and then generate the standalone package. This would make sure the debug probe names match across all the files.

    Thanks

    ki

  • Hi Ki,

    I suspect that you generated the command-line package using the default ccxml file generated by UniFlash and then swapped in your custom one afterwards?

    Yes. The file generated.ufsettings was from uniflash generated package, and .ccxml was taken from CCS. I was not aware that it is needed for proper (consistent) settings creation. 

    Assuming that is the case, you should instead specify your custom ccxml file to open the UniFlash session and then generate the standalone package. This would make sure the debug probe names match across all the files

    Thank you for the suggestion.
    I had limited control over GUI flash it was very slow in previous version. I see that new version (8.8.1) works fine - it is usable and responsive.
    I will remember that ccxml should be entered into uniflash at the begining of the session.

    Thank you for the solution.

    Regards,

    Piotr Romaniuk



  • I see that new version (8.8.1) works fine - it is usable and responsive.

    That is good to hear! Thanks for this feedback.