系统是28335外挂RAM和FPGA
问题是程序烧入DSP芯片上的FLASH内,在DSP反复上下电的情况下,初始化程序中如果存在访问外部RAM的部分, DSP有时候会不能正常工作,程序跑飞。发生这种问题的频率不是很高,在DSP反复上下电几十次上下电可能会出现一次,尤其是在上下电比较快速时,问题出现的概率会增大。我想请问下这个问题发生的原因是什么,有什么解决的办法吗
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外挂RAM和FPGA
问题是程序烧入DSP芯片上的FLASH内,在DSP反复上下电的情况下,初始化程序中如果存在访问外部RAM的部分, DSP有时候会不能正常工作,程序跑飞。发生这种问题的频率不是很高,在DSP反复上下电几十次上下电可能会出现一次,尤其是在上下电比较快速时,问题出现的概率会增大。我想请问下这个问题发生的原因是什么,有什么解决的办法吗
解决了。
这是28335的一个bug。参考http://www.ti.com/lit/er/sprz272h/sprz272h.pdf
在main函数中加下面这段代码。
EALLOW;
if(!(SysCtrlRegs.WDCR & 0x0080)) //check WDFLag
{
//Force a reset
//make sure WDog is enabled
//watch dog enable, and WDCHK value
SysCtrlRegs.WDCR = 0x00A8; //previous value of 0x0068
//would disable the WDog
//write invalid data forces reset
SysCtrlRegs.WDCR = 0x0000;
}
//Clear WDFlag - also need to write WDCHK correctly
SysCtrlRegs.WDCR = 0x00E8; //This will also disable the WDog
//SysCtrlRegs.WDCR = 0x00A8; //This will enable the WDog
EDIS;