在工程項(xiàng)目中,不管是小到模塊級(jí)驗(yàn)證,還是大到系統(tǒng)級(jí)驗(yàn)證,都有一項(xiàng)不可缺少的feature,那就是中斷。
中斷是一種硬件與軟件間、cpu與外設(shè)間的交互手段,中斷一旦出問(wèn)題,芯片很可能會(huì)因此缺失某些特性,甚至于毀了整顆芯片,中斷驗(yàn)證由此顯得極為關(guān)鍵。
本期,小編將給大家?guī)?lái)工程項(xiàng)目中常常碰到的中斷的驗(yàn)證。
1 何為中斷
我們先來(lái)了解下什么是中斷?
中斷是指:芯片在執(zhí)行程序指令流的過(guò)程中,突然出現(xiàn)某些意外情況而需要中止執(zhí)行當(dāng)前程序,并轉(zhuǎn)入處理新的程序指令流,處理完畢后又返回原被暫停的程序指令流繼續(xù)運(yùn)行的機(jī)制。
(注意,工程實(shí)踐中需要注意中斷和查詢(xún)的區(qū)別,中斷是事件觸發(fā)型的,可以是軟件也可以是硬件,而查詢(xún),一般是軟件行為,循環(huán)poll某個(gè)狀態(tài)或者寄存器值。比如,中斷就好比你點(diǎn)了個(gè)外賣(mài),然后你就去干你別的事了,過(guò)了一會(huì)外賣(mài)小哥打電話(huà)叫你下樓取外賣(mài);而查詢(xún)與中斷的區(qū)別在于,外賣(mài)小哥不會(huì)打電話(huà)給你,你點(diǎn)完外賣(mài)后要一直拿著手機(jī)查詢(xún)訂單狀態(tài),當(dāng)外賣(mài)到樓下后自己下樓取餐。)
2 中斷執(zhí)行
中斷的具體流程是怎么樣的呢?
1、當(dāng)設(shè)備遇到某一事件或錯(cuò)誤發(fā)生時(shí),將發(fā)出IRQ中斷給中斷控制器(有的設(shè)備可能無(wú)中斷控制器)。
2、中斷控制器對(duì)這個(gè)IRQ進(jìn)行硬件處理,把一些信息記錄在中斷控制器的寄存器上,然后中斷控制器通過(guò)IRQ中斷線(xiàn)給cpu發(fā)送中斷信號(hào)。
3、cpu收到中斷信號(hào)后會(huì)對(duì)中斷控制器中的寄存器進(jìn)行訪問(wèn),讀取中斷信息存入自身的狀態(tài)寄存器中,并且有的中斷控制器還會(huì)通過(guò)mask寄存器屏蔽對(duì)應(yīng)的中斷,之后cpu執(zhí)行存好的中斷驅(qū)動(dòng)程序。
后面的操作就得根據(jù)具體的驅(qū)動(dòng)程序來(lái)決定了,大致上就是備份數(shù)據(jù),清中斷源等,最后就是恢復(fù)數(shù)據(jù),這整個(gè)就是一個(gè)中斷發(fā)生后的處理流程啦!
3 中斷類(lèi)型
說(shuō)完中斷流程,我們來(lái)看下中斷類(lèi)型,按照功能類(lèi)型來(lái)劃分,中斷可以分為事件中斷和異常中斷。
事件中斷:一般是由硬件觸發(fā)某個(gè)寄存器并拉高中斷線(xiàn),通知軟件介入處理某些具體事務(wù),比如一些周期性的神經(jīng)網(wǎng)絡(luò)訓(xùn)練請(qǐng)求或者完成一次DMA搬運(yùn)操作等,事件中斷屬于軟硬件協(xié)同工作上的一環(huán)。
異常中斷:顧名思義,就是一些硬件不可預(yù)期的行為導(dǎo)致的錯(cuò)誤發(fā)生,發(fā)生異常中斷時(shí),硬件可能已不能自我解決這種錯(cuò)誤,需要向cpu申請(qǐng)支援。異常中斷按照程度可以分為兩類(lèi),分別為致命中斷和非致命中斷,它倆的區(qū)別在于硬件是否會(huì)由于異常錯(cuò)誤掛死,甚至導(dǎo)致整個(gè)芯片崩潰宕機(jī)。
按照異常種類(lèi)劃分,例如可包括:
1、溢出中斷,可能是某個(gè)計(jì)數(shù)器 ,也可能是某個(gè)buffer引發(fā)的溢出中斷;
2、數(shù)據(jù)譯碼錯(cuò)誤,比如,ecc中斷,奇偶校驗(yàn)中斷等;
3、協(xié)議違反中斷,比如,axi協(xié)議的len不匹配數(shù)據(jù),jedec協(xié)議的ca命令錯(cuò)誤等等;
4、特性違反錯(cuò)誤,比如,具體某個(gè)模塊中的描述符錯(cuò)誤,地址越界,傳輸錯(cuò)誤等等。
對(duì)于模塊級(jí)驗(yàn)證中的中斷特性,驗(yàn)證人員需要考慮的是這些中斷能不能被正常觸發(fā),觸發(fā)中斷后能不能正常上報(bào),上報(bào)之后中斷狀態(tài)可不可查,中斷源能不能被清除,清除之后能不能再次觸發(fā),中斷是否可支持mask等。在這個(gè)一系列過(guò)程中,我們還要考慮中斷類(lèi)型與寄存器對(duì)應(yīng)bit是否匹配(比如,ECC錯(cuò)誤出現(xiàn),feature中描述對(duì)應(yīng)的寄存器的第1bit拉高,但是硬件模塊錯(cuò)誤的把第8bit拉高)、中斷之間是否存在相互干擾、多中斷發(fā)生時(shí)是否能準(zhǔn)確上報(bào)、無(wú)異常發(fā)生時(shí)中斷不能拉高、清除某個(gè)中斷時(shí)不能錯(cuò)誤清除其他的中斷等等。
對(duì)于系統(tǒng)級(jí)中斷驗(yàn)證,驗(yàn)證人員考慮的可能就不是那些底層的中斷功能能否正常實(shí)現(xiàn),而是要考慮各個(gè)模塊,各個(gè)子系統(tǒng)的中斷線(xiàn)能否正常匯聚到中斷控制器,中斷控制器的中斷線(xiàn)是否能正常發(fā)送到cpu的中斷管腳、進(jìn)入低功耗模式前后的中斷狀態(tài)等等。
審核編輯:劉清
-
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121303 -
IRQ
+關(guān)注
關(guān)注
0文章
16瀏覽量
10804 -
dma
+關(guān)注
關(guān)注
3文章
566瀏覽量
101031 -
中斷控制器
+關(guān)注
關(guān)注
0文章
59瀏覽量
9493
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
DIY項(xiàng)目中常用的端子類(lèi)型
中軟國(guó)際鴻蒙化公路隧道一體化解決方案成功應(yīng)用
淺析集中控制型消防應(yīng)急照明和疏散指示系統(tǒng)在住宅項(xiàng)目中的設(shè)計(jì)和應(yīng)用
![淺析集中控制型消防應(yīng)急照明和疏散指示系統(tǒng)在住宅<b class='flag-5'>項(xiàng)目中</b>的設(shè)計(jì)和應(yīng)用](https://file1.elecfans.com//web1/M00/F3/36/wKgaoWcSAIOAL-QQAAMklYZ_Hy8295.png)
分布式工程機(jī)械集中管理物聯(lián)網(wǎng)解決方案
![分布式<b class='flag-5'>工程</b>機(jī)械集中管理物聯(lián)網(wǎng)解決方案](https://file1.elecfans.com//web2/M00/09/22/wKgZomcGNXaAJ3HPAACtt86AFGU328.jpg)
智能照明控制系統(tǒng)在體育場(chǎng)館項(xiàng)目中的應(yīng)用
![智能照明控制系統(tǒng)在體育場(chǎng)館<b class='flag-5'>項(xiàng)目中</b>的應(yīng)用](https://file1.elecfans.com//web2/M00/07/E8/wKgZombzp9OAJWwBAALSDzm5oks282.png)
請(qǐng)問(wèn)如何將cURL庫(kù)添加到ESP8266_RTOS_SDK項(xiàng)目中?
科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲(chǔ)芯片
使用idf.py命令方式編譯,怎樣才能編譯arduino的庫(kù),并且在項(xiàng)目中可調(diào)用?
請(qǐng)問(wèn)ESP32 IDF如何查看項(xiàng)目內(nèi)的組件?
請(qǐng)問(wèn)如何獲取當(dāng)前項(xiàng)目中所選的MCU設(shè)備?
FX3工程導(dǎo)入后頭文件找不到是為什么?如何添加頭文件路徑?
信創(chuàng)測(cè)試哪些產(chǎn)品需要做呢?
上海重大工程!璞烯晶22.5億元新能源特種材料項(xiàng)目開(kāi)工
淺析集中控制型消防應(yīng)急照明和疏散指示系統(tǒng)在住宅項(xiàng)目中的設(shè)計(jì)和應(yīng)用
![淺析集中控制型消防應(yīng)急照明和疏散指示系統(tǒng)在住宅<b class='flag-5'>項(xiàng)目中</b>的設(shè)計(jì)和應(yīng)用](https://file1.elecfans.com//web2/M00/C2/39/wKgaomXddMuALqscAAMklYZ_Hy8011.png)
評(píng)論