国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-04-15 13:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

淺析riscv中的plic與eclic

1.PLIC中斷處理

2.sifive中斷的編程模型

3.關(guān)于eclic

4.關(guān)于jalmnxti

1.PLIC中斷處理

在RISC V體系架構(gòu)中,對中斷有著一些定義,下面來分析一下這種定義的實現(xiàn)策略。

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

在riscv中一共定義了三種狀態(tài)中斷,對于hart層面,hart包含local中斷源和global中斷源。而local中斷只有Timer和Software中斷兩種,而global中斷則稱為external interrupts。只有g(shù)lobal中斷源可以被PLIC core響應(yīng),通常為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。

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

從mstatus.MPP中取出特權(quán)模式的狀態(tài)

接下來就是處理中斷具體的函數(shù)實現(xiàn)

將特權(quán)模式的狀態(tài)設(shè)置到mstatus.MPP

將mstatus.MPIE的數(shù)據(jù)拷貝到mstatus.MIE中

從mepc中取值放到pc中

最后執(zhí)行eret恢復(fù)到程序正常運行的狀態(tài)。

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

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

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

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

中斷的優(yōu)先級priotity

中斷掛起位pending

中斷使能enables

中斷閾值priority Thresholds

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

3.關(guān)于eclic

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

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

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

3號中斷是內(nèi)核TIMER單元生成的軟件中斷。

7號中斷是內(nèi)核TIMER單元生成的計時器中斷。

而從19~4095中斷號都是外部中斷,其中斷的編號與中斷的優(yōu)先級其實沒有關(guān)系。

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

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

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

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

mth中斷的閾值級別寄存器

clicintip[i]是中斷等待寄存器,也相當(dāng)于pending寄存器

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

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

clicintctl[i] 設(shè)置中斷優(yōu)先級級別和優(yōu)先級,需要配合cliccfg設(shè)置閾。

4.關(guān)于jalmnxti

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

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

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

返回下一個中斷入口地址

跳轉(zhuǎn)至中斷handler

中斷處理后返回

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

原文標(biāo)題:淺析riscv中的plic與eclic

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

責(zé)任編輯:haq

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

    關(guān)注

    1

    文章

    3752

    瀏覽量

    52101

原文標(biāo)題:淺析riscv中的plic與eclic

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    RISC-V怎么實現(xiàn)核間中斷?核心本地中斷控制器(CLINT)深度解析

    于每個核心 / 硬件線程(hart)的中斷控制器,專門處理「核心本地、非共享」的中斷類型,區(qū)別于處理外設(shè)共享中斷
    的頭像 發(fā)表于 12-13 14:06 ?2430次閱讀
    RISC-V怎么實現(xiàn)核間<b class='flag-5'>中斷</b>?核心本地<b class='flag-5'>中斷</b>控制器(CLINT)深度解析

    串口中斷觸發(fā)卡死怎么解決?

    |= (1u << 0) | (1u << 2);}/* 讀取并處理 IIR,按類型清空接收 FIFO;返回是否還有掛起中斷 */static
    發(fā)表于 11-11 06:17

    e203添加中斷源,中斷源無法使能怎么解決?

    。 擔(dān)心是由于添加中斷的時候plic模塊的修改有問題,我們直接把52號中斷(IIC),接到了以太網(wǎng)外設(shè)的中斷信號上,發(fā)現(xiàn)plic模塊的
    發(fā)表于 11-10 07:45

    易靈思Sapphire SoCRISC-V平臺級中斷控制器深度解析

    隨著 RISC -V處理器在 FPGA 領(lǐng)域的廣泛應(yīng)用,易靈思 FPGA 的 Sapphire RISC-V 內(nèi)核憑借軟硬核的靈活支持,為開發(fā)者提供多樣選擇。本文深入探討 Sapphire SoC RISC - V 平臺級中斷
    的頭像 發(fā)表于 11-08 09:35 ?7829次閱讀
    易靈思Sapphire SoC<b class='flag-5'>中</b>RISC-V平臺級<b class='flag-5'>中斷</b>控制器深度解析

    riscv底層原理分析gd32vf103的中斷行為

    中斷編程模型的理解 對于cortex-m3等處理器來說,riscv的底層模型似乎更加復(fù)雜一些,但是實際上弄清楚riscv中斷
    發(fā)表于 10-31 08:04

    RVMCU課堂「12」: 手把手教你玩轉(zhuǎn)RVSTAR—外部中斷

    執(zhí)行下去。這里我們以Nuclei Board Labsexti_key_interrupt應(yīng)用程序為例,簡單講解外部中斷的非向量處理模式。 系統(tǒng)環(huán)境 Windows 10-64bit 軟件平臺
    發(fā)表于 10-31 07:39

    淺析riscvpliceclic

    1.PLIC中斷處理 在RISC V體系架構(gòu),對中斷有著一些定義,下面來分析一下這種定義的實現(xiàn)策略。 在
    發(fā)表于 10-31 07:23

    RVMCU課堂「10」: 手把手教你玩轉(zhuǎn)RVSTAR—處理器內(nèi)部中斷

    中斷向量表一一對應(yīng),關(guān)于中斷向量表我們會在后文詳解。 2 ECLIC_NON_VECTOR_INTERRUPT 第二個參數(shù)配置的是中斷
    發(fā)表于 10-31 06:12

    人臉識別和AES加密協(xié)同的SOC設(shè)計架構(gòu)

    留有兩個中斷接口:PLIC和CLINT中斷接口和AXI系統(tǒng)總線接口。RISCV內(nèi)核還留有協(xié)處理器接口NICE,NICE接口可擴展
    發(fā)表于 10-29 08:21

    利用蜂鳥E203搭建SoC【2】——外部中斷擴展與驗證

    在SoC設(shè)計中一個重要通信方式就是中斷中斷可以避免輪詢方式造成的cpu空轉(zhuǎn)消耗,可以更好利用cpu資源。蜂鳥e203提供了plic外部中斷
    發(fā)表于 10-29 07:14

    MCU的嵌入式開發(fā)

    RISC-V中斷包括軟件中斷,計時器中斷,外部中斷,調(diào)試中斷 (主要是前三個) 計時器
    發(fā)表于 10-28 08:02

    DDR200T運行plic中斷例程LED無反應(yīng)的解決辦法

    ,但是按下那五個中斷按鍵UDLRC,LED沒反應(yīng),始終處于熄滅狀態(tài)。我也試驗了Gitee下載了開源的demo_plic程序,反應(yīng)一樣。 解決方法: 使用NucleiStudio_IDE_202102
    發(fā)表于 10-27 06:00

    蜂鳥E203內(nèi)核中斷管理模塊sirv_plic_man代碼分析

    、irq_id_lvl_10 和 irq_ip_lvl_10。這三個數(shù)組用于存儲級聯(lián)式中斷處理每個中斷源的優(yōu)先級、ID 和掛起狀態(tài)。 對于輸入的
    發(fā)表于 10-23 06:05

    中斷機制在計算機系統(tǒng)的作用,如何在e203處理利用外部中斷處理用戶輸入輸出

    )設(shè)計中斷是一種機制,用于處理外部事件并暫停CPU的正常執(zhí)行流程。當(dāng)外部事件發(fā)生時,如輸入/輸出操作或定時器/計數(shù)器到達其計數(shù)限制等,硬件會發(fā)出中斷請求信號,通知CPU停止當(dāng)前正在
    發(fā)表于 10-21 12:47

    AS32X601驅(qū)動系列教程 PLIC_中斷應(yīng)用詳解

    平臺中斷控制器(Platform Level Interrupt Controller,PLIC)是國科安芯AS32系列MCU芯片的中斷控制器,主要對中斷源進行采樣,優(yōu)先級仲裁和分發(fā)。
    的頭像 發(fā)表于 05-23 17:10 ?709次閱讀
    AS32X601驅(qū)動系列教程 <b class='flag-5'>PLIC</b>_<b class='flag-5'>中斷</b>應(yīng)用<b class='flag-5'>詳解</b>