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.

TMDSCNCD263P: Unable to Debug the SBL project in xSPI boot mode

Part Number: TMDSCNCD263P
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

I'm trying to execute the xSPI boot mode of my application code.

I took SBL project from SDK example boot project (sbl_ospi_multicore_elf project) and application code as RTI led blink. I complied both the projects and flashed the SBL.tiimage and ledblink.mcelf and ledblink.mcelf-xip file using uart_uniflash.py script and all commands executed and flashed successfully. Next i turned off power and changed boot DIP switched to xSPI boot mode and powered on the CC, i can see the SBL logs on terminal and application code logs as well and led is getting blinked on board. Everything looks fine till here

Now i want to debug the SBL code to understand how OSPI is getting initialized and XIP is running, for this i configured new target ccxml file as said in https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1374233/faq-am263p4-how-to-debug-xip-application-in-am263px?utm_source=chatgpt.com and loaded symbols only of ledblink.out file from led blink project and clicked cpu reset to start the debugging.

After pressing CPU reset button, code flow went to reset handler and later jumped directly to main() function of application instead of SBL main function why?

Can anyone explain this behavior and correct me if i'm doing things in wrong way.

Can anyone suggest how to debug SBL in xSPI boot mode, and how the code execute and how it flow in  xSPI boot mode ?

  • Hi Sanith,

    When the device powers on, the ROM code runs and loads up the SBL code by copying it into RAM from Flash memory. The SBL Code then executes and halts the application at main().

    If you want to debug the SBL's main() function, you can use the loop_forever() function inside the SBL's main, then re-build the SBL such that the SBL enters an infinite loop, set the loop variable to 0, then debug the SBL and application.

    Make sure to re-build and re-flash the updated SBL with the loop forever.

    Regards,
    Shaunak