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.

TMS320F280039C: CPU couldn't get out of ESTOP after reset and restart

Part Number: TMS320F280039C
Other Parts Discussed in Thread: C2000WARE

Hi, 

I would like to know how flash_kernel_ex3_sci_flash_kernel works.
We reset the CPU by writing 0x5AFF1820 to 0xD00 and 0xFFFF41FF to 0xD04 in the debug screen of flash_kernel_ex3_sci_flash_kernel to perform an emulation boot.
When I tried to run again, CPU couldn't get out of ESTOP. Therefore, it is necessary to close the debug screen once and debug again. This phenomenon occurs even in the default code of importing flash_kernel_ex3_sci_flash_kernel from C2000Ware. Is there a way to avoid this phenomenon?

Thanks,

Conor

  • Hi Conor,

    It seems that by entering the entire value in boot table for emulation mode may be the issue (0x1820).

    First, you will need to go to Tools->Debugger Options ->Auto Run and Launch Options and uncheck the "On a program load or restart" box. This will stop the device from running to main on connect.

    Then, after loading the bootROM symbols (located at C:\ti\c2000\C2000Ware_4_03_00_00\libraries\boot_rom\f28003x\rev0\rom_sources\ccs_files\cpu\Release), it may ask to see where the cpubrom_Init_Boot.asm file is (C:\ti\c2000\C2000Ware_4_03_00_00\libraries\boot_rom\f28003x\rev0\rom_sources\F28003x_ROM\bootROM\source). Once located, at 0xD00, could you try putting the value 0xFFFF5AFF, then for the boot mode table location at 0xD04 placing the value 0x0041 to test SCI with GPIO8/9 pins?

    By pressing resume you will be able to get into the SCI portion for the boot ROM, where if paused will stop at SCI_lockAutobaud().

    For the flash_kernel_ex3_sci_flash_kernel, it first runs the SCI bootloader code before interacting with the host. Once the SCI host programmer sends the autobaud confirmation, it will then download the kernel to the device.

    Let me know if more is needed on this process. 

    Thanks and regards,

    Charles

  • Hi Charles,

    Switch to the debug screen with the SCI kernel and load symbols from the following after reset.
    F280039C\flash_kernel_ex3_sci_flash_kernel\CPU1_RAM\flash_kernel_ex3_sci_flash_kernel.out
    After loading and running the program using this procedure, it appears to be working fine, as shown in the screenshot below.

    However, if you switch to the debug screen with the SCI kernel without loading symbols and press restart after reset, the program cannot get out of ESTOP.

    I don't understand this difference.
    Why can't the program get the CPU out of his ESTOP when pressing restart after reset when not loading the symbols?

    Thanks,

    Conor

  • Hi Conor,

    By not loading the symbols, the program cannot get out of ESTOP because it has no reference when running the CPU, falling into ITRAP range.

    I also see in the image above at 0xD00 you have placed 0x5AFF. Is this not supposed to be 0xFFFF, followed by 0x5AFF at address 0xD01?

    Thanks and regards,

    Charles

  • Hi Charles,

    I would like to know the details because I do not understand the above. Other projects work fine after reset, but why does SCI kernel project fall into the ITRAP range after reset?

    By loading the symbols, it worked properly even after reset, so I will close this thread if the above reason is known.

    Thanks,

    Conor

  • Hi Conor,

    The SCI kernel project falls into the ITRAP range after reset because the loaded symbols do not stay in the flash memory. By resetting, the symbols loaded in RAM are erased. Boot rom cannot write to flash.

    I'll have some more time to look into this tomorrow.

    Thanks,

    Charles