一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-07 18:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Interrupt Claim Process

U54 內(nèi)核 hart 可以通過(guò)讀取 claim_complete 寄存器(表 115)執(zhí)行中斷請(qǐng)求,該寄存器返回最高優(yōu)先級(jí)掛起中斷的 ID,如果沒(méi)有掛起中斷則返回零。成功的聲明還會(huì)自動(dòng)清除中斷源上相應(yīng)的掛起位。

圖片

U54 內(nèi)核 hart 可以隨時(shí)執(zhí)行聲明,即使其 mip寄存器中的 MEIP 位未設(shè)置。

聲明操作不受優(yōu)先級(jí)閾值寄存器設(shè)置的影響。

中斷完成

U54 內(nèi)核 hart 通過(guò)將其從聲明中收到的中斷 ID 寫(xiě)入 claim_complete 寄存器(表 115)來(lái)表示它已完成執(zhí)行中斷處理程序。PLIC 不檢查完成 ID 是否與該目標(biāo)的最后一個(gè)聲明 ID 相同。如果完成 ID 與當(dāng)前為目標(biāo)啟用的中斷源不匹配,則完成將被靜默忽略。

圖片

PLIC 無(wú)法將新中斷轉(zhuǎn)發(fā)給已聲明中斷但尚未完成中斷處理程序的完整步驟的 hart。因此,PLIC 不支持搶占單個(gè) hart 的全局中斷 。

通過(guò) PLIC 路由的全局中斷的中斷 ID 獨(dú)立于本地中斷的中斷 ID。在退出處理程序之前,一旦初始聲明/完成過(guò)程完成,PLIC 處理程序可能會(huì)檢查其他未決的全局中斷。此方法可以為全局中斷保存額外的 PLIC 保存/恢復(fù)上下文。

PLIC中斷處理例子

由于 PLIC 通過(guò)外部中斷 #11 與 CPU 接口,因此外部處理程序必須包含一個(gè)額外的聲明/完成步驟,用于與 PLIC 邏輯握手。

void external_handler() {
//get the highest priority pending PLIC interrupt
uint32_t int_num = plic.claim_complete;
//branch to handler
plic_handler[int_num]();
//complete interrupt by writing interrupt number back to PLIC
plic.claim_complete = int_num;
// Add additional checks for PLIC pending here, if desired
}

如果 CPU 讀取 claim_complete 并返回 0,則中斷不需要處理,因此不需要回寫(xiě) claim/complete。

上面顯示的 plic_handler 例程演示了一種實(shí)現(xiàn)軟件表的方法,其中駐留在表中的函數(shù)的偏移量由 PLIC 中斷 ID 確定。PLIC 中斷 ID 對(duì)于 PLIC 是唯一的,因?yàn)樗耆?dú)立于本地中斷的中斷 ID。

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

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184342
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

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

    關(guān)注

    3

    文章

    1416

    瀏覽量

    41443
  • RISC
    +關(guān)注

    關(guān)注

    6

    文章

    482

    瀏覽量

    85004
  • sifive
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(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è)中斷處理
    發(fā)表于 07-29 08:57 ?976次閱讀

    PLIC管理的中斷的優(yōu)先級(jí)和RISC-V本身的機(jī)器定時(shí)器以及軟中斷中斷優(yōu)先級(jí)問(wèn)題

    請(qǐng)問(wèn)PLIC管理的外設(shè)中斷的優(yōu)先級(jí)和RISC-V本身的機(jī)器定時(shí)器以及軟中斷誰(shuí)的優(yōu)先級(jí)會(huì)更高? 機(jī)器定時(shí)器中斷和軟中斷不歸
    發(fā)表于 06-25 19:05

    ARM內(nèi)核中斷技術(shù)

    以 ARM7TDMI處理器為例,詳細(xì)介紹 ARM內(nèi)核的三種中斷:常規(guī)中斷、快中斷和軟件中斷;結(jié)合
    發(fā)表于 04-09 10:01 ?18次下載

    linux內(nèi)核中斷機(jī)制

    如果讓內(nèi)核定期對(duì)設(shè)備進(jìn)行輪詢(xún),以便處理設(shè)備,那會(huì)做很多無(wú)用功,因?yàn)橥庠O(shè)的處理速度一般慢于CPU,而CPU不能一直等待外部事件。所以能讓設(shè)備在需要內(nèi)核時(shí)主動(dòng)通知
    發(fā)表于 11-14 15:48 ?3252次閱讀

    中斷入門(mén)例子—C語(yǔ)言使用中斷控制LED點(diǎn)亮

    簡(jiǎn)單的中斷入門(mén)例子
    發(fā)表于 05-24 14:15 ?2次下載
    <b class='flag-5'>中斷</b>入門(mén)<b class='flag-5'>例子</b>—C語(yǔ)言使用<b class='flag-5'>中斷</b>控制LED點(diǎn)亮

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

    淺析riscv中的plic與eclic 1.PLIC中斷處理 2.sifive中斷的編程模型 3.關(guān)于eclic 4.關(guān)于jalmnxti
    的頭像 發(fā)表于 04-15 13:50 ?1.4w次閱讀
    riscv中的<b class='flag-5'>plic</b><b class='flag-5'>中斷</b><b class='flag-5'>處理</b>與eclic詳解

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

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

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

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

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

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

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

    陷阱trap 術(shù)語(yǔ)陷阱描述了軟件應(yīng)用程序中的控制轉(zhuǎn)移,其中陷阱處理通常在更特權(quán)的環(huán)境中執(zhí)行。例如,一個(gè)特定的 hart包含三種權(quán)限模式:機(jī)器、管理員和用戶(hù)。每種特權(quán)模式都有自己的軟件執(zhí)行環(huán)境,包括
    的頭像 發(fā)表于 10-08 09:47 ?904次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>中斷</b>進(jìn)入和退出

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

    向量的基地址,以及設(shè)置 U54內(nèi)核處理中斷的模式。對(duì)于 Direct 和 Vectored模式,中斷處理
    的頭像 發(fā)表于 10-08 09:54 ?1526次閱讀
    <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處理
    的頭像 發(fā)表于 10-08 09:59 ?1531次閱讀
    <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)。 mnscratch CSR 擁有一個(gè) 64 位讀寫(xiě)寄存器,它使 NMI 陷阱處理程序能夠保存和恢復(fù)被中斷的上下文。
    的頭像 發(fā)表于 10-08 10:05 ?1224次閱讀
    <b class='flag-5'>U54</b><b class='flag-5'>內(nèi)核</b>不可屏蔽<b class='flag-5'>中斷</b>信號(hào)

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

    連到PLIC,PLIC統(tǒng)一管理并輸出中斷請(qǐng)求到內(nèi)核。 硬件設(shè)計(jì) 本節(jié)硬件同USART章節(jié)一致。 軟件設(shè)計(jì) 代碼分析 在之前的按鍵章節(jié)我們已經(jīng)對(duì)AS32的
    的頭像 發(fā)表于 05-23 17:10 ?206次閱讀
    AS32X601驅(qū)動(dòng)系列教程 <b class='flag-5'>PLIC</b>_<b class='flag-5'>中斷</b>應(yīng)用詳解