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

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子系統的函數。

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

    關注

    5087

    文章

    19148

    瀏覽量

    306156
  • Linux
    +關注

    關注

    87

    文章

    11322

    瀏覽量

    209857
  • 軟件
    +關注

    關注

    69

    文章

    4973

    瀏覽量

    87726
  • GPIO
    +關注

    關注

    16

    文章

    1212

    瀏覽量

    52182
  • 系統
    +關注

    關注

    1

    文章

    1017

    瀏覽量

    21376
收藏 人收藏

    評論

    相關推薦

    一文搞懂Linux pinctrl/gpio子系統

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

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

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

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

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

    Linux系統的功耗研究

    ,Linux正在嵌入式領域發揮著越來越重要的作用。對于嵌入式設備尤其是移動設備來說,功耗是系統的重要指標,系統設計的重要目標之一就是要盡可能地降低功耗?,F在,對功耗的研究主要集中在硬件解決方案上,而軟件
    發表于 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中使用GPIO

    了解如何在嵌入式Linux中使用GPIO,特別強調Zynq-7000系列。 我們介紹了基本的用戶和內核空間GPIO使用情況,以及GPIOGPIO
    的頭像 發表于 11-26 07:02 ?4085次閱讀

    Linux DMA Engine框架的介紹

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

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

    一眾嵌入式Linux驅動書中筆者最推崇宋寶華的《Linux設備驅動開發詳解》,但他完全可以更進一步上升到驅動框架個例(比如USBwifi模塊驅動)和應用層調用。有些書c語言基礎談起,
    發表于 11-01 16:58 ?14次下載
    嵌入式<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 ?1055次閱讀
    <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 ?1138次閱讀
    <b class='flag-5'>從</b>硬件<b class='flag-5'>軟件</b>角度理解Gadget<b class='flag-5'>框架</b>
    主站蜘蛛池模板: 日本久久久| 高h喷水荡肉爽文总攻| 亚洲色图在线播放| 国产精品99久久久久久AV| 亚洲视频中文字幕在线观看| 日本19xxxx撤尿| 国产99久久亚洲综合精品西瓜tv| 午夜神器18以下不能进免费| 国内九一激情白浆发布| 99国产精品白浆在线观看免费| 免费无码一区二区三区蜜桃大| 国产精品嫩草免费视频| 一道本在线伊人蕉无码| 深爱激情站| 欧美激情视频一区| 国产精品一区二区20P| wwwxxc| 小学生偷拍妈妈视频遭性教育| 久久99国产精品无码AV| 91成品视频| 伊人久久青青| 久久精品综合网中文字幕| 国产精品日本一区二区在线播放| JAVASCRIPTJAVA水多多| 亚洲精品视频在线观看免费| 色欲久久99精品久久久久久AV| 年轻夫妇韩剧中文版免费观看| 久久这里只精品热在线99| 狠狠婷婷综合久久久久久| FREE性丰满HD毛多多| 主播蜜汁丝袜精品自拍| 天天操天天干天天爽| 日本漫画之无彩翼漫画| 欧美日韩看看2015永久免费| 免费在线观看a视频| 免费看大黄高清网站视频在线| 久久婷婷丁香五月色综合啪免费| 国产成人久久婷婷精品流白浆| 5G在线观看免费年龄确认18| 午夜神器老司机高清无码| 桃色窝|