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.

UNIFLASH: Limiting range for verification of memory range with TMS570XXX

Part Number: UNIFLASH

I'm using the CLI version of Uniflash with a XDS110 to program our products (TMS570LS033X based) in a production line environment. 

This works quite well so far, however a recent change has been made, where additional data for the product is stored into the Bank 7 Sector 3 area of the MCU memory (this is stored by FW commands and not through JTAG).

I want to exclude this area from programming, erasing and verification during the programming cycle. 

I have managed to exclude it from programming and erasing with the range setting 

{"FlashRangeToggle":true,"FlashRangeAddr":"0x0000000-0x0003FFFF,0xF0200000-0xF0202FFF"}

This however still creates an error for the verification part, were the area the serial number is programmed to causes a failure of the verification. 

My problem is that I have to erase the chip after having run HW verification on the product, and program an end-user FW. Similar, if a second test has to be run in case errors are found in the initial run, the board will already have the the additional data stored, and therefore fail the verification. 

I'm aware that the smart move would be to program this additional data to the OTP area, but that was not the decision that was taken, and it is not a possibility to change this. 

Best Regards,

Henrik Dam

Uniflash output: 

DSLite version 9.2.0.1723 
Configuring Debugger (may take a few minutes on first launch)... 
 Initializing Register Database... 
 Initializing: IcePick 
 Executing Startup Scripts: IcePick 
 Initializing: Dap 
 Executing Startup Scripts: Dap 
 Initializing: CortexR4 
 Executing Startup Scripts: CortexR4 
Connecting... 
CortexR4: GEL Output:  Memory Map Setup for Flash @ Address 0x0Loading Program: Multiple Files 
 Preparing ...  
CortexR4: GEL Output:  Memory Map Setup for Flash @ Address 0x0 due to System Reset 
 0 of 40960 at 0x0 
Erasing Flash 
 Erasing Bank 0, Sector 0 
 Erasing Bank 0, Sector 1: 5% 
 Erasing Bank 0, Sector 2: 10% 
 Erasing Bank 0, Sector 3: 15% 
 Erasing Bank 0, Sector 4: 20% 
 Erasing Bank 0, Sector 5: 25% 
 Erasing Bank 0, Sector 6: 30% 
 Erasing Bank 0, Sector 7: 35% 
 Erasing Bank 0, Sector 8: 40% 
 Erasing Bank 0, Sector 9: 45% 
 Erasing Bank 0, Sector 10: 50% 
 Erasing Bank 0, Sector 11: 55% 
 Erasing Bank 0, Sector 12: 60% 
 Erasing Bank 0, Sector 13: 65% 
 Erasing Bank 7, Sector 0: 75% 
 Erasing Bank 7, Sector 1: 80% 
 Erasing Bank 7, Sector 2: 85% 
 32752 of 40960 at 0x0: 12% 
 0 of 200352 at 0xa000: 15% 
 32752 of 200352 at 0xa000: 28% 
 65504 of 200352 at 0xa000: 41% 
 98256 of 200352 at 0xa000: 53% 
 131008 of 200352 at 0xa000: 66% 
 163760 of 200352 at 0xa000: 79% 
 196512 of 200352 at 0xa000: 92% 
 0 of 288 at 0x3fee0: 93% 
 0 of 16384 at 0xf0200000: 93% 
 Finished: 93% 
CortexR4: GEL Output:  Memory Map Setup for Flash @ Address 0x0 due to System Reset 
 Setting PC to entry point.: 93% 
Verifying Program: Multiple Files 
 Preparing ...  
 0 of 40960 at 0x0 
 32752 of 40960 at 0x0: 12% 
 0 of 200352 at 0xa000: 15% 
 32752 of 200352 at 0xa000: 28% 
 65504 of 200352 at 0xa000: 41% 
 98256 of 200352 at 0xa000: 53% 
 131008 of 200352 at 0xa000: 66% 
 163760 of 200352 at 0xa000: 79% 
 196512 of 200352 at 0xa000: 92% 
 0 of 288 at 0x3fee0: 93% 
 0 of 16384 at 0xf0200000: 93% 
error: CortexR4: File Loader: Verification failed: Values at address 0xF0203000 do not match Please verify target memory and memory map. 
 Finished: 93% 
Failed: File: Multiple Files: a data verification error occurred, file load failed. 

 

Configuration file: 

<?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/tixds510cs_dap.xml" id="drivers" xml="tixds510cs_dap.xml" xmlpath="drivers"/>                              <instance XML_version="1.2" href="drivers/tixds510cortexR.xml" id="drivers" xml="tixds510cortexR.xml" xmlpath="drivers"/>                                  <platform XML_version="1.2" id="platform_0">                <instance XML_version="1.2" desc="TMS570LS033x" href="devices/tms570ls033x.xml" id="TMS570LS033x" xml="tms570ls033x.xml" xmlpath="devices"/>            </platform>        </connection>    </configuration></configurations>  

Settingsfile: {"Texas Instruments XDS110 USB Debug Probe/CortexR4":{"FlashRangeToggle":true,"FlashRangeAddr":"0x0000000-0x0003FFFF,0xF0200000-0xF0202FFF"}}

  • Hello,

    I'll need to follow up with engineering. I will pass on any updates as I receive them.

    Thanks

    ki 

  • I have found part of the reason this fails now.

    The HEX file I'm programming to the BANK 7 area is 16kb, with the last 4kb being all zero.

    When programming this 16kb file into 12kb of space, if I don't include the empty space the program runs, however the verification fails, since there is part of the file that is expected to be programmed outside the area set by the range function. 

    I would have expected this to maybe have the programming shown an error, which is probably what sent me down the wrong path, but I guess it kind of make sense.

    Now I'm trying to figure out how to fix my HEX files...

    Best regards,

    Henrik