基于STR7 ARM微控制器的IRQ中斷防御體系
比較修改前后的代碼,修改后每次執行的代碼只比原來增加了5條指令,中斷響應處理的實時性有所下降,但是,在高速的ARM微控制器上,犧牲5條指令周期的時間來換取系統的可靠和安全是完全值得的。
一般情況下,程序員不會對未使能的中斷通道編寫中斷服務程序,故此,在32個IRQ中斷通道散轉向量表中,可以把沒有使能的中斷通道直接鏈接到復位向量進行強行復位,代碼如下:
4 結束語
本文提出的IRQ中斷防御體系的構建,通過了Kell ARM3.04的開發環境調試。并成功應用在基于STR71x ARM微控制器的某數控切割加工的控制系統。在持續一個月的系統運行測試中,對在程序中沒有構建IRQ中斷防御體系的系統(簡稱“A系統”)和構建了IRQ中斷防御體系的系統(簡稱“B系統”)相比較,發現A系統曾經出現過兩次的程序跑飛現象,而B系統的運行穩定,未出現程序跑飛的情況。可見,采用了該防御體系后,大大提高ARM微控制器的抗干擾能力,增強了系統的可靠性和安全性。
參考文獻:
[1].ARM7TDMIdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI_139812.html.
[2].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[3].MCS-51datasheethttp://www.dzsc.com/datasheet/MCS-51_477840.html.
評論