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.

Compiler/TMS320C5535: ezDSP5535 bootloader with SD after a boot from flash

Part Number: TMS320C5535


Tool/software: TI C/C++ Compiler

Dear developers,


I'm having an issue with my eZDSP5535 board. I used to deal with the SD slot and the SD card to boot my program. Recently, I found the way to put my code directly into the flash memory. But since that day, I certainly modify the cmd file or some other registers and I can't run the program from the SD card agin.

My program is working when I put it in the flash memory but it doesn't start when I put it in the SD card. My aim is to put a breakpoint to debug future projects (with bootloader) but it's not possible to do it if the program is only in the flash.


When I try to load symbols only with CCS (V6), the PC get stuck in the bootloader (at the address 0XFF54B3). My IVPD and IVPH are both 0xFFFF because of the DSP hardware reset.

I deleted the GEL file from the build, I turn off the switch SW3 for SPI boot and the program get stuck in the bootloader from the SD card.
I didn't allocate program code to SARAM31 memory. You can see my CMD file attached to the thread.

Do you have any clue on what is happening with the SD card bootloader ? Why my code is working when it the code is put in the flash with the programmer and not with the SD card ?

Thank in advance.

-stack      0x1000   /* PRIMARY STACK SIZE    */
-sysstack   0x1000   /* SECONDARY STACK SIZE  */
-heap       0x2000   /* HEAP AREA SIZE        */




MEMORY
{
  PAGE 0:
    MMR     (RWIX)  : origin =  0000000h length = 0000c0h /* MMRs */
    DARAM_1 (RWIX)  : origin =  00000c0h length = 001f40h
    DARAM_2 (RWIX)  : origin =  0002000h length = 002000h
    DARAM_3 (RWIX)  : origin =  0004000h length = 002000h
    DARAM_4 (RWIX)  : origin =  0006000h length = 00A000h


    SARAM   (RWIX)  : origin = 010000h length =   03DE00h /* on-chip SARAM */
    VECS (RWIX)		: origin = 04DE00h, length = 000200h
    SARAM3 (RWIX)	: origin = 04E000h, length =  002000h

}


SECTIONS
{

	vectors (NOLOAD)
    .bss        : > DARAM_1
    .vector      : > DARAM_4      ALIGN = 256
    .stack      : > DARAM_1
    .sysstack   : > DARAM_4
	.sysmem 	: > DARAM_2
    .text       : > SARAM
    .data       : > DARAM_4
	.cinit 		: > DARAM_3
	.const 		: > DARAM_3
	.cio		: > DARAM_3
	.usect   	: > DARAM_3
	.switch     : > DARAM_3

	/* --- MY DEFINITIONS --- */

	DMA_IN		 : > DARAM_4
	OverlapIN	 : > DARAM_3
	DMA_OUT		 : > DARAM_4
	OverlapOUT	 : > DARAM_3

//Processing
	BuffR        : > DARAM_3

// HWAFFT
    cmplxBuf 	: > DARAM_4
    brBuf    	: > DARAM_4
    tmpBuf   	: > DARAM_4

// FFT
    Real         : > DARAM_4
	Imag   	     : > DARAM_4
	Magnitude	 : > DARAM_4
	FFTA_2		 : > DARAM_4

// Window
    Hanning  	 : > SARAM
	PonderationA : > SARAM


	.fftcode : {} > SARAM PAGE 0		 /* FFT-specific sections  */
	.test    : {} > DARAM_1 PAGE 0
	data:twiddle : {} > SARAM PAGE 0, align(2048)
	.input   : {} > DARAM_1 PAGE 0, align(4)  /* this is due to long-word data memory access */


}


/* C5535 HWAFFT ROM table addresses */
_hwafft_br       = 0x00fefe9c;
_hwafft_8pts     = 0x00fefeb0;
_hwafft_16pts    = 0x00feff9f;
_hwafft_32pts    = 0x00ff00f5;
_hwafft_64pts    = 0x00ff03fe;
_hwafft_128pts   = 0x00ff0593;
_hwafft_256pts   = 0x00ff07a4;
_hwafft_512pts   = 0x00ff09a2;
_hwafft_1024pts  = 0x00ff0c1c;