From 2d4affdbdd5a64fdc32c3bd9544717b0198ae8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97=E4=BC=9F?= Date: Tue, 5 Nov 2024 16:22:18 +0800 Subject: [PATCH 1/2] Update ch9 2device-driver-0.rst --- source/chapter9/2device-driver-0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/chapter9/2device-driver-0.rst b/source/chapter9/2device-driver-0.rst index 2309e70f8..542c47aaa 100644 --- a/source/chapter9/2device-driver-0.rst +++ b/source/chapter9/2device-driver-0.rst @@ -10,7 +10,7 @@ 驱动程序概述 ---------------------------------------- -很难为驱动程序提供一个精确的定义。基本而言,驱动程序是一种软件组件,是操作系统与机外设之间的接口,可让操作系统和设备彼此通信。从操作系统架构上看,驱动程序与I/O设备靠的更近,离应用程序更远,这使得驱动程序需要站在协助所有进程的全局角度来处理各种I/O操作。这也就意味着在驱动程序的设计实现中,尽量不要与单个进程建立直接的联系,而是在全局角度对I/O设备进行统一处理。 +很难为驱动程序提供一个精确的定义。基本而言,驱动程序是一种软件组件,是操作系统与外设之间的接口,可让操作系统和设备彼此通信。从操作系统架构上看,驱动程序与I/O设备靠的更近,离应用程序更远,这使得驱动程序需要站在协助所有进程的全局角度来处理各种I/O操作。这也就意味着在驱动程序的设计实现中,尽量不要与单个进程建立直接的联系,而是在全局角度对I/O设备进行统一处理。 上面只是介绍了CPU和I/O设备之间的交互手段。如果从操作系统角度来看,我们还需要对特定设备编写驱动程序。它一般需包括如下一些操作: From 645fd062421bca58fb132a3e88658c688d9357d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9E=97=E4=BC=9F?= Date: Tue, 5 Nov 2024 17:05:41 +0800 Subject: [PATCH 2/2] Update 2device-driver-0.rst --- source/chapter9/2device-driver-0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/chapter9/2device-driver-0.rst b/source/chapter9/2device-driver-0.rst index 542c47aaa..6de209fa1 100644 --- a/source/chapter9/2device-driver-0.rst +++ b/source/chapter9/2device-driver-0.rst @@ -253,7 +253,7 @@ 平台级中断控制器 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -在之前的操作系统中,已经涉及到中断处理,但还没有处理外设(时钟中断时RISC-V 处理器产生的)产生的中断。如果要让操作系统处理外设中断,就需要对中断控制器进行初始化设置。在RISC-V中,与外设连接的I/O控制器的一个重要组成是平台级中断控制器(Platform-Level Interrupt Controller,PLIC),它的一端汇聚了各种外设的中断信号,另一端连接到CPU的外部中断引脚上。当一个外部设备发出中断请求时,PLIC 会将其转发给 RISC-V CPU, CPU 会执行对应的中断处理程序来响应中断。通过RISC-V的 ``mie`` 寄存器中的 ``meie`` 位,可以控制这个引脚是否接收外部中断信号。当然,通过RISC-V中M Mode的中断委托机制,也可以在RISC-V的S Mode下,通过 ``sie`` 寄存器中的 ``seie`` 位,对中断信号是否接收进行控制。 +在之前的操作系统中,已经涉及到中断处理,但还没有处理外设(时钟中断是 RISC-V 处理器产生的)产生的中断。如果要让操作系统处理外设中断,就需要对中断控制器进行初始化设置。在RISC-V中,与外设连接的I/O控制器的一个重要组成是平台级中断控制器(Platform-Level Interrupt Controller,PLIC),它的一端汇聚了各种外设的中断信号,另一端连接到CPU的外部中断引脚上。当一个外部设备发出中断请求时,PLIC 会将其转发给 RISC-V CPU, CPU 会执行对应的中断处理程序来响应中断。通过RISC-V的 ``mie`` 寄存器中的 ``meie`` 位,可以控制这个引脚是否接收外部中断信号。当然,通过RISC-V中M Mode的中断委托机制,也可以在RISC-V的S Mode下,通过 ``sie`` 寄存器中的 ``seie`` 位,对中断信号是否接收进行控制。 .. note::