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();