DSP

Ti的C28x系列的DSP(28377)(28069)使用经验,WatchDog代码

2019-07-13 11:02发布

其实笔者没有在项目中使用过看门狗这个功能,最近看了一些历史上因为软件Bug而导致的严重事件,笔者个人觉得看门狗这个功能还挺重要的,如果读者有机会用到,可以尝试下面的函数,具体函数的功能笔者还没测试过,是根据2812的看门狗改过来的。 DSP_28377D的看门狗代码如下: void ServiceDog(void) { EALLOW; WdRegs.WDKEY.bit.WDKEY = 0x0055; WdRegs.WDKEY.bit.WDKEY = 0x00AA; EDIS; } void EnableDog(void) { EALLOW; WdRegs.WDCR= 0x0028; //0010 1000 EDIS; }//使能看门狗,只有在SCSR寄存器中的WDOVERRIDE位置1时,WDCR.WDDIS才可以更改 void DisableDog(void) { EALLOW; WdRegs.WDCR= 0x0068;//0110 1000 EDIS; }//使看门狗无效 DSP_28069的看门狗代码如下: void ServiceDog(void) { EALLOW; SysCtrlRegs.WDKEY.bit.WDKEY = 0x0055; SysCtrlRegs.WDKEY.bit.WDKEY = 0x00AA; EDIS; } void EnableDog(void) { EALLOW; SysCtrlRegs.WDCR= 0x0028; //0010 1000 EDIS; }//使能看门狗,只有在SCSR寄存器中的WDOVERRIDE位置1时,WDCR.WDDIS才可以更改 void DisableDog(void) { EALLOW; SysCtrlRegs.WDCR= 0x0068;//0110 1000 EDIS; }//使看门狗无效