diff --git a/source/chapter9/2device-driver-1.rst b/source/chapter9/2device-driver-1.rst index 12c56134..c7345e24 100644 --- a/source/chapter9/2device-driver-1.rst +++ b/source/chapter9/2device-driver-1.rst @@ -9,7 +9,7 @@ 串口驱动程序 ------------------------------------ -我们要管理是串口(UART)物理设备。我们在第一章其实就接触了串口,但当时是通过RustSBI来帮OS完成对串口的访问,即OS只需发出两种SBI调用请求就可以输出和获取字符了。但这种便捷性是有代价的。比如OS在调用获取字符的SBI调用请求后,RustSBI如果没收到串口字符,会返回 ``-1`` ,这样OS只能采用类似轮询的方式来继续查询。到第七章为止的串口驱动不支持中断是导致在多进程情况下,系统效率低下的主要原因之一。大家也不要遗憾,我们的第一阶段的目标是 **Just do it** ,先把OS做出来。在本节,我们需要逐步改进优化对串口的操作了。 +我们要管理的是串口(UART)物理设备。我们在第一章其实就接触了串口,但当时是通过RustSBI来帮OS完成对串口的访问,即OS只需发出两种SBI调用请求就可以输出和获取字符了。但这种便捷性是有代价的。比如OS在调用获取字符的SBI调用请求后,RustSBI如果没收到串口字符,会返回 ``-1`` ,这样OS只能采用类似轮询的方式来继续查询。到第七章为止的串口驱动不支持中断是导致在多进程情况下,系统效率低下的主要原因之一。大家也不要遗憾,我们的第一阶段的目标是 **Just do it** ,先把OS做出来。在本节,我们需要逐步改进优化对串口的操作了。 .. image:: uart-drive.png :align: center