国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于STR7 ARM微控制器的IRQ中斷防御體系

發布時間:2010-7-31 19:55    發布者:lavida
關鍵詞: arm , IRQ , STR7 , 微控制器 , 中斷防御
1 引言

ARM7TDMI體系的中斷向量的地址是動態分配在中斷向量控制器的寄存器中,例如,意法半導體(ST)公司生產的STR71x系列ARM微控制器,其增強型的中斷控制器(EIC)的EIC_IVR寄存器(中斷向量寄存器)、EIC_SIRn寄存器(源中斷寄存器)都是用于存儲相關中斷通道的中斷服務程序在存儲器中的地址,內核響應IRQ中斷后,再根據當前對應的中斷通道的中斷向量進行散轉,執行相應的中斷服務程序。對于一般的8位MCU,通常是將向量中斷人口固定分配ROM中,例如MCS-51單片機各個中斷的人口地址是固定的。兩者相比,ARM的中斷體系具有較大的靈活性,但卻降低了安全性和可靠性;MCU的中斷向量體系雖然失去了靈活性,但確保了系統的安全性和可靠性。  

在系統長時間運行和強干擾的作用下,保存在寄存器中的ARM的各個中斷地址很容易受干擾信號的影響。當中斷向量地址被改寫后,程序必定跑飛,這種情況是無法忍受的,特別是在工控系統中。針對這種情況,本文提出了基于STR71x系列ARM微控制器將中斷向量固化到ROM的思路,可以提高系統的安全性和可靠性。  

2 STR71x結構分析  

STR71x系列是意法半導體(ST)公司生產的基于ARM7TDMI內核的微控制器,片上集成高達256 KB+16 KB的Flash和64 KB的RAM,擁有豐富的外設和增強的I/O功能,具有高性價比。STR71x內部有一個獨立的增強型中斷控制器,可完成多個中斷通道的硬件處理、中斷優先級決策和自動產生中斷向量等功能,如圖1所示。  



EIC中的優先級解碼器是一個不斷計算掛起IRQ最高優先級的組合模塊,當決策出最高優先級中斷后,它把EIC_IVR寄存器(中斷向量寄存器)更新為最高優先級中斷服務程序的地址,并且拉低nIRQ內部信號。軟件讀取EIC_IVR寄存器的內容后。獲得當前中斷通道所對應的中斷服務程序的地址,從而散轉執行對應的中斷服務程序。而在讀取EIC_IVR寄存器值的一個時鐘周期后,EIC_CICR寄存器(當前中斷通道寄存器)被更新為當前響應的IRQ中斷通道的標號,EIC_CIPR寄存器(當前中斷優先級寄存器)被更新為當前響應的IRQ中斷通道的優先級。  

中斷向量寄存器EIC_IVR是一個32位的寄存器,其中,高16位IVR[31:16]不依賴于當前響應的中斷。對于所有的IRQ中斷通道來說,這16位都是相同的,它是在初始化時由用戶程序配置的。而低16位IVR[15:0]則依賴于當前響應的中斷(即當前具有最高優先級的有效中斷),并且它是當前系統響應的中斷通道所對應的EIC_SIR寄存器中源中斷向量(SIV)的副本。EIC_SIRn是通道n的源中斷寄存器,其高16位SIV[31:16]是中斷通道n對應的中斷服務程序的存儲器地址的低16位。EIC_IVR寄存器的高16位IVR[31:16]與EIC_SIRn的高16位SIV[31:16]構成了中斷通道n對應的中斷服務程序的存儲器地址的首址。  

3 IRQ中斷防御體系的構建  

根據上面的分析可知,STR71x ARM中各個IRQ中斷通道的中斷服務程序入口地址是動態存放在EIC_IVR、EIC_SIRn等可讀寫的寄存器中,即存放在RAM中的,這樣很容易受干擾信號影響。當這些寄存器中的中斷服務程序地址被干擾信號改寫,產生中斷時,系統肯定無法正確進入相應的中斷服務程序,系統程序必定跑飛。所以,保護各個IRQ中斷通道的中斷服務程序入口地址就顯得相當必要。  

軟件根據EIC_IVR寄存器中存放的地址去散轉執行對應的中斷服務程序的具體實現代碼。下面列舉了ST公司公布的標準固件代碼中關于IRQ中斷部分處理的代碼:  








在上述程序中,系統響應中斷后,首先把R0~R12、SPSR等寄存器入棧保護,然后再通過讀取E-IC_IVR寄存器獲得當前響應的中斷通道所對應的中斷服務程序入口地址。  

由前面的分析可知,EIC_CICR寄存器是存儲當前響應的IRQ中斷通道的標號,EIC_CICR寄存器在此成為構建防御體系的關鍵,利用它可將中斷向量固化到ROM中。  

在構建的防御體系中,EIC響應IRQ中斷,軟件讀取一次EIC_IVR后,EIC_CICR寄存器更新當前響應的IRQ中斷通道的標號,然后獲取此標號的值,跳轉到固化在ROM的對應當前中斷通道的中斷服務程序入口,執行所響應的中斷通道的中斷服務程序。在上述所列出代碼的基礎上,修改了代碼如下,實現防御體系的構建。  




比較修改前后的代碼,修改后每次執行的代碼只比原來增加了5條指令,中斷響應處理的實時性有所下降,但是,在高速的ARM微控制器上,犧牲5條指令周期的時間來換取系統的可靠和安全是完全值得的。  

一般情況下,程序員不會對未使能的中斷通道編寫中斷服務程序,故此,在32個IRQ中斷通道散轉向量表中,可以把沒有使能的中斷通道直接鏈接到復位向量進行強行復位,代碼如下:  




4 結束語  

本文提出的IRQ中斷防御體系的構建,通過了Kell ARM3.04的開發環境調試。并成功應用在基于STR71x ARM微控制器的某數控切割加工的控制系統。在持續一個月的系統運行測試中,對在程序中沒有構建IRQ中斷防御體系的系統(簡稱“A系統”)和構建了IRQ中斷防御體系的系統(簡稱“B系統”)相比較,發現A系統曾經出現過兩次的程序跑飛現象,而B系統的運行穩定,未出現程序跑飛的情況。可見,采用了該防御體系后,大大提高ARM微控制器的抗干擾能力,增強了系統的可靠性和安全性。
本文地址:http://m.qingdxww.cn/thread-18159-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久看视频 | 99久久精品国产一区二区三区 | 日本高清不卡视频 | 中文字幕第一页在线 | 簧片免费视频 | 青青青国产精品手机在线观看 | 老司机日日摸夜夜摸精品影院 | 二区不卡| 色网站免费观看 | 四虎影库在线播放 | 激情欧美成人狠狠色金八天国 | 亚洲色图男人天堂 | 99精品免费视频 | 国产国拍亚洲精品永久不卡 | 久久香蕉国产线看精品 | 男人扒开女人下狂躁视频 | 自拍偷拍欧美亚洲 | 一级做a爰 | 日韩免费高清专区 | 99精品国产成人一区二区在线 | 俄罗斯xx| 四虎成人精品国产一区a | 久久精品国产99国产 | 欧美一区二区三区在线可观看 | 亚洲第一人黄所 | 精品亚洲综合久久中文字幕 | 久久久高清日本道免费观看 | 国产日韩欧美一区二区三区视频 | 韩日一区二区三区 | 亚洲欧美日韩综合精品网 | 亚洲色图在线播放 | 国产精品麻豆久久99 | 亚洲国产日韩a在线亚洲 | 欧美人与动交片免费播放 | 中文字幕avv| 欧美成人tv | 欧美亚洲国产另类在线观看 | 国产刚刚发育被强j在线播放 | 国产人成精品综合欧美成人 | 久久99视频免费 | 伊人网青青草 |