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.

DSP28335程序烧入flash后,显示烧录成功,在线运行没问题,断电后重新上电,感觉程序只运行了一部分,初始化没有完成;后来在初始化后试着加一段延时,程序就运行正常了,不知道是怎么回事,求大神帮解答,不胜感激~~



/****************************主函数*******************************/
void main(void)
{

InitSysCtrl();//初始化系统控制:看门狗 锁相环 外设时钟使能

//InitGpio();//初始化通用GPIO

InitXintf();

InitXintf16Gpio(); //初始化外扩接口引脚


InitSciGpio();//初始化串口引脚

InitECanGpio();//初始化ECan引脚

InitECan();//初始化ECan

InitSci();//初始化串口


DINT;//禁止CPU中断

InitPieCtrl();//初始化PIE中断向量

IER = 0x0000;//禁止所有CPU中断
IFR = 0x0000;//清除中断标志位

InitPieVectTable();//初始化中断向量表

// StopCpuTimer0();//停止CpuTimer0定时器


// PieCtrlRegs.PIECTRL.bit.ENPIE = 1;//使能PIE相关模块
// PieCtrlRegs.PIEIER12.bit.INTx1 = 1;//使能12组第1中断 XINT3
// PieCtrlRegs.PIEIER12.bit.INTx2 = 1;//使能12组第2中断 XINT4
// PieCtrlRegs.PIEIER12.bit.INTx3 = 1;//使能12组第3中断 XINT5
// PieCtrlRegs.PIEIER12.bit.INTx4 = 1;//使能12组第4中断 XINT6
// PieCtrlRegs.PIEIER1.bit.INTx7 = 1;//使能1组第7中断 TINT0(CPU定时器0)
PieCtrlRegs.PIEIER8.bit.INTx5 = 1;//使能8组第5中断 SCIRXINT_C
PieCtrlRegs.PIEIER8.bit.INTx6 = 1;//使能8组第6中断 SCITXINT_C
PieCtrlRegs.PIEIER9.bit.INTx3 = 1;//使能9组第3中断 SCIRXINT_B
PieCtrlRegs.PIEIER9.bit.INTx4 = 1;//使能9组第4中断 SCITXINT_B
PieCtrlRegs.PIEIER9.bit.INTx1 = 1;//使能9组第1中断 SCIRXINT_A
PieCtrlRegs.PIEIER9.bit.INTx2 = 1;//使能9组第2中断 SCITXINT_A


IER |= (M_INT1 | M_INT8 | M_INT12 | M_INT9);//使能CPU级中断

EINT;//使能全局中断

ERTM;//使能实时中断

PieCtrlRegs.PIEACK.all = 0xFFFF;//响应中断

memset(MoBan,0x0,81920);// 1280*1024/16 = 81920 一共有81920个地址需要写0x0 一个地址16位
memset(MoBan1,0x0,81920);
memset(MoBan2,0x0,81920);
delay_ms(4000);//  如果不加这个延时,烧进去后程序运行就出现异常情况