精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

SPI驅動源文件目錄在哪

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-25 10:49 ? 次閱讀

SPI 驅動源文件目錄

Linux common spi driver

kernel-4.14/drivers/spi/spi.c  Linux 提供的通用接口封裝層驅動
kernel-4.14/drivers/spi/spidev.c  linux 提供的 SPI 通用設備驅動程序
kernel-4.14/include/linux/spi/spi.h  linux 提供的包含 SPI 的主要數據結構和函數

spi 控制器驅動,IC 廠商提供,不同廠商命名不同

kernel-4.14/drivers/spi/spi-mt65xx.c  MTK SPI 控制器驅動
kernel-4.14/drivers/spi/spi-mt65xx-dev.c
kernel-4.14/include/linux/platform_data/spi-mt65xx.h

dts

kernel-4.14/arch/arm/boot/dts/...
kernel-4.14/arch/arm64/boot/dts/...

以上文件對應如下 SPI 驅動軟件架構:

圖片

SPI 控制器驅動程序

SPI 控制器不用關心設備的具體功能,它只負責把上層協議驅動準備好的數據按 SPI 總線的時序要求發送給 SPI 設備,同時把從設備收到的數據返回給上層的協議驅動,因此,內核把 SPI 控制器的驅動程序獨立出來。

SPI 控制器驅動負責控制具體的控制器硬件,諸如 DMA 和中斷操作等等,因為多個上層的協議驅動可能會通過控制器請求數據傳輸操作,所以,SPI 控制器驅動同時也要負責對這些請求進行隊列管理,保證先進先出的原則。

SPI 通用接口封裝層

為了簡化 SPI 驅動程序的編程工作,同時也為了降低【協議驅動程序】和【控制器驅動程序】的耦合程度,內核把控制器驅動和協議驅動的一些通用操作封裝成標準的接口,加上一些通用的邏輯處理操作,組成了 SPI 通用接口封裝層。

這樣的好處是,對于控制器驅動程序,只要實現標準的接口回調 API,并把它注冊到通用接口層即可,無需直接和協議層驅動程序進行交互。而對于協議層驅動來說,只需通過通用接口層提供的 API 即可完成設備和驅動的注冊,并通過通用接口層的 API 完成數據的傳輸,無需關注 SPI 控制器驅動的實現細節。

SPI 協議驅動程序

SPI 設備的具體功能是由 SPI 協議驅動程序完成的,SPI 協議驅動程序了解設備的功能和通信數據的協議格式。向下,協議驅動通過通用接口層和控制器交換數據,向上,協議驅動通常會根據設備具體的功能和內核的其它子系統進行交互。

例如,和 MTD 層交互以便把 SPI 接口的存儲設備實現為某個文件系統,和 TTY 子系統交互把 SPI 設備實現為一個 TTY 設備,和網絡子系統交互以便把一個 SPI 設備實現為一個網絡設備。如果是一個專有的 SPI 設備,我們也可以按設備的協議要求,實現自己的專有協議驅動。

SPI 通用設備驅動程序

考慮到連接在 SPI 控制器上的設備的可變性,在內核沒有配備相應的協議驅動程序,對于這種情況,內核為我們準備了通用的 SPI 設備驅動程序,該通用設備驅動程序向用戶空間提供了控制 SPI 控制的控制接口,具體的協議控制和數據傳輸工作交由用戶空間根據具體的設備來完成,在這種方式中,只能采用同步的方式和 SPI 設備進行通信,所以通常用于一些數據量較少的簡單 SPI 設備。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16203

    瀏覽量

    177416
  • 驅動
    +關注

    關注

    12

    文章

    1825

    瀏覽量

    85179
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1701

    瀏覽量

    91328
收藏 人收藏

    評論

    相關推薦

    Linux中CMake的使用3-不同目錄多個源文件

    上篇(Linux中CMake的使用2-同目錄下多個源文件)介紹了在同一目錄下有多個源文件時如何編寫CMakeLists.txt。
    的頭像 發表于 09-21 08:49 ?4003次閱讀
    Linux中CMake的使用3-不同<b class='flag-5'>目錄</b>多個<b class='flag-5'>源文件</b>

    matlab用戶目錄在哪里設置呀?

    求助各位大神,matlab用戶目錄在哪里設置呀?注意是用戶目錄,不是當前目錄
    發表于 10-27 10:44

    請問TI燒寫程序集中SPI燒寫程序時*.ais文件在哪目錄下?

    TI燒寫程序集中,SPI flash燒寫程序是輸入燒寫文件名,燒寫失敗,請問這個文件默認應該放在哪目錄下?
    發表于 05-17 17:08

    如何在PSoC Creator中設置和/或向目錄源文件添加搜索目錄

    你好,如何在PSoC Creator中設置和/或向目錄源文件添加搜索目錄?謝謝,云基 以上來自于百度翻譯 以下為原文Hello, How do I set and/or add a search
    發表于 06-20 15:25

    C源文件的完整目錄路徑是什么?

    我在Windows Explorer下找不到自己添加的C源文件和頭文件。在我指定的項目目錄中看不到那些.c和.h文件,這有點奇怪,因為它們沒有隱藏到我所能識別的程度。即使在使用命令行提
    發表于 04-02 08:55

    請問Multisim中的Electronics Workbench\EWB9 目錄在哪啊?

    請問Multisim中的Electronics Workbench\EWB9 目錄在哪啊?我想在Multisim中添加一個labview儀器,書上說要把生成的程序復制到這個文件中,找了很久都沒找到。還是說要安裝其他東西?
    發表于 04-21 16:34

    keil自帶的ST例程添加自己的源文件和頭文件應該放到哪個目錄

    用keil里的例程,修改寫GPIO流水燈的例程。直接在main()函數配置,是可以實現了;可是我做液晶顯示用自己的源文件和頭文件,應該放到哪個目錄下呢?比如說我的keil是裝在D盤的。我直接在D
    發表于 05-22 07:22

    請問DevEco目錄在哪里可以設置編譯包含?

    用 Native C++ 進行開發,在CMakeLists.txt 中添加了包含目錄,但是編譯報錯了。請問DevEco目錄在哪里可以設置編譯包含?
    發表于 04-15 11:50

    Labview寶典(程序寶典+源文件

    Labview寶典(程序寶典+源文件),有源文件
    發表于 12-22 14:50 ?0次下載

    調音板--protel源文件

    調音板--protel源文件 原理圖 PCB圖 都是源文件
    發表于 03-10 17:06 ?0次下載

    音調板 protel格式源文件

    音調板 protel格式源文件 PCB源文件
    發表于 06-15 17:36 ?46次下載

    AN147的源文件

    AN147的源文件
    發表于 06-05 16:39 ?3次下載
    AN147的<b class='flag-5'>源文件</b>

    Linux中CMake的使用2-同目錄下多個源文件

    上篇文章(Linux中CMake的使用1-單個源文件)介紹了編寫CMakeLists.txt的最基礎用法——只有一個源文件的情況。
    的頭像 發表于 09-20 08:57 ?1732次閱讀
    Linux中CMake的使用2-同<b class='flag-5'>目錄</b>下多個<b class='flag-5'>源文件</b>

    MegaRAID PSoC目錄在自述文件看到重要提示

    電子發燒友網站提供《MegaRAID PSoC目錄在自述文件看到重要提示.zip》資料免費下載
    發表于 08-02 16:03 ?0次下載
    MegaRAID PSoC<b class='flag-5'>目錄在</b>自述<b class='flag-5'>文件</b>看到重要提示

    最新MegaRAID PSoC目錄在自述文件看到重要提示

    電子發燒友網站提供《最新MegaRAID PSoC目錄在自述文件看到重要提示.zip》資料免費下載
    發表于 08-23 14:10 ?0次下載
    最新MegaRAID PSoC<b class='flag-5'>目錄在</b>自述<b class='flag-5'>文件</b>看到重要提示