1.概述
本文主要講述了Linux的spidev驅(qū)動(dòng)使用方法。介紹了spidev驅(qū)動(dòng)的配置方法及驗(yàn)證方法。
Linux內(nèi)核版本:6.2.8。硬件平臺(tái):ARM SOC。
2.原理
Linux內(nèi)核集成了spidev驅(qū)動(dòng),提供了SPI設(shè)備的用戶(hù)空間API,支持用于半雙工通信的read()和write()訪(fǎng)問(wèn)接口以及用于全雙工通信和I/O配置的ioctl()接口;使用時(shí),只需將SPI從設(shè)備的compatible屬性值添加到spidev驅(qū)動(dòng)的spidev_dt_ids[]數(shù)組中,即可將該SPI從設(shè)備創(chuàng)建為spidev設(shè)備。同時(shí),Linux內(nèi)核也集成了SPI測(cè)試工具spidev_test,用于在用戶(hù)態(tài)對(duì)spidev驅(qū)動(dòng)功能進(jìn)行測(cè)試和驗(yàn)證。
3.配置方法
(1)配置內(nèi)核,使能CONFIG_SPI_SPIDEV,以添加spidev驅(qū)動(dòng)。
圖1 使能CONFIG_SPI_SPIDEV配置界面
(2)添加SPI從設(shè)備的compatible屬性值到linux-6.2.8/drivers/spi/spidev.c的spidev_dt_ids[]數(shù)組。添加compatible屬性值后,則會(huì)將SPI從設(shè)備創(chuàng)建為/dev/spidevB.C設(shè)備節(jié)點(diǎn),供用戶(hù)空間API使用,其中B為SPI總線(xiàn)編號(hào),C為SPI片選信號(hào)編號(hào)。
圖2 添加SPI從設(shè)備的compatible屬性值代碼
4.驗(yàn)證方法
(1)編譯spidev_test
以SPI0總線(xiàn)的片選0為例,其生成的設(shè)備節(jié)點(diǎn)名為spidev0.0,故首先將測(cè)試?yán)蘬inux-6.2.8/tools/spi/spi_test.c中的設(shè)備節(jié)點(diǎn)名改為"/dev/spidev0.0"。然后在linux-6.2.8/tools/spi路徑下直接執(zhí)行make,即可生成可執(zhí)行程序spi_test。
圖3 設(shè)備節(jié)點(diǎn)名設(shè)置
(2)運(yùn)行spidev_test
內(nèi)核啟動(dòng)后,./dev路徑下生成了spidev0.0設(shè)備節(jié)點(diǎn)。然后運(yùn)行spidev_test,程序按默認(rèn)配置參數(shù)執(zhí)行了,SPI0發(fā)送的數(shù)據(jù)與圖3中數(shù)組default_tx[]一致。若需設(shè)置參數(shù),詳見(jiàn)spidev_test.c 中的static void parse_opts(int argc, char *argv[])函數(shù)定義。
圖4 spidev_test運(yùn)行結(jié)果
審核編輯 :李倩
-
Linux
+關(guān)注
關(guān)注
87文章
11335瀏覽量
210087 -
SPI
+關(guān)注
關(guān)注
17文章
1720瀏覽量
91914 -
總線(xiàn)
+關(guān)注
關(guān)注
10文章
2898瀏覽量
88262
原文標(biāo)題:Linux驅(qū)動(dòng)-spidev驅(qū)動(dòng)使用方法
文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論