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間接調用到底層的硬件;
    • 這樣就完成了從應用程序到驅動程序的轉換,實現了軟件分層;
  • 總結:
    • 這一套驅動框架的目的就是為了實現驅動與應用的分層,以實現高內聚、低耦合的軟件編程思想。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM