天天看点

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

其实笔者没有在项目中使用过看门狗这个功能,最近看了一些历史上因为软件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;  
		  }//使看门狗无效
           

继续阅读