色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

riscv中的plic中斷處理與eclic詳解

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-04-15 13:50 ? 次閱讀

淺析riscv中的plic與eclic

1.PLIC中斷處理

2.sifive中斷的編程模型

3.關于eclic

4.關于jalmnxti

1.PLIC中斷處理

在RISC V體系架構中,對中斷有著一些定義,下面來分析一下這種定義的實現策略。

2c6be102-9d0e-11eb-8b86-12bb97331649.png

在riscv中一共定義了三種狀態中斷,對于hart層面,hart包含local中斷源和global中斷源。而local中斷只有Timer和Software中斷兩種,而global中斷則稱為external interrupts。只有global中斷源可以被PLIC core響應,通常為I/O device。

一般來說,timer和software是通過CLINT(CORE LOCAL INTERRUPT),而外部中斷通過PLIC處理。

2d5a77b8-9d0e-11eb-8b86-12bb97331649.png

可以看一下蜂鳥處理器的處理流程,另外sifive的E31的中斷也有如下的處理。

2d6d55cc-9d0e-11eb-8b86-12bb97331649.png

2.sifive中斷的編程模型

中斷處理過程有如下的流程

首先mstatus的MIE域被拷貝到mstatus的MPIE,然后mstatus的MIE域被清除。此時全局中斷disable。

程序當前的pc值被拷貝到mepc寄存器中,然后pc值會根據mtvec的值設置其值。如果向量中斷被使能,pc值會變成mtvec.BASE+4xexception處的代碼。

從mstatus.MPP中取出特權模式的狀態

接下來就是處理中斷具體的函數實現

將特權模式的狀態設置到mstatus.MPP

將mstatus.MPIE的數據拷貝到mstatus.MIE中

從mepc中取值放到pc中

最后執行eret恢復到程序正常運行的狀態。

對于CLINT來說,有Software Interrupt和Timer Interrupt,可以直接在寄存器中控制。

而PLIC實際上可以理解為arm的中斷控制器,存在其map地址。

2d8017ca-9d0e-11eb-8b86-12bb97331649.png

由于PLIC的使用是針對外部中斷的,所以可以單獨設置每個中斷。可以設置如下的值:

中斷的優先級priotity

中斷掛起位pending

中斷使能enables

中斷閾值priority Thresholds

由于PLIC的實現是獨立于hart的IP設計,所以其設計和布局也不一定完全一致。

3.關于eclic

eclic的設計是芯來科技設計的一種中斷處理方式。

2dbc5852-9d0e-11eb-8b86-12bb97331649.png

eclic目前也是眾多芯來科技core采用的中斷控制器,也包括gd32vf103系列的芯片。

3號中斷是內核TIMER單元生成的軟件中斷。

7號中斷是內核TIMER單元生成的計時器中斷。

而從19~4095中斷號都是外部中斷,其中斷的編號與中斷的優先級其實沒有關系。

2dcb96f0-9d0e-11eb-8b86-12bb97331649.png

而對于ECLIC的寄存器布局,可見上圖。

cliccfg是中斷全局配置寄存器,可以結合clicintctl[i]配置

clicinfo也是全局寄存器中的數據,對于使用上來說,是只讀的

mth中斷的閾值級別寄存器

clicintip[i]是中斷等待寄存器,也相當于pending寄存器

clicintie[i]為中斷使能寄存器

clicintattr[i]為中斷的屬性,可以設置中斷的上升沿觸發或者下降沿觸發,同時也可以設置中斷從處理是向量中斷還是非向量中斷。

clicintctl[i] 設置中斷優先級級別和優先級,需要配合cliccfg設置閾。

4.關于jalmnxti

這個也是eclic為了減少中斷延時,加速中斷咬尾的自定義指令。

該指令是配合eclic處理機制設計的,其指令功能比較多

開啟中斷使能,處理下一個中斷

返回下一個中斷入口地址

跳轉至中斷handler

中斷處理后返回

由于csrrw ra, CSR_JALMNXTI, ra一條指令可以達到JAL(Jump and Link)的效果,同時硬件上更新Link寄存器作為該指令的PC作為函數調用的返回值,因此從中斷服務程序返回后,又會重新回到csrrw ra, CSR_JALMNXTI, ra指令再次執行,可以重新判斷是否有中斷pending,如果有則跳轉到中斷處理函數,從而實現中斷的咬尾處理,如果沒有中斷等待,則jalmnxti實際上并不會做任何事情。

原文標題:淺析riscv中的plic與eclic

文章出處:【微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3261

    瀏覽量

    48916

原文標題:淺析riscv中的plic與eclic

文章出處:【微信號:Embeded_IoT,微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OMAP5912多媒體處理中斷參考指南

    電子發燒友網站提供《OMAP5912多媒體處理中斷參考指南.pdf》資料免費下載
    發表于 12-17 16:25 ?0次下載
    OMAP5912多媒體<b class='flag-5'>處理</b>器<b class='flag-5'>中斷</b>參考指南

    RISCV 操作常見問題集 - v4

    'fpga_spinal.cpu0' init failed原因:debuger路徑問題。在riscv和efx之間應該有個斜杠,如報錯的紅色標注。(6)No source available for "main
    的頭像 發表于 11-01 11:06 ?324次閱讀

    單片機有哪些中斷類型

    單片機中斷是指在單片機執行程序的過程,當外部設備或內部條件發生某個特定事件時,能夠暫停當前正在執行的程序,轉而去執行一個特定的服務程序(稱為中斷服務程序或中斷
    的頭像 發表于 10-17 18:12 ?823次閱讀

    freertos中斷優先級在哪設置

    FreeRTOS是一個流行的實時操作系統,它廣泛應用于嵌入式系統開發。在FreeRTOS中斷優先級是一個重要的概念,因為它決定了中斷處理的順序和響應時間。 1. 理解
    的頭像 發表于 09-02 14:17 ?711次閱讀

    stm32怎樣觸發軟件中斷

    了解STM32中斷系統 STM32微控制器具有豐富的中斷系統,包括NVIC(嵌套向量中斷控制器)和SYSTICK定時器。NVIC可以處理多達240個
    的頭像 發表于 09-02 09:32 ?937次閱讀

    RISCV的主流指令集有哪些?

    如題,就像X86指令集有MMX,SSE,SSE2等,就像ARM指令集有ARM和Thumb等,但是總是感覺RISCV特別亂,可能是廠商比較多的緣故吧,我知道的有WCH的青稞RISC-V,玄鐵
    發表于 08-29 13:49

    HPM SDK 1.6.0 FreeRTOS LTS更改及適配指南

    1、HPM_SDKFreeRTOSLTS特性總覽HPMSDKV1.6.0FreeRTOS升級前后特性支持對比:特性V10.4.4LTS202210.01中斷搶占√√RISCV浮點擴展支持
    的頭像 發表于 07-06 08:17 ?3925次閱讀
    HPM SDK 1.6.0 FreeRTOS LTS更改及適配指南

    RA MCU CANFD在FSP的配置詳解

    RA MCU CANFD在FSP的配置詳解
    的頭像 發表于 06-19 08:06 ?556次閱讀
    RA MCU CANFD在FSP<b class='flag-5'>中</b>的配置<b class='flag-5'>詳解</b>

    RISC-V的中斷處理 中斷操作三個步驟

    中斷操作三個步驟: 1、中斷初始化 2、trap處理 3、用戶中斷處理
    的頭像 發表于 05-20 16:38 ?1280次閱讀

    國產riscv芯片大匯總?

    請問有統計國產的riscv芯片的嗎?能匯總一下嗎?
    發表于 04-27 11:53

    RISCV soft JTAG調試_v1.2

    JTAG。這里我們以TI60F225 DEMO來演示。 在使用softJTAG的過程,首先要把RISCV的IP的調試選項選擇為soft,也就是Eanble Soft Debug Tap. 第二
    的頭像 發表于 04-23 08:38 ?1109次閱讀

    如何停止或取消單片機的中斷處理

    處理的NVIC能夠處理多個可屏蔽中斷通道和可編程優先級,中斷輸入請求可以是電平觸發,也可以是最小的一個時鐘周期的脈沖信號。
    發表于 04-15 11:05 ?1442次閱讀
    如何停止或取消單片機的<b class='flag-5'>中斷</b><b class='flag-5'>處理</b>?

    使用stm8l的外部中斷的pin7的中斷,進行中斷處理時會立刻造成新的pin7中斷,會有什么影響嗎?

    使用stm8l的外部中斷的pin7的中斷,進行中斷處理時會立刻造成新的pin7中斷,會有什么影響嗎?目前可以看到的結果是該pin7
    發表于 04-07 09:05

    RISCV soft JTAG調試_v1.1

    JTAG。這里我們以TI60F225 DEMO來演示。 在使用softJTAG的過程,首先要把RISCV的IP的調試選項選擇為soft,也就是Eanble Soft Debug Tap. 第二
    的頭像 發表于 02-23 16:16 ?695次閱讀
    <b class='flag-5'>RISCV</b> soft JTAG調試_v1.1

    IMC300A中斷系統,不同的中斷源優先級如果設置為相同,請問中斷時發生時如何處理

    IMC300A的中斷系統,不同的中斷源優先級如果設置為相同,請問中斷時發生時如何處理? 在 “口的TBCTR和PASRBCTR 存檔器
    發表于 01-29 06:31
    主站蜘蛛池模板: 在教室伦流澡到高潮H女攻视频 | 夜色伊甸园| 免费人妻AV无码专区五月| 国产成人cao在线| 久久精品免费观看久久| 亚洲精品成人无码A片在线| 国自产精品手机在线视频| av在线观看地址| 日本19xxxx撤尿| 俄罗斯大肥BBXX| 2012中文字幕手机在线| 亚洲m男在线中文字幕| 狠狠色狠狠色综合日日92| 中文字幕专区高清在线观看| 美女脱内衣裸身尿口露出来 | 老男人粗大猛| 交换娇妻呻吟声不停中文字幕| 羽月希被黑人吃奶dasd585| 无限资源日本2019版免费| 青青青青青青青草| 免费看的一级毛片| 久久AAAA片一区二区| 国产伊人自拍| 国产精品亚洲欧美| 高H黄暴NP辣H一女多男| japanesen女同| 小向美奈子厨房magnet| 乳液全集电影在线观看| 欧美人与动牲交A免费| 国产午夜精品视频在线播放| 俄罗斯美女z0z0z0在线| YELLOW视频直播在线观看| 99国产精品久久| 小小水蜜桃3视频在线观看| 色色色999| 久久中文骚妇内射| 都市妖奇谈有声| 成视频高清| 高清观看ZSHH96的视频素材| Zoofilivideo人馿交| qvod欧美电影|