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: Is there any requirement to make the txt file based 8 Byte?

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Dears:

We check the kernel and txt file with CCS debugging step by step, and found the txt file through hex2000 is not based 8 Byte.

Is there any requirement to make the txt file based 8 Byte?

Pls. help!

  • Are you using the latest kernel in C2000Ware? I am not aware of the bug you are seeing, but it may have been fixed in a newer release.

    Regards,
    sal
  • HI Sal:
    I provide the detailed issue pictures and we confirm we use the latest kernel in C2000Ware.

    Picture of Copy of Flash failing.xlsx

    And pls. kindly help to check the order is OK?

    hex2000.exe -boot -sci8 -a -o CPU1.txt  CPU1.out


    Pls. help us.

  • It seems you are using the correct command line arguments.

    We use the below in the post build steps in the CCS projects.
    "${CG_TOOL_HEX}" "${BuildArtifactFileName}" -boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"

    That appears to be a strange error since the sizeof(miniBuffer) never changes.

    I will ask a flash expert to look at this.

    Regards,
    sal
  • Lian,

    For the flash application you are loading and programming, please ensure the flash linker command file is aligning the data to 64-bits ALIGN(4).

    Thanks,
    sal
  • Hi Sal:
    Could you kindly help to provide material about the flash linker command file is aligning the data to 64-bits ALIGN(4)?
  • Put ", ALIGN(4)" at the end of your section assignment.

    For example, Like this:

    .text : >>FLASH_BANK0_SEC1 | FLASH_BANK0_SEC2 | FLASH_BANK0_SEC3, PAGE = 0, ALIGN(4)

    Regards,
    sal
  • Dear Sal:

    We found the reason is the Flash address is 0x90002 and the address is not the multiple of 4, then the flash is failure.

    However, address of 0x90002 is the text section by dividing with Hex2000. 

    Since from map file the address of text section(program section) starts 0x80004, and the Length is 0x15195.

    But using hex2000 the text section is divided into two text sections.

    One is from 0x80004, and Length is 0xFFFF; the other is form  0x80004+0xFFFE=0x90002.

    Btw, the Length of 0xFFFF is the biggest length to send kernel's data under the txt format.

    Then the flash is failure.

    Can we set the Hex2000's reg to avoid dividing the two section, or other method to avoid happening the address is not the multiple of 4?

  • Hi Lian,

    Good catch. I am not sure how to do that. I recommend posting to the Code Generation Tools E2E forum. They may have some more information if you are not able to figure it out from the -h help command line prompt. Also, there should be some description of the command line arguments for the Hex2000 utility on the internet which may help.

    Regards,
    sal
  • Lian Wu said:

    But using hex2000 the text section is divided into two text sections.

    One is from 0x80004, and Length is 0xFFFF; the other is form  0x80004+0xFFFE=0x90002.

    I don't know why hex2000 does that.  I tried to reproduce it, and failed.  So that I can reproduce that behavior, please send me the linker command file, and the linker generated map file, from your build.  I think that will give me enough information to reproduce this behavior.

    Thanks and regards,

    -George

  • George Mock said:
    please send me the linker command file, and the linker generated map file

    Please put those files in a zip file, and attach that to your next post.  I should have mentioned this in my last post.

    Thanks and regards,

    -George