rtthread驱动框架介绍

以下通过pin驱动来大概介绍rtthread驱动程序的编写方法

  • 首先rtthread的驱动主要存放在两个文件夹中,分别为Drivers和DeviceDrivers;
  • Drivers文件夹中:
    • 在Drivers文件夹中的drv_gpio主要承担GPIO硬件相关的操作,实现如下6个函数;
      • stm32_pin_mode,
      • stm32_pin_write,
      • stm32_pin_read,
      • stm32_pin_attach_irq,
      • stm32_pin_dettach_irq,
      • stm32_pin_irq_enable
    • 这6个函数都是都是直接和硬件打交道的,通过驱动框架最终调用的都是这6个函数;
    • 实现完这6个和硬件打交道的函数后,就把函数名(也就是函数的入口地址)填入到rt_pin_ops结构体中,以实现上层应用到底层驱动的连接;
  • DeviceDrivers文件夹中:
    • 在DeviceDrivers文件夹中pin主要是实现驱动层代码到应用层的对接,具体实现代码是通过以下几个函数:
      • _pin_read
      • _pin_write
      • _pin_control
    • 同时还要把硬件操作相关Drivers中的rt_pin_ops结构体中的函数与rt_device_pin中的ops相关联;
    • 最终_pin_read等三个函数可以通过rt_device_pin间接调用到底层的硬件;
    • 这样就完成了从应用程序到驱动程序的转换,实现了软件分层;
  • 总结:
    • 这一套驱动框架的目的就是为了实现驱动与应用的分层,以实现高内聚、低耦合的软件编程思想。

猜你喜欢

转载自www.cnblogs.com/commandNotFound/p/12805573.html