0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux驅(qū)動-spidev驅(qū)動使用方法

Linux閱碼場 ? 來源:Linux閱碼場 ? 2023-04-07 10:22 ? 次閱讀

1.概述

本文主要講述了Linux的spidev驅(qū)動使用方法。介紹了spidev驅(qū)動的配置方法及驗證方法。

Linux內(nèi)核版本:6.2.8。硬件平臺:ARM SOC。

2.原理

Linux內(nèi)核集成了spidev驅(qū)動,提供了SPI設(shè)備的用戶空間API,支持用于半雙工通信的read()和write()訪問接口以及用于全雙工通信和I/O配置的ioctl()接口;使用時,只需將SPI從設(shè)備的compatible屬性值添加到spidev驅(qū)動的spidev_dt_ids[]數(shù)組中,即可將該SPI從設(shè)備創(chuàng)建為spidev設(shè)備。同時,Linux內(nèi)核也集成了SPI測試工具spidev_test,用于在用戶態(tài)對spidev驅(qū)動功能進行測試和驗證。

3.配置方法

(1)配置內(nèi)核,使能CONFIG_SPI_SPIDEV,以添加spidev驅(qū)動。

736ff334-d4ea-11ed-bfe3-dac502259ad0.png

圖1 使能CONFIG_SPI_SPIDEV配置界面

(2)添加SPI從設(shè)備的compatible屬性值到linux-6.2.8/drivers/spi/spidev.c的spidev_dt_ids[]數(shù)組。添加compatible屬性值后,則會將SPI從設(shè)備創(chuàng)建為/dev/spidevB.C設(shè)備節(jié)點,供用戶空間API使用,其中B為SPI總線編號,C為SPI片選信號編號。

7384f694-d4ea-11ed-bfe3-dac502259ad0.png

圖2 添加SPI從設(shè)備的compatible屬性值代碼

4.驗證方法

(1)編譯spidev_test

以SPI0總線的片選0為例,其生成的設(shè)備節(jié)點名為spidev0.0,故首先將測試例程linux-6.2.8/tools/spi/spi_test.c中的設(shè)備節(jié)點名改為"/dev/spidev0.0"。然后在linux-6.2.8/tools/spi路徑下直接執(zhí)行make,即可生成可執(zhí)行程序spi_test。

73a22610-d4ea-11ed-bfe3-dac502259ad0.png

圖3 設(shè)備節(jié)點名設(shè)置

(2)運行spidev_test

內(nèi)核啟動后,./dev路徑下生成了spidev0.0設(shè)備節(jié)點。然后運行spidev_test,程序按默認配置參數(shù)執(zhí)行了,SPI0發(fā)送的數(shù)據(jù)與圖3中數(shù)組default_tx[]一致。若需設(shè)置參數(shù),詳見spidev_test.c 中的static void parse_opts(int argc, char *argv[])函數(shù)定義。

73ba9cb8-d4ea-11ed-bfe3-dac502259ad0.png

圖4 spidev_test運行結(jié)果

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90729
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87705

原文標題:Linux驅(qū)動-spidev驅(qū)動使用方法

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux系統(tǒng)中的Makefile的使用方法

    今天主要和大家聊一聊,Linux系統(tǒng)中的Makefile的使用方法。
    發(fā)表于 11-17 09:35 ?3996次閱讀

    Linux系統(tǒng)中驅(qū)動格式基本編寫方法

    今天主要和大家聊一聊,編寫Linux驅(qū)動格式與方法。
    發(fā)表于 12-02 09:34 ?524次閱讀

    Linux之PWM驅(qū)動

    本文主要講述了Linux的PWM驅(qū)動框架、實現(xiàn)方法、驅(qū)動添加方法和調(diào)試方法
    發(fā)表于 05-25 09:19 ?583次閱讀
    <b class='flag-5'>Linux</b>之PWM<b class='flag-5'>驅(qū)動</b>

    基于Linux使用spidev驅(qū)動OLED

    如果不想編寫spi設(shè)備驅(qū)動,那么linux內(nèi)核提供了一個通用的spidev設(shè)備驅(qū)動,提供統(tǒng)一的字符設(shè)備操作,那么只需要在應(yīng)用層讀寫和控制即可。以SPI OLED為例子,使用
    發(fā)表于 06-16 10:36 ?3919次閱讀
    基于<b class='flag-5'>Linux</b>使用<b class='flag-5'>spidev</b><b class='flag-5'>驅(qū)動</b>OLED

    LED驅(qū)動電源灌封膠的使用方法

    LED驅(qū)動電源灌封膠的使用方法LED驅(qū)動電源灌封膠適用于一般電子元器件、電源模塊和線路板的灌封保護,以及各種電子電器的灌封,如開關(guān)電源、驅(qū)動電源、汽車HID燈模塊電源、汽車點火系統(tǒng)模塊
    發(fā)表于 02-15 10:22

    串行通信基礎(chǔ)知識與UART驅(qū)動構(gòu)件使用方法

    慕課蘇州大學(xué).嵌入式開發(fā)及應(yīng)用.第二章.入門與軟件框架.串行通信基礎(chǔ)知識與UART驅(qū)動構(gòu)件使用方法0 目錄2 入門與軟件框架2.1 串行通信基礎(chǔ)知識與UART驅(qū)動構(gòu)件使用方法2.1.1
    發(fā)表于 12-20 06:21

    HT46R94內(nèi)建LED驅(qū)動功能最佳使用方法

    HT46R94內(nèi)建LED驅(qū)動功能最佳使用方法
    發(fā)表于 04-11 08:43 ?27次下載

    IGBT驅(qū)動模塊EXB841使用方法的改進

    IGBT驅(qū)動模塊EXB841使用方法的改進 摘要: 本文對目前在電力電子技術(shù)中廣泛使用的IGBT驅(qū)動模塊EXB841的使用方法進行了改進,克服了EXB841本身的缺陷,提高了保護
    發(fā)表于 05-08 15:11 ?84次下載

    對高級驅(qū)動輔助系統(tǒng)的傳感器的使用方法

    本文檔介紹了對高級驅(qū)動輔助系統(tǒng)的傳感器的使用方法,供網(wǎng)友參考。
    發(fā)表于 09-13 18:37 ?1次下載

    LINUX內(nèi)核與驅(qū)動的最新編譯方法

    linux源碼樹的驅(qū)動目錄增加自己的驅(qū)動目錄,比如:現(xiàn)在新增一個網(wǎng)絡(luò)設(shè)備驅(qū)動
    發(fā)表于 05-08 14:42 ?1721次閱讀

    Embeded linux之buildroot的使用方法

    Embeded linux之buildroot使用方法
    發(fā)表于 05-15 14:10 ?3200次閱讀
    Embeded <b class='flag-5'>linux</b>之buildroot的<b class='flag-5'>使用方法</b>

    利用Linux開發(fā)板為TLV320ADC5120開發(fā)Linux內(nèi)核驅(qū)動方法

    利用Linux開發(fā)板為TLV320ADC5120開發(fā)Linux內(nèi)核驅(qū)動方法
    發(fā)表于 10-28 11:59 ?0次下載
    利用<b class='flag-5'>Linux</b>開發(fā)板為TLV320ADC5120開發(fā)<b class='flag-5'>Linux</b>內(nèi)核<b class='flag-5'>驅(qū)動</b>的<b class='flag-5'>方法</b>

    Linux的QSPI驅(qū)動移植方法及驗證方法

    本文主要講述了Linux的QSPI驅(qū)動移植方法及驗證方法
    的頭像 發(fā)表于 04-14 10:20 ?2727次閱讀
    <b class='flag-5'>Linux</b>的QSPI<b class='flag-5'>驅(qū)動</b>移植<b class='flag-5'>方法</b>及驗證<b class='flag-5'>方法</b>

    Linux的PWM驅(qū)動框架及實現(xiàn)方法

    本文主要講述了Linux的PWM驅(qū)動框架、實現(xiàn)方法驅(qū)動添加方法和調(diào)試方法
    的頭像 發(fā)表于 05-14 15:24 ?1271次閱讀
    <b class='flag-5'>Linux</b>的PWM<b class='flag-5'>驅(qū)動</b>框架及實現(xiàn)<b class='flag-5'>方法</b>

    linux驅(qū)動程序的編譯方法是什么

    Linux驅(qū)動程序的編譯方法主要包括兩種: 與內(nèi)核一起編譯 和 編譯成獨立的內(nèi)核模塊 。以下是對這兩種方法的介紹: 一、與內(nèi)核一起編譯 與內(nèi)核一起編譯意味著將
    的頭像 發(fā)表于 08-30 14:46 ?165次閱讀