1.概述
本文主要講述了Linux的spidev驅動使用方法。介紹了spidev驅動的配置方法及驗證方法。
2.原理
Linux內核集成了spidev驅動,提供了SPI設備的用戶空間API,支持用于半雙工通信的read()和write()訪問接口以及用于全雙工通信和I/O配置的ioctl()接口;使用時,只需將SPI從設備的compatible屬性值添加到spidev驅動的spidev_dt_ids[]數組中,即可將該SPI從設備創建為spidev設備。同時,Linux內核也集成了SPI測試工具spidev_test,用于在用戶態對spidev驅動功能進行測試和驗證。
3.配置方法
(1)配置內核,使能CONFIG_SPI_SPIDEV,以添加spidev驅動。
圖1 使能CONFIG_SPI_SPIDEV配置界面
(2)添加SPI從設備的compatible屬性值到linux-6.2.8/drivers/spi/spidev.c的spidev_dt_ids[]數組。添加compatible屬性值后,則會將SPI從設備創建為/dev/spidevB.C設備節點,供用戶空間API使用,其中B為SPI總線編號,C為SPI片選信號編號。
圖2 添加SPI從設備的compatible屬性值代碼
4.驗證方法
(1)編譯spidev_test
以SPI0總線的片選0為例,其生成的設備節點名為spidev0.0,故首先將測試例程linux-6.2.8/tools/spi/spi_test.c中的設備節點名改為"/dev/spidev0.0"。然后在linux-6.2.8/tools/spi路徑下直接執行make,即可生成可執行程序spi_test。
圖3 設備節點名設置
(2)運行spidev_test
內核啟動后,./dev路徑下生成了spidev0.0設備節點。然后運行spidev_test,程序按默認配置參數執行了,SPI0發送的數據與圖3中數組default_tx[]一致。若需設置參數,詳見spidev_test.c 中的static void parse_opts(int argc, char *argv[])函數定義。
圖4 spidev_test運行結果
審核編輯 :李倩
-
Linux
+關注
關注
87文章
11292瀏覽量
209333 -
SPI
+關注
關注
17文章
1706瀏覽量
91508 -
總線
+關注
關注
10文章
2878瀏覽量
88052
原文標題:Linux驅動-spidev驅動使用方法
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論