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.

RTOS/TMS320C6657: Flashing external SPI-NOR on C6657 EVM

Part Number: TMS320C6657

Tool/software: TI-RTOS

Dear Community,

i have a strange behavior on my C6657 EVM.

I Load a .bin.File to the external SPI-NOR via NOR-Writer and all works fine.

Then i integrated parts of this NOR-Writer to my application and load the new binary over ethernet.

I checked the transmitted Binary (Byteswap ok, length ok, Data ok).

The Bin-File is then programmed and verified normally to the external SPI-NOR.

After POR i see normal Information over UART for debugging, but also that Funktion Task_Create() fails. (This does not happens if i use the Nor-writer standalone).

Are there any hints where to look for?

Many thanks in advance for any suggestion.

Regards Martin 

  • I've forwarded your query to the software experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Many Thanks Tsvetolin.
    further information:
    We programmed the SPI-NOR with the NOR-Writer-Utility and checked again the content of the .bin file via our application. The content is the same. So there has to be something else.
    BR
    Martin
  • Martin,

    Based on your description, it appears that even when you boot after programming flash by fetching it from Ethernet the device boots the application but fails in task create, is that correct? Are you doing a full power on reset to boot the device after the application has been written to flash. Sometimes if there is heap or variables that are not initialized correctly you may have different results. You can load symbols using emulator and CCS and see if they correlate correctly with the code loaded on the device.

    After the application has booted by RBL and before Task Create API can you put a spinlock so that you can connect and see what is causing the failure.

    Regards,
    Rahul
  • Many Thanks for your Answers Rahul,

    Q:Based on your description, it appears that even when you boot after programming flash by fetching it from Ethernet the device boots the application but fails in task create, is that correct?

    A: Yes that is correct

    Q:  Are you doing a full power on reset to boot the device after the application has been written to flash.

    A: yes we did a POR

    Q:After the application has booted by RBL and before Task Create API can you put a spinlock so that you can connect and see what is causing the failure

    A: i will post results here.

    Additional Information: Rarely the system halted on IBL: Booting from NOR

    Also i compiled with

    memset(&p_init_flags, 1, sizeof(platform_init_flags));

     The Sytem always halted on IBL: Booting from NOR.

    Rahul please where can i find information for the Errorblock, i believe with this errorblock i can get additional information.

    Many thanks in advance

    BR

    Martin

  • I have additional information:
    If i debug my application with NO-Boot Settings and have the Flag PLL set for PlatformInit() then
    further calls to xmc_setup() lead to nowhere. i can't step to CSL_XMC_setXMPAXH().

    if i do not set the pll-Flag i am able to step through all code (CSL_XMC_setXMPAXH()+CSL_XMC_setXMPAXL().
    are there any information i am missing?
    Many thx in advance
    BR
    Martin
  • Hello 

    Ok i found out that the bin-File is not transmitted correctly to the DSP.

    I use Byte array for storing the transmitted data and concatenate the datastring manual.

    instead of 0x3d there is a 0x00 @the byte position of the receive buffer. And always at that position.

    I made the following tests:

    - took another bin-file, and i got the right data OK

    - checked that 0x3d is transmitted elsewhere from the bin-file, OK

    - Wrote Test for RAM-Datacheck OK

    - Observed transmitted data with Wireshark OK

    The receiveBuffer is declard as follows:

    in app.cfg i have:
    Program.sectMap[".far:rcvbuf"] = "MSMCSRAM";

    in C-File i have:

    #pragma DATA_SECTION(rcvbuf,".far:rcvbuf"); #pragma DATA_ALIGN(buf,64); static char rcvbuf[1440];

    i also tried without alignment and without static.

    Are there any problem with Caching?

    Many thanks for any answers

    Best Regards 

    Martin

  • Same behavior with :

    #pragma DATA_SECTION(rcvbuf,".far:rcvbuf");
    #pragma DATA_ALIGN(rcvbuf,64);
    static char rcvbuf[1440];

    This only happen with the following ByteCombination:

    0x0F3D 

    neither with 0x0E3d nor with 0x0F2D

    BR Martin