一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

SPI控制器驅(qū)動(dòng)層功能介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-25 10:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SPI 控制器驅(qū)動(dòng)層

SPI 控制器驅(qū)動(dòng)層負(fù)責(zé)最底層的數(shù)據(jù)收發(fā),主要有以下功能:

  1. 申請(qǐng)必要的硬件資源,比如中斷、DMA 通道、DMA 內(nèi)存緩沖區(qū)等等
  2. 配置 SPI 控制器的工作模式和參數(shù),使之可以和相應(yīng)的設(shè)備進(jìn)行正確的數(shù)據(jù)交換
  3. 向通用接口層提供接口,使得上層的協(xié)議驅(qū)動(dòng)可以通過通用接口層訪問控制器驅(qū)動(dòng)
  4. 配合通用接口層,完成數(shù)據(jù)消息隊(duì)列的排隊(duì)和處理,直到消息隊(duì)列變空為止

SPI 主機(jī)驅(qū)動(dòng)就是 SOC 的 SPI 控制器驅(qū)動(dòng)。Linux 內(nèi)核使用 spi_master/spi_controller 表示 SPI 主機(jī)驅(qū)動(dòng),spi_master 是個(gè)結(jié)構(gòu)體,定義在 include/linux/spi/spi.h 文件中。

SPI 主機(jī)驅(qū)動(dòng)的核心就是申請(qǐng) spi_master,然后初始化 spi_master,最后向 Linux 內(nèi)核注冊(cè) spi_master。

API 如下:

spi_alloc_master 函數(shù):申請(qǐng) spi_master。
spi_master_put 函數(shù):釋放 spi_master。

spi_register_master函數(shù):注冊(cè) spi_master。
spi_unregister_master 函數(shù):注銷 spi_master。

spi_bitbang_start函數(shù):注冊(cè) spi_master。
spi_bitbang_stop 函數(shù):注銷 spi_master。

SPI 主機(jī)驅(qū)動(dòng)的加載

以 MTK 為例,源碼來自于小米開源項(xiàng)目

https://github.com/MiCode/Xiaomi_Kernel_OpenSource

小米每做一個(gè)項(xiàng)目,都會(huì)把 kernel 部分開源,因?yàn)樾枰裱?Linux GPL 開源協(xié)議。

【設(shè)備】聲明在設(shè)備樹中

kernel-4.14/arch/arm64/boot/dts/mediatek/mt6885.dts

圖片

【驅(qū)動(dòng)】

kernel-4.14/drivers/spi/spi-mt65xx.c

圖片

圖片

匹配以后,probe 函數(shù)執(zhí)行,申請(qǐng) spi_master,初始化 spi_master,最后向 Linux 內(nèi)核注冊(cè) spi_master。

圖片

圖片

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

    關(guān)注

    114

    文章

    17113

    瀏覽量

    184377
  • 驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    12

    文章

    1918

    瀏覽量

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

    關(guān)注

    17

    文章

    1804

    瀏覽量

    96023
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深度解析Linux SPI總線和設(shè)備驅(qū)動(dòng)架構(gòu)

    SPI控制器不用關(guān)心設(shè)備的具體功能,它只負(fù)責(zé)把上層協(xié)議驅(qū)動(dòng)準(zhǔn)備好的數(shù)據(jù)按SPI總線的時(shí)序要求發(fā)送給SPI
    的頭像 發(fā)表于 02-07 08:16 ?8369次閱讀
    深度解析Linux <b class='flag-5'>SPI</b>總線和設(shè)備<b class='flag-5'>驅(qū)動(dòng)</b>架構(gòu)

    步進(jìn)電機(jī)驅(qū)動(dòng)控制器介紹

    01步進(jìn)電機(jī)驅(qū)動(dòng)控制器步進(jìn)電機(jī)驅(qū)動(dòng)器作為實(shí)驗(yàn)裝置可控的部分,能夠提供自動(dòng)測(cè)量的方法。前面已經(jīng)有兩款步進(jìn)電機(jī)驅(qū)動(dòng)器:SH-20403AXIS12雙軸藍(lán)牙移動(dòng)框架基于ESP8266WiFi
    發(fā)表于 08-31 08:32

    控制器功能

    本視頻主要介紹控制器功能,分別有數(shù)據(jù)緩沖、差錯(cuò)控制、數(shù)據(jù)交換、狀態(tài)說明、接收和識(shí)別命令、地址識(shí)別,其次介紹了DMA
    的頭像 發(fā)表于 11-24 10:38 ?7.9w次閱讀

    關(guān)于SPI繼電器控制驅(qū)動(dòng)器設(shè)計(jì)要領(lǐng)的分析和應(yīng)用

    通過上一篇SPI繼電器控制驅(qū)動(dòng)器原理、特性及其模式的講解,我們對(duì)SPI繼電器控制驅(qū)動(dòng)器有了初步的
    的頭像 發(fā)表于 09-23 10:02 ?3302次閱讀
    關(guān)于<b class='flag-5'>SPI</b>繼電器<b class='flag-5'>控制</b><b class='flag-5'>驅(qū)動(dòng)器</b>設(shè)計(jì)要領(lǐng)的分析和應(yīng)用

    關(guān)于SPI繼電器驅(qū)動(dòng)控制器的現(xiàn)狀和發(fā)展應(yīng)用分析

    作為一個(gè)以SPI通訊為主要控制方式的驅(qū)動(dòng)器,如果微控制器驅(qū)動(dòng)器之間的SPI通信損壞,意味著發(fā)送
    的頭像 發(fā)表于 09-23 10:07 ?4208次閱讀
    關(guān)于<b class='flag-5'>SPI</b>繼電器<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>控制器</b>的現(xiàn)狀和發(fā)展應(yīng)用分析

    基于SPI的EEPROM控制器設(shè)計(jì)與實(shí)現(xiàn)

    應(yīng)用實(shí)例描述了EEPROM讀寫操作的流程和時(shí)序。通過編寫ARM處理驅(qū)動(dòng)程序,對(duì)控制器進(jìn)行操作,實(shí)現(xiàn)了對(duì)EEPROM的讀與寫的具體過程,同時(shí)驗(yàn)證了SP1總線接口設(shè)計(jì)的正確性。關(guān)鍵詞:SPI
    發(fā)表于 08-04 14:59 ?20次下載
    基于<b class='flag-5'>SPI</b>的EEPROM<b class='flag-5'>控制器</b>設(shè)計(jì)與實(shí)現(xiàn)

    linux spi應(yīng)用驅(qū)動(dòng)以及回環(huán)測(cè)試代碼

    linux spi應(yīng)用驅(qū)動(dòng)以及回環(huán)測(cè)試代碼
    發(fā)表于 10-22 15:47 ?2次下載

    STM32微控制器上的Octo-SPI接口

    STM32微控制器上的Octo-SPI接口
    發(fā)表于 11-21 08:11 ?4次下載
    STM32微<b class='flag-5'>控制器</b>上的Octo-<b class='flag-5'>SPI</b>接口

    車身控制器的各個(gè)功能規(guī)范介紹

    之前有段時(shí)間寫過幾篇幾個(gè)車載控制器功能介紹,其中有一篇就是車身控制器功能介紹(回看戳:談?wù)勡?/div>
    的頭像 發(fā)表于 01-15 09:20 ?3754次閱讀

    MAX6951/MAX6950 LED顯示驅(qū)動(dòng)器與MAXQ2000微控制器的通信

    MAX6951/MAX6950 SPI LED驅(qū)動(dòng)器簡單易用的共陰極顯示驅(qū)動(dòng)器,通過SPI串行接口連接微
    的頭像 發(fā)表于 06-16 15:34 ?1322次閱讀
    MAX6951/MAX6950 LED顯示<b class='flag-5'>驅(qū)動(dòng)器</b>與MAXQ2000微<b class='flag-5'>控制器</b>的通信

    基于FPGA的SPI Flash控制器的設(shè)計(jì)方案

    核能夠進(jìn)行移植和復(fù)用,作為SOC芯片的功能模塊。SPI Flash控制器采用VHDL語言進(jìn)行編寫,在Mode
    的頭像 發(fā)表于 07-15 16:55 ?2721次閱讀
    基于FPGA的<b class='flag-5'>SPI</b> Flash<b class='flag-5'>控制器</b>的設(shè)計(jì)方案

    SPI驅(qū)動(dòng)源文件目錄在哪

    SPI 的主要數(shù)據(jù)結(jié)構(gòu)和函數(shù) spi 控制器驅(qū)動(dòng),IC 廠商提供,不同廠商命名不同 kernel - 4 . 14 /drivers/spi
    的頭像 發(fā)表于 07-25 10:49 ?1176次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>驅(qū)動(dòng)</b>源文件目錄在哪

    SPI通用接口介紹

    SPI 通用接口 SPI 通用接口把具體的 SPI 設(shè)備的協(xié)議驅(qū)動(dòng)
    的頭像 發(fā)表于 07-25 10:52 ?1081次閱讀

    利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動(dòng)程序設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《利用SPI控制器控制nRF24L01射頻模塊的驅(qū)動(dòng)程序設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-06 16:34 ?1次下載
    利用<b class='flag-5'>SPI</b><b class='flag-5'>控制器</b><b class='flag-5'>控制</b>nRF24L01射頻模塊的<b class='flag-5'>驅(qū)動(dòng)</b>程序設(shè)計(jì)

    詳解Zynq中的SPI控制器

    本文簡單介紹Zynq中的SPI控制器。本文將“master”稱為“主機(jī)”;將“slave”稱為“從機(jī)”;將“slave slect”從機(jī)選擇簡稱為SS。
    的頭像 發(fā)表于 03-31 10:35 ?605次閱讀
    詳解Zynq中的<b class='flag-5'>SPI</b><b class='flag-5'>控制器</b>