色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

SPI子系統:SPI設備驅動

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

SPI 設備驅動

【設備】聲明在設備樹中

圖片

圖片

注意:設備的聲明,slave device node 應該包含在你所要掛載的 &spi node 下,將 device 綁定在 master 上。然后通過 pinctrl 方式指定 GPIO,并在驅動中操作 pinctrl 句柄。

【驅動】demo

Linux 內核使用 spi_driver 結構體來表示 spi 設備驅動,我們在編寫 SPI 設備驅動的時候需要實現 spi_driver。spi_driver 結構體定義在 include/linux/spi/spi.h 文件中。

spi_register_driver:注冊 spi_driver
spi_unregister_driver:銷掉 spi_driver
/* probe 函數 */
static int xxx_probe(struct spi_device *spi)
{

 /* 具體函數內容 */
 return 0;
}

/* remove 函數 */
static int xxx_remove(struct spi_device *spi)
{

 /* 具體函數內容 */
 return 0;
}

/* 傳統匹配方式 ID 列表 */
static const struct spi_device_id xxx_id[] = {

 {"xxx", 0},
 {}
};

/* 設備樹匹配列表 */
static const struct of_device_id xxx_of_match[] = {

 { .compatible = "xxx" },
 { /* Sentinel */ }
};

/* SPI 驅動結構體 */
static struct spi_driver xxx_driver = {

 .probe = xxx_probe,
 .remove = xxx_remove,
 .driver = {
  .owner = THIS_MODULE,
  .name = "xxx",
  .of_match_table = xxx_of_match,
  },
 .id_table = xxx_id,
};

/* 驅動入口函數 */
static int __init xxx_init(void)
{

 return spi_register_driver(&xxx_driver);
}

/* 驅動出口函數 */
static void __exit xxx_exit(void)
{

 spi_unregister_driver(&xxx_driver);
}

module_init(xxx_init);
module_exit(xxx_exit);

在驅動入口函數中調用 spi_register_driver 來注冊 spi_driver。

在驅動出口函數中調用 spi_unregister_driver 來注銷 spi_driver。

spi 讀寫數據demo

/* SPI 多字節發送 */
static int spi_send(struct spi_device *spi, u8 *buf, int len)
{
 int ret;
 struct spi_message m;
 
 struct spi_transfer t = {
  .tx_buf = buf,
  .len = len,
 };
 
 spi_message_init(&m); /* 初始化 spi_message */
 spi_message_add_tail(t, &m);/* 將 spi_transfer 添加到 spi_message 隊列 */
 ret = spi_sync(spi, &m); /* 同步傳輸 */
 return ret;
}
/* SPI 多字節接收 */
static int spi_receive(struct spi_device *spi, u8 *buf, int len)
{
 int ret;
 struct spi_message m;
 
 struct spi_transfer t = {
  .rx_buf = buf,
  .len = len,
 };
 
 spi_message_init(&m); /* 初始化 spi_message */
 spi_message_add_tail(t, &m);/* 將 spi_transfer 添加到 spi_message 隊列 */
 ret = spi_sync(spi, &m); /* 同步傳輸 */
 return ret;
}

除了 init、exit、probe、remove、read、write 函數外,其他的函數看需求實現,這幾個是最基本的。

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

    關注

    12

    文章

    1866

    瀏覽量

    85936
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1731

    瀏覽量

    92846
  • 系統
    +關注

    關注

    1

    文章

    1023

    瀏覽量

    21512
收藏 人收藏

    評論

    相關推薦

    深度解析Linux SPI總線和設備驅動架構

    SPI控制器不用關心設備的具體功能,它只負責把上層協議驅動準備好的數據按SPI總線的時序要求發送給SPI
    的頭像 發表于 02-07 08:16 ?8189次閱讀
    深度解析Linux <b class='flag-5'>SPI</b>總線和<b class='flag-5'>設備</b><b class='flag-5'>驅動</b>架構

    迅為RK3568開發板驅動指南Linux中通用SPI設備驅動

    迅為RK3568開發板驅動指南Linux中通用SPI設備驅動
    的頭像 發表于 01-23 11:02 ?2023次閱讀
    迅為RK3568開發板<b class='flag-5'>驅動</b>指南Linux中通用<b class='flag-5'>SPI</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b>

    【DragonBoard 410c試用體驗】9.DB410c開發板SPI驅動加載測試與nfc設備(PN532)-spi方式測試(failed)

    linux kernel3.2版本以后推薦使用dts來描述設備信息,spi驅動框架按照這個規定做了一些修改。SPI子系統core部分首先被加
    發表于 10-11 16:57

    如何使用RT-Thread SPI設備驅動

    菜單,修改the device name for console為uart1。開啟SPI總線及設備驅動并注冊SPI總線到系統:進入RT-Th
    發表于 10-25 14:20

    你想玩轉RT-Thread之SPI設備嗎?

    本應用筆記以驅動SPI接口的OLED顯示屏為例,說明了如何添加SPI設備驅動框架及底層硬件驅動
    的頭像 發表于 04-17 10:20 ?1.9w次閱讀
    你想玩轉RT-Thread之<b class='flag-5'>SPI</b><b class='flag-5'>設備</b>嗎?

    嵌入式Linux系統驅動原理和使用ARM Linux實現SPI驅動程序的說明

    介紹嵌入式Linux系統驅動原理;分析SPI協議的通信原理和微處理器S3C2440A中SPI接口的硬件結構;闡述SPI
    發表于 11-14 16:36 ?11次下載
    嵌入式Linux<b class='flag-5'>系統</b>的<b class='flag-5'>驅動</b>原理和使用ARM Linux實現<b class='flag-5'>SPI</b><b class='flag-5'>驅動</b>程序的說明

    SPI檢測是什么,SPI檢測設備的作用又是什么

    SPI是什么?SPI檢測是什么意思?SPI檢測設備的作用是什么?SPI是【Solder Paste Inspection】的簡稱,中文叫【錫
    發表于 07-08 16:14 ?3w次閱讀

    嵌入式Linux SPI驅動

    函數transfer_one_message: SPI發送護具函數,發送一個spi_message數據1.2 SPI設備驅動Linux內核使
    發表于 11-01 17:05 ?14次下載
    嵌入式Linux <b class='flag-5'>SPI</b><b class='flag-5'>驅動</b>

    硬件SPI與軟件模擬SPI速度區別實測

    硬件SPI與軟件模擬SPI速度區別實測目前為了程序移植方便,許多以SPI接口的芯片所提供的參考代碼大多都使用的是軟件SPI,比如筆者用過的存儲芯片W25Q16,
    發表于 12-22 19:13 ?9次下載
    硬件<b class='flag-5'>SPI</b>與軟件模擬<b class='flag-5'>SPI</b>速度區別實測

    SPI驅動源文件目錄在哪

    /drivers/ spi/spidev.c linux 提供的 SPI 通用設備驅動程序kernel- 4.14 /include/ linux /
    的頭像 發表于 07-25 10:49 ?886次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>驅動</b>源文件目錄在哪

    SPI通用接口層介紹

    SPI 通用接口層 SPI 通用接口層把具體的 SPI 設備的協議驅動SPI 控制器
    的頭像 發表于 07-25 10:52 ?865次閱讀

    SPI控制器驅動層功能介紹

    和相應的設備進行正確的數據交換 向通用接口層提供接口,使得上層的協議驅動可以通過通用接口層訪問控制器驅動 配合通用接口層,完成數據消息隊列的排隊和處理,直到消息隊列變空為止 SPI
    的頭像 發表于 07-25 10:58 ?1530次閱讀
    <b class='flag-5'>SPI</b>控制器<b class='flag-5'>驅動</b>層功能介紹

    SPI子系統driver軟件流程

    軟件流程 看懂該圖,對SPI 驅動框架就有完整的了解了。 1、2、3 按順執行,首先有 spi 總線的注冊,然后是 spi 控制器驅動加載,
    的頭像 發表于 07-25 11:01 ?884次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>子系統</b>driver軟件流程

    SPI子系統SPI時序圖

    ,硬件設計必須注意信號質量風險,軟件開發人員也要會看波形圖。 這里的參數,一般 spi 驅動不需要設置,但是半導體廠商提供的 spi 控制器驅動中,可以修改這些參數
    的頭像 發表于 07-27 10:51 ?4148次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>子系統</b>之<b class='flag-5'>SPI</b>時序圖

    Vision Board上的SPI設備驅動配置和SPI主控的外部loopback功能測試

    感謝發燒友/* attach spi device */static int rt_spi_device_init(void){ ? ?struct rt_spi_configuration cfg
    的頭像 發表于 06-04 09:21 ?805次閱讀
    Vision Board上的<b class='flag-5'>SPI</b><b class='flag-5'>設備</b><b class='flag-5'>驅動</b>配置和<b class='flag-5'>SPI</b>主控的外部loopback功能測試
    主站蜘蛛池模板: 2017天天拍天天拍香蕉视频 | 24小时日本免费看 | 老年日本老年daddy | 寂寞夜晚在线视频观看 | AV无码国产精品午夜A片麻豆 | 国产综合无码一区二区色蜜蜜 | 香蕉水蜜桃牛奶涩涩 | 亚洲国产成人爱AV在线播放丿 | 甜性涩爱bt下载 | 蜜柚免费视频高清观看在线 | 青草久久久 | 一本之道高清在线3线观看 一本之道高清视频在线观看 | 黑人阴茎插女人图片 | 姉调无修版ova国语版 | 国产午夜精品久久久久九九 | 熟女人妻久久精品AV天堂 | 麻豆国产自制在线观看 | 97碰成视频免费 | 亚洲一区二区三区乱码在线欧洲 | 在线精品视频免费观看 | 微拍秒拍99福利精品小视频 | 美女教师朝桐光在线播放 | 京香在线播放 | WWW国产精品人妻一二三区 | 国产精品嫩草99AV在线 | 日本阿v直播在线 | 天天躁躁水汪汪人碰人 | 久久草这里全是精品香蕉频线观 | 本庄优花aⅴ全部在线影片 被滋润的艳妇疯狂呻吟白洁老七 | 日日操夜夜操狠狠操 | 2022一本久道久久综合狂躁 | 大陆午夜伦理 | 亚洲午夜久久久精品电影院 | 一本大道熟女人妻中文字幕在线 | 亚洲AV 无码AV 中文字幕 | 黄A无码片内射无码视频 | 久久艹综合 | 成年妇女免费播放 | 亚洲合集综合久久性色 | 午夜人妻理论片天堂影院 | 99re久久精品在线播放 |