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.

TMS320C6455 software reset

Other Parts Discussed in Thread: TMS320C6455, SYSBIOS

Hello!

I am trying to reset from software the TMS320C6455. I am using sysbios 6.31.04.27. From what i can see there is no instruction that would cause a reset. I then tried to activate the watchdog (on Timer 1) but from what i can see the watchdog only causes an event, NOT a reset.  I can't use the external reset pin because the layout of the board is already done. So do you have any idea how could i reset the DSP without any outside intervention? I have never seen a before a controller that i can reset only from hardware, so what's the big idea?

  • valenting,

    Please search the datasheet for the keyword: reset. You will find your options and what the differences are.

    In your code, you could branch to c_int00 (_c_int00 in assembly) to perform a soft-reset. This is the C/C++ entry point, and is discussed in the Optimizing Compiler User's Guide.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

  • Hello Randy!

    Thank you for the swift answer! There is one more thing i am not sure of: what is the difference between branching to c_int00 and a reset issued by the reset pin?

    Let's say i am booting from I2C memory which holds a second stage bootloader , and this bootloader than reads the entire code from a FLASH memory on the EMIFA. In my code (from the parallel flash) i have a part that could rewrite the flash memory (basically reprogramming the flash) and than i would need to start running this new code. Is it enough to branch to c_int00 or do i need an actual hardware reset? I am pretty sure that branching to c_int00 will not cause the DSP to reread the boot config pins, but i don' t  mind that; what i am not sure of is whether branching to c_int00 will cause the DSP to reboot (i mean start again with reading the I2C memory and executing the second stage bootloader and than load from the parallel flash) because that is what i really want.

    Best regards!

    valentin

  • valentin,

    After your second stage bootloader has copied the entire code from the FLASH memory, it will branch to the entry point in the code. That entry point is normally _c_int00.

    Branching to _c_int00 assumes that the program code is loaded and correct and that all previous steps have been performed. Branching to _c_int00 does not do everything that a hardware reset does.

    No software solution is going to result in all of the hardware being reset as completely as the reset pin will do. Here is one possible method to do what you want to do are:

    Put a copy of your second stage bootloader into a part of the FLASH. When you want to load from the FLASH, branch to that second stage bootloader. It will copy the new code from FLASH and then brnach to the entry point, _c_int00.

    Regards,
    RandyP