在线观看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子系統的函數。

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

    關注

    5122

    文章

    19424

    瀏覽量

    312810
  • Linux
    +關注

    關注

    87

    文章

    11414

    瀏覽量

    212260
  • 軟件
    +關注

    關注

    69

    文章

    5087

    瀏覽量

    88742
  • GPIO
    +關注

    關注

    16

    文章

    1237

    瀏覽量

    53261
  • 系統
    +關注

    關注

    1

    文章

    1024

    瀏覽量

    21649
收藏 人收藏

    評論

    相關推薦

    一文搞懂Linux pinctrl/gpio子系統

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

    如何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 ?6582次閱讀

    嵌入式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 ?1154次閱讀
    <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 ?1380次閱讀
    <b class='flag-5'>從</b>硬件<b class='flag-5'>軟件</b>角度理解Gadget<b class='flag-5'>框架</b>
    主站蜘蛛池模板: 久综合色| 精品影视网站入口 | 亚洲人成www在线播放 | 猛操在线 | 日本一区不卡视频 | 亚洲欧洲精品成人久久曰影片 | 在线天天干 | 亚洲一级毛片免费在线观看 | 免费网站日本永久免费观看 | 99视频网址 | 日韩一区二区三区在线 | 欧美性xxxx巨大黑人猛 | 激情综合婷婷丁香六月花 | 中文在线资源链接天堂 | 99精品视频免费 | 欧美3d成人动画在线 | freesexvideo性欧美tv | tube44在线观看 | 天天好比网 | 亚洲一级毛片免观看 | 亚洲国产人成在线观看 | 久久久精品免费国产四虎 | 午夜国产高清精品一区免费 | 国产一级特黄aaaa大片野外 | 欧美日本一区二区三区道 | 国产小视频你懂的 | 色在线视频观看 | 在线观看播放视频www | 4438全国最大成人免费高清 | 久久久久国产精品四虎 | 亚洲男人的天堂久久香蕉网 | 深夜视频在线 | 国产黄色小视频 | 美女屁屁免费视频网站 | 一级黄色录像视频 | 伊人操| 精品福利视频网 | 一区免费 | 性欧美视频在线观看 | 国产色司机在线视频免费观看 | 国内一区二区三区精品视频 |