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.

TMDSCNCD28388D: Capacity limit for firmware update

Guru 15160 points

Part Number: TMDSCNCD28388D
Other Parts Discussed in Thread: C2000WARE

Hi,

The flash is being updated using the Serial Flash Programmer.

The CPU2 and CM application code has a small capacity, so it can be written normally.

However, CPU1 has a large amount of application code, so an error occurs.

Is there a countermeasure?

 

The following is the error content.
----------
> Bit rate / s of transfer was: 7090.466797 SUCCESS of Command ERROR
> Status: PROGRAM_ERROR ERROR Address: 0x91ffe Flash API Error:
> Incorrect Data Buffer Length Please refer to the Flash API
> documentation for further explanation of the error.
> FMSTAT Register contents: 00
>
> What operation do you want to perform?
> 1-DFU CPU1
> 2-DFU CPU2
-----------

Thanks,

  • Hi,

    Do you have size of the application code that you need to program? Looks like code size is bigger than the Flash sector size.


    What do you mean by countermeasure? Sorry did not get your question.


    Best Regards,

    Nirav

  • Koki,

    Can you check whether or not the sections in the linker cmd file are aligned on 128-bit boundary? You can use ALIGN (8) to align the sections.

    Thanks and regards,

    Vamsi

  • Koki,

    Can I consider this post as closed?  Or do you have further questions related to this thread?

    Thanks and regards,

    Vamsi 

  • Hi,Vamsi 

    Currently, if ALIGN (8) is described in the linker file, the ROM image for CM cannot be written normally.

    (ERROR Status: PROGRAM_ERROR, ERROR Address: 0x207e28, Flash API Error; Incorrect Data Buffer Length)

    Unless it is described in ALIGN (16) in the linker command file, it will not end normally.

    Also, I compiled and ran the source code provided by ti, but could not communicate normally. Specifically, the image for CPU1 and CPU2 could be transferred to the end, but the application image for CM could not be transferred. It is stopped with a checksum error.
    After sending BlockSize (2 bytes) and destAddr (4 bytes) from the ROM image, I am trying to send 128 times by sending 2 bytes each, but I have received the reply data for the checksum on the way, and that is Due to the cause, the checksum at the time of sending 128 times did not match and it could not be continued and it ended.


    You can transfer the image file for CM to the end by executing it with the compiled serial_flash_programmer.exe.
    I am using the following code.
    C: \ ti \ c2000 \ C2000Ware_4_00_00_00 \ utilities \ flash_programmers \ serial_flash_programmer

    Compiling with VisualStudio2012 (V120).

    If you have any questions, please let us know.

    Thanks,

  • Koki,

    ALIGN(16) is correct for the CM.

    I will ask our serial kernel expert to help you on the checksum question.

    Please expect a reply in couple of days from now.

    Thanks and regards,

    Vamsi

  • Koki, 

    Please check your friendship request, we can discuss via chat. 

    Thanks

    Anu