linux gpio 學習__linux

來源:互聯網
上載者:User
前情

基於 linux gpio 會在 /sys/class/gpio 目錄下會產生 export, unexport 檔案,當然也有 gpiochipx 檔案,gpiochipx 是對引腳的管理,如某一個 chip 可能控制著一定數量的引腳,在相應目錄下 ngpio 是控制的數量。
執行 echo 4 > /sys/class/gpio/export 的時候會在 /sys/class/gpio 目錄下產生 gpio4 目錄,在這個目錄下會有 如 value, edge, direction 等相關檔案,value 是當前值, edge 是引腳觸發方式,direction 是引腳輸入,輸出方式。但是 echo 之後如何產生這個的呢。 過程掃描 在一開始的初始化過程中有函數 gpiolib_dev_init 被匯出為 core_initcall (gpio/gpiolib.c) 此函數調用 bus_register 註冊 gpio ,對應產生 /sys/bus/gpio 目錄 再調用 alloc_chrdev_region 再進行gpiochip 的設定 gpiochip_setup_devs 這會對總數量 的 gpiochip 進行處理,對每個調用 gpiochip_sysfs_register,檔案到了 gpiolib-sysfs.c 中 調用 device_create_wtih_groups來建立 gpiochip%d 此函數對應的參數為 gpio_class 即一個 class 類 此 class 定義的名稱是 gpio, 同時定義了 attr attr 包括 export - export _store, unexport - unexport_store 前者是屬性名稱,後者是函數 也就是 echo 動作為觸發 export_store 函數 此函數 調用 gpio_request 準備引腳 再調用 gpiod_export 在此函數中調用 device_create_with_groups 來建立 gpio%d,以及其它事項 備忘 當然這裡還有很多細節尚不清楚,只是一個概覽,後期再來補充

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.