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.

halt and check internal registers

Hello,

Is it possible to halt the 5502 dsp while it's running and to check the internal registers with a XDS100V2 without reloading the program and jump to main()?

I would like to check the status of the bootloader/memory during the bootload process

I am using CCS5 and a custom board.

Thanks

  • Device executes bootloader program from on-chip ROM right after the device comes out of reset. JTAG connection is not available until the bootloader execution finished.

  • Thanks for the quick reply.

    I guess I will need some helps from you guys then: 

    http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/109/p/204602/734901.aspx#734901

    Are you aware of that problem?

    thanks

  • I have not used the 5502, but I have traced through the bootloader process on the C5506.

    With the XDS100 attached, you should be able to issue a Reset command. This will bring the 5502 to it's initial state. You can then step through the ROM bootloader code as it does its thing. You cannot use software breakpoints because you are running from ROM, but I believe you can use some hardware breakpoint features. It's been a while, so I cannot remember. If you have patience to wait through all of the various timing loops involved in the bootloader, you should be able to debug whatever situation is causing you trouble.

    I know that I learned a great deal about the C5506 bootloader by using Code Composer Studio 3 and 4 to step through the code. I displayed most registers in a window where I could watch for changes, but be warned that some register reads trigger changes when accessed, so you cannot display these registers in CCS without changing the execution results. As long as you do not access any of these registers, the code should execute exactly the same in the debugger as it does when the bootloader is running full speed.

  • Thanks a lot Brian. It actually really makes sense as I remember a "Reset when loading program" option in CCS. 

    I am really glad that you mentioned that, thanks I will try this out. 

    I really feel like TI people don't give a damn about our problems though.

    All the best

  • I want to clarify: There is a Reset command that works without loading a program. It simply asserts the Reset line on the JTAG connector. You do not want to load a program because the bootloader runs from ROM, and I'm fairly certain that the source code and symbols are not available for that. Just step through the assembly, taking the opportunity to learn more about TMS320 assembly, and research all of the register settings as they occur. You should be able to debug the problem you're having, although it will probably be painstaking.