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.

Compiler/TMS320F28377D: How can test the the example " F2837xD_usb_flash_kernels"in Control suite?

Part Number: TMS320F28377D
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: TI C/C++ Compiler

When I used  TI serial_flash_programmer.exe to test  , it show unable open file, Why? And  how can I do?

  • I sure the F2837xD_sci_flash_kernels_cpu01.txt exist.
  • You need to point to the file properly in the command line. It can be an absolute path or it can be relative to where the .exe is being executed.

    sal
  • Yes,I let the .txt in an absolute path or relative to where the .exe in being executed. But it is the same, unable open the .txt
  • Yes when I used relative path .it can able open it, tkink you! But a new problem appear,see above.  Download fail. Why?

  • Once I have use 28335 fuction Flash_Erase(a,b) and Flash_Program(a,b,c,d) which Being located Flash2833x_API_Library.h to achieve online download.
    Does 28377D have Flash_Erase(a,b) and Flash_Program(a,b,c,d) fuction ?
  • i have the same question
  • Please add the -v command line argument for some more verbose printing.

    The first thing the serial flash programmer does is send an 'A' for an autobaud lock on the device. The device should return an 'A'. It appears that this is not occurring successfully.

    You need to ensure 1) that the device is properly booting to the SCI boot loader, and 2) that the host PC is sending data to the correct pins used by the bootloader.

    Note: that on the F2837xD controlCARD, the SCI 0 bootloader (default) pins are not muxed through the FTDI chip on the card to the micro-USB connector. The pins for SCI 1 bootloader are muxed to the connector.

    Hope this helps.

    sal
  • Think you for your help. Now, I can donwload one .txt successfully.  But donwload  two .txt failed.

    my command likethis: serial_flash_programmer.exe -d f2837xD -k application.txt -a crp_485DownLoad_V1.0_DSP1cpu1_Flash.txt -m F2837xD_sci_flash_kernels_cpu02.txt -n crp_485DownLoad_V1.0_DSP1cpu2_Flash.txt -p COM6 -b 9600

    And then will appear

    In order to realize  donwload   two .txt successful.. Can you tell me the ture steps? 

  • In the SCI flash kernel there is a line of code which calls SCI_boot() I believe. It has a parameter which specifies which SCI pins to use. You likely need to change that line of code to use the ALTERNATE SCI pin option. So you need to change the parameter and recompile the kernel.

    After you recompile the kernel, grab the new kernel.txt file and use that.

    Regards,
    sal
  • When I download two .txt like this:

    serial_flash_programmer.exe -d f2837xD -k F2837xD_sci_flash_kernels_cpu01.txt -a led_flash_cpu01.txt -m F2837xD_sci_flash_kernels_cpu02.txt -n led_flash_cpu02.txt -p COM10 -b 9600

    the led_flash_cpu01.txt and led_flash_cpu02.txt are download successfully.

    The F2837xD_sci_flash_kernels_cpu01.txt and F2837xD_sci_flash_kernels_cpu02.txt are located ti\controlSUITE\device_support \~Utilities serial_flash_programmer\f2837xD_fw_upgrade_example.

    But when I used the F2837xD_sci_flash_kernels_cpu02.txt flie which produce by example which produce by example F2837xD_sci_flash_kernels_cpu02 from controlSUITE.

    Also the command like this: serial_flash_programmer.exe -d f2837xD -k F2837xD_sci_flash_kernels_cpu01.txt -a led_flash_cpu01.txt -m F2837xD_sci_flash_kernels_cpu02.txt -n led_flash_cpu02.txt -p COM10 -b 9600

    But failed. I can see the process, download F2837xD_sci_flash_kernels_cpu01.txt successful, and then I choose the command 1-DFU CPU1, and I can see download led_flash_cpu01.txt successful.when I choose the command 14-Reset CPU1 and Boot CPU2, I can see download date, in the end, the will come like this,

    The only difference is the F2837xD_sci_flash_kernels_cpu02 from the project example F2837xD_sci_flash_kernels_cpu02.      

    This is why?

  • The one that is released is built from the example. I am not sure what the issue could be.

    Perhaps try the latest one in C2000Ware.

    Regards,
    sal
  • Hi sal,
    I found that the process stopped at below:

        

    Before do this it has already  let  Flash0EccRegs.ECC_ENABLE.bit.ENABLE = 0x0; 

    Also,We have already check up according to  Seventeenth, http://processors.wiki.ti.com/index.php/C2000_Flash_FAQ#Flash_API_wiki

    What is your suggestion?

  • That is strange.

    Can you try running the flash programming example in C2000Ware? It will call the Flash API. See if this is functional first.

    Regards,
    sal
  • yes,we have try the example in c2000ware,it can't work also.

  • After run the Fapi_setActiveFlashBank(Fapi_FlashBank0); the program get into the ILLEGAL_ISR.
    I test like this
    interrupt void ILLEGAL_ISR(void)
    {
    //
    // Insert ISR Code here
    //

    //
    // Next two lines for debug only to halt the processor here
    // Remove after inserting ISR Code
    //
    GpioDataRegs.GPDSET.bit.GPIO114=1;
    DELAY_US(10000);
    asm (" ESTOP0");
    for(;;);
    }
  • Since you know where the issue is, you can see what opcodes it is trying to execute which is creating the illegal opcode ISR.

    I have not experienced this before with the kernel. Perhaps something is not getting loaded properly.

    Make sure that the code that is getting fetched to be executed has been programmed correctly.

    Hope this help.

    Have you tried the kernel in C2000Ware?

    sal