在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

從Linux平臺來研究GPIO軟件框架

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:Jasonangel ? 2023-09-28 16:05 ? 次閱讀

嵌入式 Linux 平臺

先總結一句:不管是單片機還是高端 ARM 平臺,最底層都是寄存器,硬件之上就是寄存器,任何封裝形式到最底層就是操作寄存器。

對于上了 Linux 系統的平臺,我們有其他方法,讓它可以像單片機一樣簡單的操作 IO 口,這得益于各路 Linux 大神對系統底層的封裝。

在 Linux 中有 pinctrl 和 gpio 子系統,它們提供了 API 接口給你使用,讓你方便的操控 GPIO 口。

Linux 內核針對 PIN 的配置推出了 pinctrl 子系統,對 GPIO 的配置推出了 gpio 子系統。

上面這句話很重要,我詳細解釋一下:這里是將 pin 腳和控制 IO 口輸入輸出分離。

pinctrl 子系統管理 200 個 IO 口的上拉下拉電阻電流驅動能力,是硬件底層的存在。如果 pinctrl 將某個 pin 腳初始化成了普通GPIO 而不是 IIC 或者 SPI,那么接下來我們就可以使用 gpio 子系統的 API 去操作 IO 口輸出高低電平。

傳統的配置 pin 的方式就是直接操作相應的寄存器,但是這種配置 方式比較繁瑣、而且容易出問題(比如 pin 功能沖突)。pinctrl子系統就是為了解決這個問題而引入的,pinctrl 子系統主要工作內容如下:

①、獲取設備樹中 pin 信息。

②、根據獲取到的 pin 信息來設置 pin 的復用功能

③、根據獲取到的 pin 信息來設置 pin 的電氣特性,比如上/下拉、速度、驅動能力等。

對于我們使用者來講,只需要在設備樹里面設置好某個 pin 的相關屬性即可,其他的初始化工作均由 pinctrl 子系統來完成,pinctrl子系統源碼目錄為 drivers/pinctrl。

注意,pinctrl 子系統也是一個標準的 platform 驅動,當設備和驅動匹配的時候,probe 函數會執行,只是 pinctrl 子系統采用的arch_initcall 去聲明,而不是module_init(device_initcall),所以在系統起來的時候它會先加載。(具體原因看下面這篇文章)

Linux 驅動掛載順序分析

圖片

gpio

可以看出其實兩者軟件框架一樣的,主要是 HW Abstract layer 具體實現不一樣。

你以為兩者是分離的,實際上不是的,gpio 子系統是基于 pinctrl 子系統的,gpio 的 API 接口的實現很多都是基于 pinctrl子系統的函數。

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

    關注

    5142

    文章

    19561

    瀏覽量

    315399
  • Linux
    +關注

    關注

    87

    文章

    11469

    瀏覽量

    212900
  • 軟件
    +關注

    關注

    69

    文章

    5124

    瀏覽量

    88975
  • GPIO
    +關注

    關注

    16

    文章

    1276

    瀏覽量

    53629
  • 系統
    +關注

    關注

    1

    文章

    1029

    瀏覽量

    21729
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    一文搞懂Linux pinctrl/gpio子系統

    注: 所有文章基于linux-3.13以上,本系列主要介紹 GPIO的一些基本知識,驅動操作GPIO的接口,應用層通過sysfs操作GPIO的接口,
    發表于 06-09 09:52 ?3362次閱讀

    如何linux控制SCU GPIO

    我有一個使用 IMX8QM 的定制板,我需要能夠 linux 控制 SCU GPIO。 我已經內核啟用了 scu gpio,找到了 im
    發表于 04-01 07:59

    需求的角度去理解Linux系列:總線、設備和驅動

    %的開發工作量,而你只需要完成20%的開發工作量。Linux平臺上的各個子系統,如設備驅動模型、input子系統、I2C總線、frame buffer驅動等等都屬于軟件框架,它是針對特
    發表于 03-11 14:45

    Windows平臺遷移到Linux平臺怎么實現?

    我們試圖Windows平臺遷移到Linux平臺。所以我們正在嘗試為先前的塊設計重新生成位文件。但是我們遇到了異常錯誤。是否有任何過程編譯
    發表于 08-28 12:38

    Linux系統的功耗研究

    Linux正在嵌入式領域發揮著越來越重要的作用。對于嵌入式設備尤其是移動設備來說,功耗是系統的重要指標,系統設計的重要目標之一就是要盡可能地降低功耗。現在,對功耗的研究主要集中在硬件解決方案上,而軟件
    發表于 11-04 06:45

    Linux 驅動 = 軟件框架 + 硬件操作

    ??Linux 驅動 = 軟件框架 + 硬件操作??驅動程序依賴于 Linux 內核,你為開發板 A 開發驅動,那就先在 Ubuntu 中得到、 配置、編譯開發板 A 所使用的
    發表于 12-17 07:11

    基于Linux的XFRM框架下IPSec VPN的研究

    針對現有 IPSec VPN 系統在效率和可靠性方面存在的問題,提出并改進了一種基于Linux最新內核平臺的 IPSec VPN網關系統。給出Linux 的XFRM 框架結構和函數調用
    發表于 04-13 09:31 ?31次下載

    基于Linux的實時平臺研究

    主要介紹了一個基于Linux 操作系統的實時平臺的技術研究和實現方法。所研究的實時平臺以X86 體系PC 為硬件環境,
    發表于 06-01 10:31 ?11次下載

    嵌入式Linux軟件測試框架研究

    嵌入式Linux 軟件是最難測試的一類軟件。在測試過程中通過使用有效的測試框架,可以顯著提高測試效率,最終確保軟件質量。通過對嵌入式
    發表于 06-07 17:14 ?29次下載

    第8章 Linux軟件開發平臺軟件配置

    Linux軟件開發平臺軟件配置 8.1 Linux 體系結構 8.2 Linux開發
    發表于 04-11 14:38 ?3次下載

    TI達芬奇軟件框架技術的研究與改進

    TI達芬奇軟件框架技術的研究與改進
    發表于 10-21 09:23 ?1次下載
    TI達芬奇<b class='flag-5'>軟件</b><b class='flag-5'>框架</b>技術的<b class='flag-5'>研究</b>與改進

    Linux DMA Engine框架的介紹

    此會話描述如何設備驅動程序在Linux中使用DMA。 這包括內存分配,緩存控制和DMA設備控制。 詳細介紹了Linux DMA Engine框架
    的頭像 發表于 11-23 06:29 ?6672次閱讀

    嵌入式Linux驅動開發基礎到框架

    一眾嵌入式Linux驅動書中筆者最推崇宋寶華的《Linux設備驅動開發詳解》,但他完全可以更進一步上升到驅動框架個例(比如USBwifi模塊驅動)和應用層調用。有些書c語言基礎談起,
    發表于 11-01 16:58 ?15次下載
    嵌入式<b class='flag-5'>Linux</b>驅動開發<b class='flag-5'>從</b>基礎到<b class='flag-5'>框架</b>

    Linux驅動分析之RTC框架

    Linux內核啟動時,它會RTC中讀取時間與日期,作為基準值。然后通過軟件維護系統時間和日期。Linux系統中提供了RTC核心層,對于
    的頭像 發表于 05-26 15:12 ?1204次閱讀
    <b class='flag-5'>Linux</b>驅動分析之RTC<b class='flag-5'>框架</b>

    硬件軟件角度理解Gadget框架

    2. 硬件軟件角度理解 Gadget 框架 USB 傳輸的核心是 endpoint,使用 endpoint 可以收發數據。在 endpoint 之上,就可以模擬 USB 串口、USB 觸碰屏
    的頭像 發表于 07-13 11:32 ?1474次閱讀
    <b class='flag-5'>從</b>硬件<b class='flag-5'>軟件</b>角度理解Gadget<b class='flag-5'>框架</b>
    主站蜘蛛池模板: 免费观看一级特黄欧美大片 | 精品少妇一区二区三区视频 | 亚洲 欧美 自拍 另类 欧美 | 精品成人在线观看 | 国产三级中文字幕 | 三级网址在线播放 | 夜夜欢视频| 中文字幕二区三区 | 国产亚洲欧美成人久久片 | 日在线视频| 成人久久久精品乱码一区二区三区 | 国产精品国产主播在线观看 | 啪啪黄色 | 1515hh四虎免费观38com | 五月婷婷在线播放 | 啪啪日韩 | 亚洲一一在线 | 免费看黄的视频网站 | 国产一级久久免费特黄 | 精品免费 | 5x视频在线观看 | 欧美一级片免费在线观看 | 天天插天天色 | 亚洲伊人成综合成人网 | 亚洲最大成人 | 日本黄色生活片 | 一卡二卡≡卡四卡亚洲高清 | 热re66久久精品国产99热 | 女人精aaaa片一级毛片女女 | 五月六月婷婷 | 看亚洲a级一级毛片 | 九九九精品午夜在线观看 | 天天干视频网 | 好爽好大www视频在线播放 | 免费国产综合视频在线看 | 国产精品成人一区二区 | 日本xxxx色视频在线观看 | 四虎最新免费网址 | 男女在线观看视频 | 四虎永久在线精品视频免费观看 | 国产资源网 |