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.

TMS320C28346: TMS320C28346 only runs on emulator

Part Number: TMS320C28346

HI,

I have designed a system using a TMS320C28346 processor (ram only no flash) which is booted from a second processor (PIC).

When i emulate the TMS using a jtag emulator, everything works correctly. However, if i compile for code using HEX2000 for boot by SCI and then boot the TMS from the PIC the TMS will not run correctly.

When i say the TMS will not run correctly, the TMS is running and i can communicate with it using the SCI port and control some of the features of the code, but some features (It would seem to be port related) do not work. It appears that the ports are not being correctly initialised when booted from the SCI port but are ok when run from JTAG.

If i emulate the TMS and then stop emulating and remove the emulator and then reboot from the PIC (without power down) the TMS works correctly. If i power down and then reboot, only some aspects of the TMS appear to work. I have modified the code to try and see what is working and what is not and it appears that the boot loader is working correctly (every byte is echoed back etc.).

It would appear that either the memory is not being programmed correctly (i think this is very unlikely as the processor is running code and not crashing) or the JTAG emulator automatically sets something in the background which is required for code execution. Im thinking EALLOW is missing but the JATG overrules this. Obviously, i have tried to check all the code for the obvious things like EALLOW but cant resolve the issue.

The emulator is a XDS510USB Plus.

Anyone have any ideas?

Thanks

Chris

  • Hi Chris,

    My guess here is that when you load code via JTAG, the JTAG emulator is initializing some variables, memory, or constants for you. When you bootload via the SCI the code is correctly scanned in, but some data is not initialized.

    As a first-pass debug, are there any constants or variable initializations that could cause the observed code malfunctions? As a quick patch you can create some initialization code that explicitly initializes your variables/data (it should definitely be possible to setup the linker such that everything is automatically initialized...we can get to that if this is confirmed to be the issue).
  • Chris,

    Did you 1st confirm whether you are entering SCI boot mode in standalone mode? If not, that is the first step.

    Also, SCI boot mode will fail if you send don't send 0xAA 0x08 as 1st and 2nd byte respectively.

    Regards,
    Manoj
  • Chris,

    Is this issue resolved? Can we close this thread?

    Regards,
    Manoj