CLINT中斷屬性
為了幫助提高保存和恢復(fù)上下文的效率,可以將中斷屬性應(yīng)用于用于中斷處理的函數(shù)。
void attribute ((interrupt))software_handler (void) {// handler
code}
此屬性將保存和恢復(fù)處理程序中使用的寄存器,并在處理程序的末尾插入一條 mret 指令。
CLINT內(nèi)存映射
下圖是U54 內(nèi)核上 CLINT 的內(nèi)存映射:
注意,在 CLINT 內(nèi)存映射中沒有用于特定中斷的啟用位,因?yàn)檫@些中斷的啟用位于每個(gè)中斷的 mie CSR 和 mstatus.mie CSR
位中,它全局啟用所有機(jī)器中斷。
相關(guān)寄存器
MSIP Registers
機(jī)器模式軟件中斷是通過寫入內(nèi)存映射控制寄存器 msip 來生成的。
msip 寄存器是一個(gè) 32 位寬的 WARL 寄存器,其中高 31 位綁定為 0。最低有效位反映在 mip CSR 的 MSIP 位中。msip
寄存器中的其他位被硬連線為零。復(fù)位時(shí),每個(gè) msip 寄存器都清零。
軟件中斷對(duì)于多 hart 系統(tǒng)中的處理器間通信最有用,因?yàn)?harts 可能會(huì)寫入彼此的 msip 位以影響處理器間中斷。
軟件中斷其實(shí)更多的用于多核之間,也就是所謂的核間通信。
Timer Registers
與timer有關(guān)的寄存器主要是兩個(gè):mtime和mtimecmp
mtime 是一個(gè) 64 位讀寫寄存器,包含從 rtc_toggle 信號(hào)計(jì)數(shù)的周期數(shù)。
只要 mtime 大于或等于 mtimecmp 寄存器中的值,定時(shí)器中斷就會(huì)掛起。定時(shí)器中斷反映在 mip 寄存器的 mtip 位中。
復(fù)位時(shí),mtime 清零。mtimecmp 不會(huì)重置。
特權(quán)模式委托
默認(rèn)情況下,所有中斷都會(huì)陷入機(jī)器模式,包括定時(shí)器和軟件中斷。
為了讓定時(shí)器和軟件中斷直接進(jìn)入管理員模式,定時(shí)器中斷和軟件中斷必須首先委托給管理員模式。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
與直接映射的物理內(nèi)存末端、高端內(nèi)存的始端所對(duì)應(yīng)的線性地址存放在high_memory變量中,在x86體系結(jié)構(gòu)上,高于896MB的所有物理內(nèi)存
發(fā)表于 06-23 08:38
?3637次閱讀
Linux 內(nèi)核采用延遲分配物理內(nèi)存的策略,在進(jìn)程第一次訪問虛擬頁的時(shí)候,產(chǎn)生缺頁異常。如果是文件映射,那么分配物理頁,把文件指定區(qū)間的數(shù)據(jù)讀到物理頁中,然后在頁表中把虛擬頁映射到物理
發(fā)表于 07-21 17:06
?2336次閱讀
mmap 內(nèi)存映射里所謂的內(nèi)存其實(shí)指的是虛擬內(nèi)存,在調(diào)用 mmap 進(jìn)行匿名映射的時(shí)候(比如進(jìn)行堆內(nèi)存
發(fā)表于 01-24 14:30
?1383次閱讀
的數(shù)據(jù)可能不在內(nèi)存中。 Linux內(nèi)核地址映射模型 x86 CPU采用了段頁式地址映射模型。進(jìn)程代碼中的地址為邏輯地址,經(jīng)過段頁式地址映射后
發(fā)表于 05-08 10:33
?3437次閱讀
我正在 TC387 微控制器上實(shí)現(xiàn)內(nèi)存映射。
關(guān)于內(nèi)存映射,在 Linker 腳本中定義了新區(qū)域,并將數(shù)據(jù)
發(fā)表于 03-04 07:43
這里寫目錄標(biāo)題STM32(CM3內(nèi)核) 內(nèi)存映射一.CM3內(nèi)核簡介二.CM3內(nèi)核地址映射三.搭建
發(fā)表于 02-11 07:48
內(nèi)存映射,簡而言之就是將用戶空間的一段內(nèi)存區(qū)域映射到內(nèi)核空間,映射成功后,用戶對(duì)這段
發(fā)表于 08-24 09:35
?1602次閱讀
電子發(fā)燒友網(wǎng)為你提供ARM筆記:內(nèi)核物理內(nèi)存映射區(qū)的虛擬內(nèi)存資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望
發(fā)表于 04-27 08:41
?4次下載
這里寫目錄標(biāo)題STM32(CM3內(nèi)核) 內(nèi)存映射一.CM3內(nèi)核簡介二.CM3內(nèi)核地址映射三.搭建
發(fā)表于 12-07 19:21
?9次下載
映射僅支持對(duì)齊的 32 位內(nèi)存訪問。 中斷源 U54內(nèi)核共有 132 個(gè)全局中斷源,此外還有CLINT管理的 中描述的本地中斷。 其中 12
發(fā)表于 10-07 17:53
?1120次閱讀
Interrupt Claim Process U54 內(nèi)核 hart 可以通過讀取 claim_complete 寄存器(表 115)執(zhí)行中斷請(qǐng)求,該寄存器返回最高優(yōu)先級(jí)掛起中斷的 ID,如果沒有
發(fā)表于 10-07 18:01
?907次閱讀
提供軟件、定時(shí)器和外部中斷。CLINT 塊還保存與軟件和定時(shí)器中斷相關(guān)的內(nèi)存映射控制和狀態(tài)寄存器。 CLINT 優(yōu)先級(jí)和搶占 CLINT
發(fā)表于 10-08 09:30
?692次閱讀
類型的 RISC-V 中斷:本地和全局。 本地中斷:U54內(nèi)核的本地中斷只有2種,軟件中斷和定時(shí)器中斷,這兩個(gè)中斷都由本地中斷器(CLINT)生成。本地中斷通過專用中斷異常代碼和固定優(yōu)先級(jí)直接發(fā)送給單個(gè)hart。因此,本地中斷沒
發(fā)表于 10-08 09:39
?544次閱讀
向量的基地址,以及設(shè)置 U54內(nèi)核處理中斷的模式。對(duì)于 Direct 和 Vectored模式,中斷處理模式在 mtvec 寄存器的 MODE 字段中定義。mtvec 寄存器在表 86 中描述,mtvec.MODE 字段在表 87 中描述
發(fā)表于 10-08 09:54
?862次閱讀
特權(quán)模式中斷 U54內(nèi)核支持有選擇地將中斷和異常定向到S模式。 該功能由中斷和異常委托CSR處理:mideleg和medeleg。S模式中斷和異常可以通過stvec、sip、sie 和 scause
發(fā)表于 10-08 09:59
?843次閱讀
評(píng)論