外设的驱动模式:中断、轮询

  • 驱动程序的基本形式是中断模式,中断属于异步编程。
  • 关闭中断可以形成轮询模式。轮询和中断是驱动程序设计的两种基本模式,其它模式在这基础上进行延申。
  • 轮询模式可以是忙等待轮询和择机轮询。
    • 忙等待持续轮询状态,直到完成,这期间主循环不能处理其它事务,忙等待属于顺序编程。
    • 择机轮询检测到未完成时将退出,转而处理其它事务,当有空闲时再次轮询,需要借助状态机实现保存和恢复上下文,择机轮询是异步编程。
  • 中断配合操作系统形成挂起等待模式,挂起等待是顺序编程。
  • 协程是对择机轮询的简化,将显式的状态机设计转为隐式状态机,让异步编程看起来像顺序编程,简化设计、提高可读性。
  • 事件驱动模型是中断模式的泛化。
  • DMA和FIFO是优化措施,将多个中断或轮询简化为一个中断或轮询。
  • 底层驱动是异步编程,上层应用可以按异步编程来使用,也可以按顺序编程来使用,异步编程可以封装成顺序编程。
  • 底层驱动是顺序编程,上层应用只能按顺序编程来使用,顺序编程不能封装成异步编程。
  • 轮询模式实现起来比较简单,但执行效率低,会浪费处理运算资源,择机轮询的及时性较差。
  • 中断模式执行效率高,及时性高,实现起来麻烦一些。
  • 应该按应用需求选择采用哪种模式,轮询和中断各有千秋,各有各的好处。
©️2020 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值