天天看點

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;  
		  }//使看門狗無效
           

繼續閱讀