中斷控制和狀態(tài)寄存器
Machine Status Register (mstatus)
mstatus 寄存器跟蹤并控制 hart 的當(dāng)前操作狀態(tài),包括是否啟用中斷。
通過(guò)設(shè)置 mstatus 中的 MIE 位來(lái)啟用中斷。在寫入 mstatus.MIE=1 之前,建議先在 mie 中開啟中斷。
Machine Trap Vector (mtvec)
mtvec 寄存器有兩個(gè)主要功能:定義陷阱向量的基地址,以及設(shè)置 U54內(nèi)核處理中斷的模式。對(duì)于 Direct 和 Vectored模式,中斷處理模式在 mtvec 寄存器的 MODE 字段中定義。mtvec 寄存器在表 86 中描述,mtvec.MODE 字段在表 87 中描述。
Mode Direct
在直接模式下操作時(shí),所有中斷和異常都會(huì)捕獲到 mtvec.BASE 地址。在陷阱處理程序內(nèi)部,軟件必須讀取 mcause寄存器以確定觸發(fā)陷阱的原因。
在直接模式下操作時(shí),BASE 必須是 4 字節(jié)對(duì)齊的。
Mode Vectored
在向量模式下運(yùn)行時(shí),中斷將 pc 設(shè)置為 mtvec.BASE + 4 ×異常代碼(mcause.EXCCODE)。例如,如果發(fā)生機(jī)器定時(shí)器中斷,則將 pc 設(shè)置為 mtvec.BASE +0x1C。通常,陷阱向量表填充有跳轉(zhuǎn)指令,以將控制轉(zhuǎn)移到特定于中斷的陷阱處理程序。
在向量中斷模式下,BASE 必須是 256 字節(jié)對(duì)齊的。
所有機(jī)器外部中斷(全局中斷)都映射到異常代碼 11。因此,當(dāng)啟用中斷向量時(shí),pc 設(shè)置為任何全局中斷的地址 mtvec.BASE +0x2C。
Machine Interrupt Enable (mie)
通過(guò)設(shè)置 mie 寄存器中的相應(yīng)位來(lái)啟用各個(gè)中斷。
Machine Interrupt Pending (mip)
機(jī)器中斷掛起 (mip) 寄存器指示當(dāng)前哪些中斷處于掛起狀態(tài)。
-
寄存器
+關(guān)注
關(guān)注
31文章
5372瀏覽量
121293 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1384瀏覽量
40442 -
中斷
+關(guān)注
關(guān)注
5文章
900瀏覽量
41796 -
RISC
+關(guān)注
關(guān)注
6文章
468瀏覽量
83908 -
sifive
+關(guān)注
關(guān)注
0文章
36瀏覽量
9476
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
51單片機(jī)與中斷相關(guān)的寄存器
![51單片機(jī)與<b class='flag-5'>中斷</b>相關(guān)的<b class='flag-5'>寄存器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32串口通信相關(guān)寄存器和中斷回調(diào)函數(shù)
![STM32串口通信相關(guān)<b class='flag-5'>寄存器</b>和<b class='flag-5'>中斷</b>回調(diào)函數(shù)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
PLIC平臺(tái)級(jí)中斷控制器介紹
![PLIC平臺(tái)級(jí)<b class='flag-5'>中斷控制器</b>介紹](https://file1.elecfans.com/web2/M00/A6/F2/wKgaomUhKaaAHoVxAAI0d9JlPDc632.jpg)
LIC內(nèi)核中斷掛起位和中斷使能
![LIC<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>掛起位和<b class='flag-5'>中斷</b>使能](https://file1.elecfans.com/web2/M00/A6/F3/wKgaomUhKrCAHjEOAAH044Wn3PY054.jpg)
U54內(nèi)核PLIC中斷處理例子
![<b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>PLIC<b class='flag-5'>中斷</b>處理例子](https://file1.elecfans.com/web2/M00/A8/B9/wKgZomUhK5GAM_f8AADg8-XxlO0180.jpg)
U54內(nèi)核上CLINT的內(nèi)存映射
![<b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>上CLINT的內(nèi)存映射](https://file1.elecfans.com/web2/M00/A7/0C/wKgaomUiBlGAPs8iAAFKUUl77oA415.jpg)
U54內(nèi)核中斷進(jìn)入和退出
![<b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>進(jìn)入和退出](https://file1.elecfans.com/web2/M00/A8/D1/wKgZomUiCGOAE81wAAB6DpqS_yQ510.jpg)
U54內(nèi)核特權(quán)模式中斷介紹
![<b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>特權(quán)模式<b class='flag-5'>中斷</b>介紹](https://file1.elecfans.com/web2/M00/A8/D2/wKgZomUiC-iAZCUgAAHjNflgy4w184.jpg)
U54內(nèi)核不可屏蔽中斷信號(hào)
![<b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>不可屏蔽<b class='flag-5'>中斷</b>信號(hào)](https://file1.elecfans.com/web2/M00/A7/0D/wKgaomUiDQKAR5BgAADbU9-VLS4018.jpg)
評(píng)論