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.

Boot from SD Card on C5505 with code/data in EMIF_CS3

I've run into a problem with the bootloader on the C5505. The application's size has exceeded the space available in SARAM and DARAM, with SARAM31 not being used. When some of the code is moved into EMIF_CS3, the application will boot from CCS only if a previous working version of the application is on the SD card. If the current version of the application is loaded onto the SD card, it will fail to start and all my attempts to boot from CCS or connect to the C5505 for debugging are denied with

C55xx: Error connecting to the target: (Error -1143 @ 0x5F) Device core was hung. The debugger has forced the device to a ready state and recovered debug control, but your application's state is now corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.1.636.0)
C55xx: Trouble Writing Memory Block at 0xc00000 on Page 0 of Length 0x7ff0: (Error -1143 @ 0xC00004) Device core was hung. The debugger has forced the device to a ready state and recovered debug control, but your application's state is now corrupt. You should have limited access to memory and registers, but you may need to reset the device to debug further. (Emulation package 5.1.636.0)
C55xx: Trouble Reading Memory Block at 0xc00000 on Page 0 of Length 0x1: (Error -2130 @ 0xC00000) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.1.636.0)
C55xx: File Loader: Data verification failed at address 0x00C00000 Please verify target memory and memory map.
C55xx: GEL: File: C:\Projects\Security\NBA\Software\Project\GPS_OS\Debug\GPS_OS.out: a data verification error occurred, file load failed.

At this point CCS quits trying to boot the C5505. But, if I load a prior version that did correctly boot from the sd card onto the sd card and power cycle the board, it will immediately boot up the old application and also boot from CCS the current version of the application.


What causes the C5505 to not allow CSS to connect and boot an application when the sd card contains the same application after compilation, but does allow CSS to boot an application when the sd card contains an old version of the same application?

Is it possible to have code/data stored in the EMIF and still be able to correctly boot with that data stored there?

  • Bootloader can boot from NOR or NAND via EMIF. I have no idea about the SD/CCS behavior. Need more clues to proceed.
    Regards.
  • Perhaps to better clarify the question: when using the bootloader to boot from an SD Card, can the boot loader store code and data into the EMIF and then proceed to executing the application, or is the bootloader required to store all of the code and data that has been read from the SD Card into the SARAM and DARAM before proceeding to main?

    For the SD/CCS issue, is it possible to observe/attach the debugger the bootloader and identify what it is doing while it transfers the code/data to the SARAM and DARAM? Also, is it possible to verify if the bootloader actually loads the program from the SD Card? I realize this is the case when it boots up with the old application, but since the new application is not booting from the SD Card, I am wondering if it is finding the application or if it is skipping over it and going to the UART/USB loop.

  • I figured it out. In trying to debug the C5505, I misconfigured CCS somewhere that was causing it to no longer download and debug properly. I found it after testing it on another computer running CCS. After reloading older .cproject and .ccsproject files, CCS is able to download and debug correctly again.

    As for the code/data stored in EMIF part, I (meaning my coworker and I) reworked part of where the memory was stored at and now, with the fix to the project files, it is able to boot with data stored in the EMIF.

    Thanks for helping, Steve.