在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

U54內(nèi)核中斷進(jìn)入和退出

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 09:47 ? 次閱讀

陷阱trap

術(shù)語陷阱描述了軟件應(yīng)用程序中的控制轉(zhuǎn)移,其中陷阱處理通常在更特權(quán)的環(huán)境中執(zhí)行。例如,一個(gè)特定的 hart包含三種權(quán)限模式:機(jī)器、管理員和用戶。每種特權(quán)模式都有自己的軟件執(zhí)行環(huán)境,包括專用的堆棧區(qū)域。此外,每種特權(quán)模式都包含用于陷阱處理的單獨(dú)控制和狀態(tài)寄存器CSR)。在用戶模式下操作時(shí),需要上下文切換來處理主管模式下的事件。軟件為上下文切換設(shè)置系統(tǒng),然后執(zhí)行 ECALL 指令,將控制同步切換到Environment call-from-User 模式異常處理程序。

復(fù)位后的默認(rèn)模式是機(jī)器模式。軟件以最高權(quán)限級(jí)別開始執(zhí)行,這允許在任何權(quán)限級(jí)別更改之前初始化所有 CSR和系統(tǒng)資源。下面的步驟描述了將特權(quán)模式從機(jī)器模式更改為用戶模式所需的步驟,在特定設(shè)計(jì)上也包括管理員模式。

應(yīng)首先通過將 mstatus.MIE 寫入 0(默認(rèn)復(fù)位值)來全局禁用中斷。

將機(jī)器模式異常處理程序的基地址寫入 mtvec CSR。這是任何引導(dǎo)流程中的必需步驟。

將 mstatus.MPP 寫入 0 以將之前的模式設(shè)置為 User,這允許我們返回到該模式。

設(shè)置物理內(nèi)存保護(hù) (PMP) 區(qū)域以將所需區(qū)域授予用戶和主管模式,并可選擇從機(jī)器模式撤消權(quán)限。

用主管模式異常處理程序的基地址寫入 stvec CSR。

編寫 medeleg 寄存器,將異常委托給主管模式。考慮 ECALL 和頁面錯(cuò)誤異常。

編寫 mstatus.FS 以啟用浮點(diǎn)(如果支持)。

將機(jī)器模式用戶寄存器存儲(chǔ)到堆棧或應(yīng)用程序特定的幀指針。

用用戶態(tài)軟件的入口點(diǎn)編寫mepc

執(zhí)行mret指令進(jìn)入用戶模式。

Note:只有一組用戶寄存器 (x1 - x31) 用于所有權(quán)限級(jí)別,因此應(yīng)用軟件負(fù)責(zé)在進(jìn)入和退出不同級(jí)別時(shí)保存和恢復(fù)狀態(tài)。

本地中斷

軟件中斷(中斷 ID #3):通過寫入特定 hart 的內(nèi)存映射中斷掛起寄存器 msip 來觸發(fā)。

定時(shí)器中斷:當(dāng)寄存器 mtime 大于或等于寄存器 mtimecmp 并且兩個(gè)寄存器都是 CLINT 內(nèi)存映射的一部分時(shí),會(huì)觸發(fā)定時(shí)器中斷(中斷 ID#7)。mtime 和 mtimecmp 寄存器通常僅在機(jī)器模式下可用,除非 PMP 授予用戶或管理員模式訪問它們所在的內(nèi)存映射區(qū)域的權(quán)限。

圖片

全局中斷通常首先路由到 PLIC,然后使用外部中斷進(jìn)入 hart(中斷 ID #11)

中斷操作

在特權(quán)模式 m 內(nèi),如果相關(guān)的全局中斷使能 {ie} 清零,則在該特權(quán)模式下不會(huì)產(chǎn)生任何中斷,但更高特權(quán)模式下的待決啟用中斷將搶占當(dāng)前執(zhí)行。如果設(shè)置了{(lán)ie},則在相同特權(quán)模式下處于更高中斷級(jí)別的掛起啟用中斷將搶占當(dāng)前執(zhí)行并運(yùn)行更高中斷級(jí)別的中斷處理程序。

當(dāng)發(fā)生中斷或同步異常時(shí),會(huì)修改特權(quán)模式以反映新的特權(quán)模式。處理程序特權(quán)模式的全局中斷使能位被清除

中斷進(jìn)入和退出

當(dāng)中斷發(fā)生時(shí):

? mstatus.MIE 的值被復(fù)制到mcause.MPIE 中,然后mstatus.MIE 被清除,有效地禁用了中斷。

? 中斷前的特權(quán)模式在mstatus.MPP 中編碼。

? 當(dāng)前 pc 被復(fù)制到 mepc 寄存器中,然后將 pc 設(shè)置為 mtvec 指定的值

此時(shí),控制權(quán)移交給中斷處理程序中的軟件,并禁用中斷。執(zhí)行 mret 指令時(shí),會(huì)發(fā)生以下情況:

? 特權(quán)模式設(shè)置為在 mstatus.MPP 中編碼的值。

? 全局中斷使能 mstatus.MIE 設(shè)置為 mcause.MPIE 的值。

? pc 設(shè)置為mepc 的值。

此時(shí),控制權(quán)交給軟件。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5402

    瀏覽量

    122896
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1405

    瀏覽量

    40977
  • 控制
    +關(guān)注

    關(guān)注

    5

    文章

    1020

    瀏覽量

    123408
  • RISC
    +關(guān)注

    關(guān)注

    6

    文章

    477

    瀏覽量

    84568
  • sifive
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    9530
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核中斷設(shè)計(jì)與實(shí)現(xiàn)

    裸機(jī)編程中使用中斷比較麻煩,需要配置寄存器、使能IRQ等等。而在Linux驅(qū)動(dòng)編程中,內(nèi)核提供了完善的終端框架,只需要申請(qǐng)中斷,然后注冊(cè)中斷處理函數(shù)即可,使用非常方便。
    發(fā)表于 07-29 08:57 ?899次閱讀

    STM32U5退出stop2模式后進(jìn)入HardFault_Hand的原因?

    主循環(huán)每?jī)擅胄薷膕topFlag為1,進(jìn)入stop2模式,外部中斷(lis2ds12的6d檢測(cè))喚醒并修改stopFlag為0; 不連接stlink時(shí),退出stop2后就會(huì)進(jìn)入
    發(fā)表于 07-24 06:25

    STM32U5退出stop2模式后進(jìn)入HardFault_Handler如何解決?

    主循環(huán)每?jī)擅胄薷膕topFlag為1,進(jìn)入stop2模式,外部中斷(lis2ds12的6d檢測(cè))喚醒并修改stopFlag為0; 不連接stlink時(shí),退出stop2后就會(huì)進(jìn)入
    發(fā)表于 03-13 06:12

    串口中斷程序里發(fā)送數(shù)據(jù)如何進(jìn)入中斷

    發(fā)送中斷,是在執(zhí)行了MOV SBUF,A ,發(fā)送完畢后,TI置1,然后才能進(jìn)入中斷,可是我看到書上一個(gè)例子,在中斷里發(fā)送多個(gè)字節(jié)數(shù)據(jù),發(fā)送一字節(jié)后退
    發(fā)表于 12-20 09:25

    TMS320C54x系列DSP的中斷機(jī)制

      1 C54x中的中斷機(jī)制   中斷信號(hào)實(shí)質(zhì)上是由硬件或者是軟件驅(qū)動(dòng)的信號(hào),它能使DSP暫停正在執(zhí)行的程序并進(jìn)入中斷服務(wù)程序(ISR)。
    發(fā)表于 09-01 17:07 ?6107次閱讀
    TMS320C<b class='flag-5'>54</b>x系列DSP的<b class='flag-5'>中斷</b>機(jī)制

    STM32進(jìn)入退出睡眠模式

    后,會(huì)產(chǎn)生RTC報(bào)警中斷自動(dòng)將系統(tǒng)喚醒。一旦退出停機(jī)模式,系統(tǒng)時(shí)鐘被配置成先前的狀態(tài)(在停機(jī)模式下,外部高速振蕩器HSE和PLL是不可用的)。經(jīng)過一段延時(shí)之后,系統(tǒng)將再次進(jìn)入停機(jī)狀態(tài),并可按上述操作無限重復(fù)。
    發(fā)表于 04-03 11:43 ?1.2w次閱讀

    PLIC平臺(tái)級(jí)中斷控制器介紹

    的。 U54內(nèi)核的平臺(tái)級(jí)中斷控制器 (PLIC) 最多可支持 132 個(gè)具有 7 個(gè)優(yōu)先級(jí)的外部中斷源。 Memory Map U54
    的頭像 發(fā)表于 10-07 17:53 ?1513次閱讀
    PLIC平臺(tái)級(jí)<b class='flag-5'>中斷</b>控制器介紹

    LIC內(nèi)核中斷掛起位和中斷使能

    中斷掛起位 PLIC 內(nèi)核中斷源掛起位的當(dāng)前狀態(tài)可以從掛起數(shù)組中讀取,組織為 32 位的 5 個(gè)字。中斷 ID 的掛起位存儲(chǔ)在字的位中。 因此,U
    的頭像 發(fā)表于 10-07 17:57 ?1036次閱讀
    LIC<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>掛起位和<b class='flag-5'>中斷</b>使能

    U54內(nèi)核PLIC中斷處理例子

    Interrupt Claim Process U54 內(nèi)核 hart 可以通過讀取 claim_complete 寄存器(表 115)執(zhí)行中斷請(qǐng)求,該寄存器返回最高優(yōu)先級(jí)掛起中斷
    的頭像 發(fā)表于 10-07 18:01 ?1214次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>PLIC<b class='flag-5'>中斷</b>處理例子

    U54內(nèi)核上CLINT的內(nèi)存映射

    ) {// handler code} 此屬性將保存和恢復(fù)處理程序中使用的寄存器,并在處理程序的末尾插入一條 mret 指令。 CLINT內(nèi)存映射 下圖是U54 內(nèi)核上 CLINT 的內(nèi)存映射: 注意
    的頭像 發(fā)表于 10-08 09:34 ?674次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>上CLINT的內(nèi)存映射

    RISC-V SiFive U54內(nèi)核中斷介紹

    中斷 U54內(nèi)核支持M模式和S模式中斷。默認(rèn)情況下,所有中斷都在M模式下處理。對(duì)于支持S模式的 hart,可以有選擇地將
    的頭像 發(fā)表于 10-08 09:39 ?798次閱讀
    RISC-V SiFive <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>的<b class='flag-5'>中斷</b>介紹

    U54內(nèi)核中斷控制和狀態(tài)寄存器

    向量的基地址,以及設(shè)置 U54內(nèi)核處理中斷的模式。對(duì)于 Direct 和 Vectored模式,中斷處理模式在 mtvec 寄存器的 MODE 字段中定義。mtvec 寄存器在表 86
    的頭像 發(fā)表于 10-08 09:54 ?1315次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>控制和狀態(tài)寄存器

    U54內(nèi)核特權(quán)模式中斷介紹

    特權(quán)模式中斷 U54內(nèi)核支持有選擇地將中斷和異常定向到S模式。 該功能由中斷和異常委托CSR處理:mideleg和medeleg。S模式
    的頭像 發(fā)表于 10-08 09:59 ?1266次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>特權(quán)模式<b class='flag-5'>中斷</b>介紹

    U54內(nèi)核不可屏蔽中斷信號(hào)

    不可屏蔽中斷 rnmi(可恢復(fù)不可屏蔽中斷中斷信號(hào)是 hart 的電平敏感輸入。不可屏蔽中斷比 hart上的任何其他中斷或異常具有更高的優(yōu)
    的頭像 發(fā)表于 10-08 10:05 ?1092次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>不可屏蔽<b class='flag-5'>中斷</b>信號(hào)

    ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢?

    ARM中的異常中斷是如何實(shí)現(xiàn)進(jìn)入中斷程序的?如何進(jìn)入呢? 在計(jì)算機(jī)系統(tǒng)中,異常和中斷是兩個(gè)常見的概念。 在ARM中,異常和
    的頭像 發(fā)表于 10-19 16:36 ?1295次閱讀
    主站蜘蛛池模板: 天天操天| 国产女人视频 | 日产精品卡二卡三卡四卡乱码视频 | 成人手机看片 | 狠狠干狠狠干狠狠干 | 4虎 影视 免费 | 日本黄色网址免费 | 国产激情片 | 男女视频在线观看 | 1v1高h肉爽文bl | 国产一级在线观看 | 亚洲成在人线中文字幕 | 久久香蕉综合精品国产 | 日韩一级片在线播放 | 三级国产在线 | 色女人在线 | 乱好看的的激情伦小说 | 国模啪啪一区二区三区 | 久久久免费视频观看 | 国产精品毛片一区二区三区 | 免费色黄网站 | 国产国产人免费人成成免视频 | 成年免费大片黄在线观看免费 | 亚洲黄色录像 | 亚洲成人免费 | 国产黄视频在线观看 | 激情综合网婷婷 | 国产视频一二 | 欧美亚洲第一区 | 国产在线理论片免费播放 | 国产网站大全 | 手机精品视频在线观看免费 | 日本午夜色 | 精品三级国产精品经典三 | 第四色亚洲 | 日本福利小视频 | 亚洲美女视频在线观看 | 欧美日韩亚洲国产 | 加勒比一本一道在线 | 天天躁夜夜躁狠狠躁2018a | 视频在线观看一区 |