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.

28335 program running out of truck

Dear,

I used the 28335 chip access off-chip RAM.
The program burned into the DSP internal FLASH.
In the case of DSP power up and down repeatedly,
DSP sometimes does not work properly, the program running out of truck.
The frequency of occurrence of this problem is not very high.
In the case of DSP repeated dozens of times up and down the power may appear once.
If the program running out of truck, the location(call Read_RAM()) is always in the first time to access the external RAM in the initialization code.
I removed the external RAM chips in PCB, this program running out of truck cases still occur.
What causes this problem? I hope you can help me and give me some advice and direction?


void main(void)
{

InitSysCtrl();

DINT;

InitPieCtrl();


IER = 0x0000;
IFR = 0x0000;

InitPieVectTable();

InitXintf();

#if 1
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
#endif

InitGpio_DIDO();


EALLOW;
PieVectTable.TINT0 = &cpu_timer0_isr;
EDIS;

InitAdc();



InitCpuTimers();

ConfigCpuTimer(&CpuTimer0, 150, 500);

IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

InitSciaGpio();

scia_fifo_init(); //

scia_echoback_init(); //

RAM_Self_Test = RAM_Test ();//sometimes died in this program inside the function

EINT;
ERTM;

ADC_initial();
AdcRegs.ADCTRL2.bit.SOC_SEQ1 =1;

start_timer0();
start_ADC();

for(;;)
{
some code ;
}

UNSIGNED8 Read_RAM(unsigned short wPortAddr)
{

UNSIGNED16 *wpTemp = (UNSIGNED16 *)wPortAddr;
return((UNSIGNED8)(*wpTemp));
}

RAM Test () function calls Read_RAM();

  • This file TMS320F2833x and TMS320F2823x DSC Silicon Errata has the following description

    Advisory Memory: Possible Incorrect Operation of XINTF Module After Power Up
    Revision(s) Affected 0, A
    Details
    The XINTF module may not get reset properly upon power up. When this happens,
    accesses to XINTF addresses may cause the CPU to hang. This issue occurs only upon
    power up. It does not happen for other resets such as a reset initiated by the watchdog
    or an external (warm) reset using the XRS pin.
    After coming out of reset, software should force a watchdog (WD) reset if WDFLAG = 0
    in the WDCR register. WDFLAG = 0 implies that an external reset occurred, for example,
    a power-on reset. After exiting the WD reset, WDFLAG will be 1. In this case, software
    should clear the WDFLAG bit before continuing normal code execution. This issue
    affects only the XINTF module.


    I encountered this problem, what should I add the code to avoid this problem. Can you give me a specific code?