全稱為Core Local Interruptor(核心本地中斷控制器),是 RISC-V 特權(quán)架構(gòu)規(guī)范(Privileged Architecture Specification)中明確定義的內(nèi)建于每個核心 / 硬件線程(hart)的中斷控制器,專門處理「核心本地、非共享」的中斷類型,區(qū)別于處理外設(shè)共享中斷的 PLIC(Platform-Level Interrupt Controller,平臺級中斷控制器)。
1、為什么需要 CLINT?
RISC-V 核心在運(yùn)行時,需要處理兩類截然不同的中斷需求:
一類是全局共享中斷(如 UART 收發(fā)、GPIO 電平變化、SPI 通信完成等),這類中斷來自外部外設(shè),需多個核心共享處理;
另一類是核心本地中斷(如定時任務(wù)、核心間通信),這類中斷僅屬于單個核心,要求極低的響應(yīng)延遲,無需總線仲裁。
CLINT 的設(shè)計初衷正是為了解決第二類需求 —— 通過將中斷控制器 “內(nèi)嵌” 到每個 hart 中,避免總線傳輸帶來的延遲,確保核心對本地關(guān)鍵事件(如定時器到期、核心間喚醒)的快速響應(yīng),這也是其 “Core Local”(核心本地)命名的由來。
CLINT 模塊產(chǎn)生 CSR****寄存器的定時器中斷、軟件中斷和計時器。

CLINT的系統(tǒng)架構(gòu)示意圖
2、CLINT 功能說明
CLINT 由軟件中斷觸發(fā)器、定時器中斷觸發(fā)器、計數(shù)器組成。 軟件中斷觸發(fā)器由一個寄存器構(gòu)成,直連 CPU 的機(jī)器級軟件中斷。 計數(shù)器負(fù)責(zé)提供 CPU 的 TIME 與 TIMEH ,并參與定時器中斷的觸發(fā)。 定時器中斷觸發(fā)器用于定時器中斷 的觸發(fā),當(dāng)計數(shù)器值大于配置的值時會觸發(fā)定時器中斷**,**定時器中斷是嵌入式系統(tǒng)中最常用的中斷類型,幾乎所有 RTOS(如 FreeRTOS、RT-Thread)的任務(wù)調(diào)度都依賴定時器中斷提供的 “時鐘節(jié)拍” 。
2.1 CLINT初始化

2.2 軟件中斷:
寫 0 則清除中斷掛起狀態(tài)

2.3定時器中斷:
中斷處理函數(shù)中,更新比較閾值(實(shí)現(xiàn)周期性觸發(fā)),并執(zhí)行調(diào)度邏輯(如 RTOS 的任務(wù)切換)。

2.3讀取CLINT計數(shù)器:

2.4延時函數(shù)通過計數(shù)器功能計算延時時間
CLINT 的 64 位全局計數(shù)器time/timeh提供了高精度的時間基準(zhǔn),可直接用于實(shí)現(xiàn)微秒級 / 毫秒級精準(zhǔn)延時,無需依賴外部定時器。
延時函數(shù)實(shí)現(xiàn)原理:
進(jìn)入延時函數(shù)時,讀取當(dāng)前計數(shù)器值told;
計算需要的總時鐘節(jié)拍數(shù)(ticks = 延時時間(us) × 時鐘頻率(MHz));
循環(huán)讀取當(dāng)前計數(shù)器值tnow,計算累計節(jié)拍數(shù)tcnt;
當(dāng)tcnt >= ticks時,延時結(jié)束。

3、CLINT 的常見應(yīng)用場景
① RTOS 時鐘節(jié)拍生成
FreeRTOS 等 RTOS 的任務(wù)調(diào)度依賴固定周期的時鐘節(jié)拍,通常將 CLINT 定時器中斷配置為 1ms 觸發(fā)一次,在中斷處理函數(shù)中調(diào)用vTaskIncrementTick(),實(shí)現(xiàn)任務(wù)就緒狀態(tài)更新和調(diào)度器切換。
② 多核系統(tǒng)啟動
在 RISC-V 多核芯片中,主核心啟動后,通過向從核心的SOFTICR寄存器寫 1,觸發(fā)從核心的軟件中斷,從核心在中斷處理函數(shù)中完成棧初始化、應(yīng)用加載,實(shí)現(xiàn)多核心協(xié)同工作。
③ 精準(zhǔn)數(shù)據(jù)采樣
在工業(yè)控制、傳感器采集等場景中,需按固定時間間隔(如 100us)采集數(shù)據(jù),通過 CLINT 定時器中斷觸發(fā)采樣函數(shù),確保采樣周期的穩(wěn)定性和精準(zhǔn)度。
-
mcu
+關(guān)注
關(guān)注
147文章
19160瀏覽量
404821 -
中斷控制器
+關(guān)注
關(guān)注
0文章
64瀏覽量
9853 -
RISC-V
+關(guān)注
關(guān)注
49文章
2954瀏覽量
53603
發(fā)布評論請先 登錄
易靈思Sapphire SoC中RISC-V平臺級中斷控制器深度解析
如何在RISC-V處理器上使用FreeRTOS?
ARM的中斷控制器
ESP32-C6技術(shù)參考手冊
華芯微特MCU的嵌套向量中斷控制器與外部中斷/事件控制器的使用方法
中斷控制器的驅(qū)動解析(上)
扒開 ARM 中斷控制器的底褲
細(xì)說STM32的中斷控制器(NVIC)那些事
關(guān)于ARM中斷控制器的介紹
中斷控制器級聯(lián)的類型有哪幾種
RISC-V異常中斷機(jī)制全解析
RISC-V怎么實(shí)現(xiàn)核間中斷?核心本地中斷控制器(CLINT)深度解析
評論