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.

TMS320F28377D: Uniflash batch file programming verification fails

Part Number: TMS320F28377D
Other Parts Discussed in Thread: UNIFLASH,

Hello 

I have a customer using the uniflash batch command tool to program the TMS320F28377D DSP. 

It has been observed that validation fails when using the flash (-f) and verify (-v) commands together in the same command.

However, issuing a flash command and THEN a separate verify command seems to work as expected. 

What is the recommended way of validating an image after it has been programmed? Is there a way to do this in one dslite.bat command, or should validating always be done in a separate command after flashing?

Regards,

Munan

  • Hi Munan,

    Glad that customer is able to verify after the program command.

    Please note that the standalone verify (-v) option is a debugger verify feature, which does not invoke Flash/DCSM initialization algos - Hence, may fail to read the Flash content.

    I need few more details to analyze the failing case further:

    1) What is the version of UniFlash in which customer noticed this behavior?

    2) Could you provide the CLI program that showed this behavior? If you don't want to attach it here, you can email me.

    3) Could you send the verbose output in both failing and passing cases?

    Thanks and regards,

    Vamsi

  • Hi Vamsi,

    1. Uniflash version 5.1.0
    2. I'm not sure what you mean here, do you mean the dslite.bat file itself? I don't have it but I can ask.
    3.  Log output below for failing case. 

    # ./dslite.bat -c user_files/uniflash_windows_64/user_files/configs/tms320f28377d.ccxml -n 0 -l user_files/uniflash_windows_64/user_files/settings/generated.ufsettings -e -f -v user_files/uniflash_windows_64/user_files/images/img.out -r 1

    Executing the following command:

    > "C:\ti\uniflash_5.1.0\deskdb\content\TICloudAgent\win\ccs_base\DebugServer\bin\DSLite" flash -c user_files/uniflash_windows_64/user_files/configs/tms320f28377d.ccxml -n 0 -l user_files/uniflash_windows_64/user_files/settings/generated.ufsettings -e -f -v user_files/uniflash_windows_64/user_files/images/img.out -r 1

     

    For more details and examples, please refer to the UniFlash Quick Start guide.

     

    DSLite version 9.2.0.1723

    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/uniflash_windows_64/user_files/images/img.out

            Preparing ...

            codestart: 0 of 4 at 0x80000

    Erasing Flash

            Erasing Bank 0, Sector A

            Erasing Bank 0, Sector B: 6%

            Erasing Bank 0, Sector C: 13%

            Erasing Bank 0, Sector D: 20%

            Erasing Bank 0, Sector E: 26%

            Erasing Bank 0, Sector F: 33%

            Erasing Bank 0, Sector G: 40%

            Erasing Bank 0, Sector H: 46%

            Erasing Bank 0, Sector I: 53%

            Erasing Bank 0, Sector J: 60%

            Erasing Bank 0, Sector K: 66%

            Erasing Bank 0, Sector L: 73%

            Erasing Bank 0, Sector M: 80%

            Erasing Bank 0, Sector N: 86%

            sys_entry: 0 of 16 at 0x84000

            crc_addr: 0 of 4 at 0x84010

            Cla1Prog: 0 of 8168 at 0x84018

            .text: 8 of 116008 at 0x8500c: 4%

            .text: 65512 of 116008 at 0x8500c: 38%

            phyRamFuncs: 0 of 12200 at 0x932a0: 64%

            sunPhyTable: 8 of 4680 at 0x94a74: 71%

            twiddleFactors: 0 of 4064 at 0x95398: 73%

            secureRamFuncs: 0 of 2696 at 0x95b88: 75%

            flashApi: 8 of 2562 at 0x960cc: 77%

            ramfuncs: 0 of 336 at 0x965d0: 78%

            isrRamFuncs: 0 of 112 at 0x96678: 78%

            .econst: 0 of 9104 at 0x966b0: 78%

            .cinit: 0 of 7632 at 0x97878: 83%

            .gaussianFilterTables: 0 of 320 at 0x98760: 87%

            .switch: 0 of 192 at 0x98800: 87%

            .const: 0 of 8 at 0x98860: 87%

            crc_val: 0 of 4 at 0xafffe: 87%

            .pathmetrics_pong: 0 of 16 at 0xbde0: 87%

            .ebss: 0 of 23020 at 0xc000: 87%

            .pathmetrics_ping: 0 of 16 at 0x117d4: 99%

            Finished: 99%

            Setting PC to entry point.: 99%

    Verifying Program: user_files/uniflash_windows_64/user_files/images/img.out

            Preparing ...

            codestart: 0 of 4 at 0x80000

            sys_entry: 0 of 16 at 0x84000

            crc_addr: 0 of 4 at 0x84010

            Cla1Prog: 0 of 8168 at 0x84018

            .text: 8 of 116008 at 0x8500c: 4%

            .text: 65512 of 116008 at 0x8500c: 38%

            phyRamFuncs: 0 of 12200 at 0x932a0: 64%

            sunPhyTable: 8 of 4680 at 0x94a74: 71%

            twiddleFactors: 0 of 4064 at 0x95398: 73%

            secureRamFuncs: 0 of 2696 at 0x95b88: 75%

            flashApi: 8 of 2562 at 0x960cc: 77%

            ramfuncs: 0 of 336 at 0x965d0: 78%

            isrRamFuncs: 0 of 112 at 0x96678: 78%

            .econst: 0 of 9104 at 0x966b0: 78%

            .cinit: 0 of 7632 at 0x97878: 83%

            .gaussianFilterTables: 0 of 320 at 0x98760: 87%

            .switch: 0 of 192 at 0x98800: 87%

            .const: 0 of 8 at 0x98860: 87%

            crc_val: 0 of 4 at 0xafffe: 87%

            .pathmetrics_pong: 0 of 16 at 0xbde0: 87%

            .ebss: 0 of 23020 at 0xc000: 87%

    error: C28xx_CPU1: File Loader: Verification failed: Values at address 0x0000C0F2@Data do not match Please verify target memory and memory map.

            Finished: 87%

    Failed: File: user_files/uniflash_windows_64/user_files/images/img.out: a data verification error occurred, file load failed.

  • Hi Munan,

    Error log says that data verification failed at RAM address 0x0000C0F2.

    Do they have anything mapped to RAM in the linker cmd file?  

    As you may know, UniFlash (like any Flash programming tool) is designed for fully embedded flash applications.  All initialized sections in the application should be mapped to Flash only.  If needed, application can copy needed content from Flash to RAM at runtime as needed.  UniFlash does not guarantee loading contents to RAM.

    Thanks and regards,
    Vamsi

  • Hi Munan,

    Can you respond to Vamsi's last question below?

    Vamsi Gudivada said:
    Do they have anything mapped to RAM in the linker cmd file?  

    Thanks

    ki

  • Munan,

    Since the customer is working with us offline and did not hear further on this, I am assuming that this issue is closed.

    If you have further questions on this, you can reply to this post.  If the thread gets locked, you can use the "Ask a related question" button at the top right corner of this page to post further questions that you have on this topic.

    Thanks and regards,

    Vamsi