日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

驅(qū)動之路#22:reset-gpios參數(shù)能隨便寫嗎?

BSP調(diào)試從0到1 ? 來源:嵌入式分享 ? 作者:嵌入式分享 ? 2026-04-29 18:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

正文

剛開始在配置reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>時,我會疑惑:GPIO_ACTIVE_HIGH只是個“標記”嗎?能不能隨便寫成GPIO_ACTIVE_LOW,或者干脆不寫?

wKgZO2nm0MKAbQaoAABMSDI-XDs564.png

答案是:絕對不能隨便寫!它直接決定驅(qū)動對GPIO的控制邏輯,寫錯會導致設備功能異常。

GPIO_ACTIVE_HIGH不是“隨便的標記”

GPIO_ACTIVE_HIGH(或GPIO_ACTIVE_LOW)是Linux設備樹中定義的GPIO有效電平標識,本質(zhì)是告訴內(nèi)核和驅(qū)動:這個GPIO在什么電平狀態(tài)下代表“有效”(比如復位觸發(fā)、使能激活)。

  • GPIO_ACTIVE_HIGH:高電平有效;
  • GPIO_ACTIVE_LOW:低電平有效。

它不是“可有可無的參數(shù)”,而是DTS與驅(qū)動之間的**“約定規(guī)則”**——驅(qū)動會根據(jù)這個標識,決定如何控制GPIO電平,實現(xiàn)對應的硬件功能。

決定驅(qū)動的控制邏輯

驅(qū)動在獲取reset-gpios對應的GPIO后,會嚴格遵循GPIO_ACTIVE_HIGH/LOW的約定來操作GPIO,具體影響體現(xiàn)在3個方面:

1. 驅(qū)動對“有效狀態(tài)”的判斷邏輯

驅(qū)動中通常會用“邏輯值1代表有效,0代表無效”來編寫代碼,而GPIO_ACTIVE_HIGH/LOW會決定“邏輯值1”對應實際的高電平還是低電平。

大致過程是這樣的:GPIO_ACTIVE_HIGH/LOW會被內(nèi)核解析并存儲在gpio_desc中,驅(qū)動調(diào)用 gpiod_set_value() 時:若配置為GPIO_ACTIVE_HIGH,驅(qū)動傳入1則內(nèi)核設置 GPIO 為高電平,傳入0為低電平;若配置為GPIO_ACTIVE_LOW,驅(qū)動傳入1則內(nèi)核自動設置為低電平(有效電平),傳入0為高電平。驅(qū)動無需關心 “有效電平是高還是低”,只需按 “邏輯值”(1 = 有效,0 = 無效)調(diào)用接口,內(nèi)核會自動完成電平轉換。換言之,gpiod_set_value() 設置的是“邏輯值”而非“物理值”。

簡單說:驅(qū)動只關心“邏輯上是否有效”,而GPIO_ACTIVE_HIGH/LOW會把“邏輯有效”轉換成“實際電平”,驅(qū)動無需硬編碼電平高低,實現(xiàn)了“邏輯與硬件的解耦”。

2. 驅(qū)動對GPIO初始狀態(tài)的設置

驅(qū)動在申請GPIO時,會結合GPIO_ACTIVE_HIGH/LOW設置初始電平,避免設備上電后處于異常狀態(tài):

比如某設備要求“復位引腳默認拉高(無效),需要復位時拉低(有效)”,若DTS配置reset-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>,驅(qū)動申請GPIO時會:

#GPIOD_OUT_HIGH → 初始輸出高電平(無效狀態(tài)),符合設備要求reset_gpio= devm_gpiod_get(dev,"reset", GPIOD_OUT_HIGH);

若誤將DTS寫成GPIO_ACTIVE_HIGH,驅(qū)動會初始輸出低電平(有效狀態(tài)),導致設備上電后一直處于復位狀態(tài),無法正常啟動。

3. 驅(qū)動對中斷觸發(fā)方式的適配(若GPIO用作中斷)

如果GPIO不僅是復位控制,還兼作中斷引腳(比如設備復位完成后觸發(fā)中斷),GPIO_ACTIVE_HIGH/LOW會影響驅(qū)動對中斷觸發(fā)邊沿的配置:

  • GPIO_ACTIVE_HIGH→ 驅(qū)動可能配置“上升沿觸發(fā)中斷”(有效電平到來時觸發(fā));
  • GPIO_ACTIVE_LOW→ 驅(qū)動可能配置“下降沿觸發(fā)中斷”。

寫錯會導致中斷無法觸發(fā),驅(qū)動收不到設備的狀態(tài)反饋。

寫錯有什么后果?

GPIO_ACTIVE_HIGH/LOW配置錯誤,不是“小問題”,而是會直接導致設備故障,常見后果有3種:

1. 設備無法正常復位/啟動

比如某設備的復位邏輯是“低電平復位,高電平工作”(即GPIO_ACTIVE_LOW),若DTS寫成GPIO_ACTIVE_HIGH

  • 驅(qū)動觸發(fā)復位時會輸出高電平 → 設備無法進入復位狀態(tài);
  • 驅(qū)動釋放復位時輸出低電平 → 設備一直被復位,無法啟動。

2. 設備功能異常

比如某傳感器的使能引腳是“高電平使能(GPIO_ACTIVE_HIGH)”,若DTS寫成GPIO_ACTIVE_LOW

  • 驅(qū)動想“使能傳感器”(邏輯值1)→ 實際輸出低電平 → 傳感器未被使能,無法采集數(shù)據(jù);
  • 驅(qū)動想“關閉傳感器”(邏輯值0)→ 實際輸出高電平 → 傳感器一直工作,耗電增加甚至數(shù)據(jù)錯亂。

3. 硬件損壞(極端情況)

部分設備對復位/使能電平的時序和極性要求嚴格,比如電源芯片的使能引腳若長期處于錯誤電平,可能導致芯片過流、燒毀;電機驅(qū)動的使能引腳錯誤,可能導致電機誤啟動,引發(fā)機械故障。

如何正確配置?

GPIO_ACTIVE_HIGH/LOW的配置不能憑“感覺”,必須嚴格匹配硬件手冊和設備邏輯,步驟如下:

1. 查硬件手冊:確認設備的有效電平

這是最核心的一步!打開設備的datasheet(比如傳感器、芯片的手冊),找到復位/使能引腳的描述:

  • 比如手冊寫“Reset pin: Active Low” → 必須配置GPIO_ACTIVE_LOW;
  • 若寫“Enable pin: High level enable” → 配置GPIO_ACTIVE_HIGH

2. 確認GPIO與設備的電路連接

即使設備手冊要求“低電平復位”,若硬件電路中GPIO與設備復位引腳之間加了反向器(比如GPIO輸出高電平時,設備復位引腳實際是低電平),則需反向配置:

  • 設備要求低電平復位 + 反向器 → DTS配置GPIO_ACTIVE_HIGH(GPIO拉高=設備復位)。

3. 驅(qū)動中驗證:通過接口讀取有效電平配置

驅(qū)動中可通過gpiod_is_active_low()接口,驗證DTS配置的有效電平是否正確:

if(gpiod_is_active_low(reset_gpio)) {  dev_info(dev,"Reset GPIO is active lown");}else{  dev_info(dev,"Reset GPIO is active highn");}

若打印信息與硬件邏輯不符,說明DTS配置錯誤,需修正。

總結

GPIO_ACTIVE_HIGH不是“隨便填的參數(shù)”,而是DTS、驅(qū)動、硬件三者之間的“電平約定”

  • 對DTS來說,它是硬件邏輯的“文字描述”;
  • 對驅(qū)動來說,它是控制GPIO的“邏輯依據(jù)”;
  • 對硬件來說,它是確保功能正常的“電平規(guī)則”。

(完)


本人專注 Linux 驅(qū)動 & Linux/Android BSP 開發(fā)調(diào)試,可接外包項目/技術支持/問題定位。有需求或交個朋友可加微信:【Chen_WeChat2025】。

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

    關注

    5209

    文章

    20679

    瀏覽量

    337311
  • 驅(qū)動
    +關注

    關注

    12

    文章

    1994

    瀏覽量

    88727
  • GPIO
    +關注

    關注

    16

    文章

    1334

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在 Yocto 中集成由 HID 設備控制的 I2C 觸摸驅(qū)動程序?

    ;amp;ft260_gpio>; 中斷 = IRQ_TYPE_EDGE_FALLING>; reset-gpios = <&ft260_gpio 2 GPIO_ACTIVE_LOW>; 狀態(tài) = “ok”; }; };
    發(fā)表于 04-23 07:22

    驅(qū)動之路#21:一行 reset-gpios驅(qū)動為何就能用 GPIO?

    這行代碼不是給 CPU 看的,而是給內(nèi)核和驅(qū)動的 “約定說明書”,每一部分都有明確含義: reset-gpios:是 “屬性名”,遵循 Linux 設備樹的 GPIO 屬性命名規(guī)范(后綴-gpios
    的頭像 發(fā)表于 04-14 09:20 ?5848次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>之路</b>#21:一行 <b class='flag-5'>reset-gpios</b>,<b class='flag-5'>驅(qū)動</b>為何就能用 GPIO?

    驅(qū)動之路#20:Pinctrl 在手,引腳復用很順手

    ?歡迎關注,每周更新!? 本合集分享的是,我當初學習Linux驅(qū)動的來時路——《《驅(qū)動之路》開篇:自序pinctrl節(jié)點下(rk3576-pinctrl.dtsi),定義具體的引腳配置(復用
    的頭像 發(fā)表于 04-07 21:18 ?499次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>之路</b>#20:Pinctrl 在手,引腳復用很順手

    伺服驅(qū)動器增益參數(shù)的調(diào)整方法

    。 ? 方法一:高效便捷的自動調(diào)整 這是現(xiàn)代伺服驅(qū)動器的首選入門方法。調(diào)整工具會分析負載特性,自動計算并設定最佳參數(shù),應對多數(shù)常規(guī)負載,省時省力。部分先進驅(qū)動器還支持更智能的方式:
    的頭像 發(fā)表于 03-19 12:10 ?458次閱讀

    云臺電機驅(qū)動系統(tǒng)載波參數(shù)配置與調(diào)試

    載波參數(shù)是云臺電機驅(qū)動板 系統(tǒng)的核心控制變量,其配置合理性直接影響電機運行平滑性、定位精度、噪聲水平與效表現(xiàn)。本文針對永磁同步電機(PMSM)與無刷直流電機(BLDC)云臺驅(qū)動場景,
    的頭像 發(fā)表于 03-06 15:11 ?368次閱讀

    驅(qū)動之路#04:LCD 驅(qū)動程序分析(基于RK3576)

    ? 題圖:河北太行山脈,山頭密密麻麻都被太陽板覆蓋了。 歡迎關注,每周更新!? 本合集分享的是,我當初學習Linux驅(qū)動的來時路——《《驅(qū)動之路》開篇:自序 ? ? ?// 通用面板
    的頭像 發(fā)表于 02-17 08:20 ?1w次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>之路</b>#04:LCD <b class='flag-5'>驅(qū)動</b>程序分析(基于RK3576)

    驅(qū)動之路#03:LCD 時序參數(shù)分析

    ? 題圖:浙江普陀山客運中心最近獲得2021年度凡爾賽建筑獎。 歡迎關注,每周更新!? 本合集分享的是,我當初學習Linux驅(qū)動的來時路——《《驅(qū)動之路》開篇:自序13 tvb: 垂直上寬/后肩
    的頭像 發(fā)表于 02-10 08:27 ?2878次閱讀
    <b class='flag-5'>驅(qū)動</b><b class='flag-5'>之路</b>#03:LCD 時序<b class='flag-5'>參數(shù)</b>分析

    【瑞薩FPB-RA6E2試用】【瑞薩RA × Zephyr開發(fā)板評測】FPB-RAE62 SPI驅(qū)動 SSD1306顯示花屏問題解決

    ;ioport1 10 GPIO_ACTIVE_HIGH>; reset-gpios = <&ioport2 8 GPIO_ACTIVE_LOW>
    發(fā)表于 01-16 20:10

    電子工程師必備:SN65LVDS22和SN65LVDM22的技術解析

    SN65LVDS22和SN65LVDM22是采用LVDS技術的差分線路驅(qū)動器和接收器,能夠?qū)崿F(xiàn)高達400 Mbps的信號傳輸速率。通過復用器控
    的頭像 發(fā)表于 01-04 10:55 ?336次閱讀

    深入解析RL78/G22微控制器:特性、電氣參數(shù)與應用要點

    深入解析RL78/G22微控制器:特性、電氣參數(shù)與應用要點 一、引言 在當今的電子設計領域,微控制器的性能和特性對于產(chǎn)品的成功至關重要。Renesas的RL78/G22微控制器以其超低功耗、豐富
    的頭像 發(fā)表于 12-29 15:15 ?511次閱讀

    揭秘RESET復位鍵:引腳設計如何支撐硬件系統(tǒng)的重啟通路

    協(xié)同:復位引腳需明確電平閾值、響應時長等參數(shù),同時與電源模塊、芯片組的引腳形成穩(wěn)定通路,確保復位信號精準傳遞至CPU、PCI插槽等關鍵組件,避免因信號干擾或延遲導致復位失敗,保障硬件系統(tǒng)的穩(wěn)定性與可恢復性。 這個小小的引
    的頭像 發(fā)表于 11-28 15:18 ?508次閱讀
    揭秘<b class='flag-5'>RESET</b>復位鍵:引腳設計如何支撐硬件系統(tǒng)的重啟通路

    RGB接口的RESET的接法

    圖片接口定義的RESET腳到底要不要接?怎么接?求大神解答
    發(fā)表于 09-26 12:08

    FLASH燒/編程白皮書

    白皮書:如何燒Flash——不同場景不同需求下的選擇認識Flash?NAND vs. NOR如何燒/編程不同方案比較
    發(fā)表于 07-28 16:05 ?0次下載

    達實智能分享AI時代的心力驅(qū)動之路

    近日,由知名媒體IP《首席訪談》發(fā)起成立的企業(yè)決策人社群“首席朋友圈”走進達實智能,深入了解達實智能企業(yè)創(chuàng)新發(fā)展之路,共同探討企業(yè)家的“心力驅(qū)動”實踐。
    的頭像 發(fā)表于 07-23 11:23 ?1007次閱讀

    CYW20704數(shù)據(jù)表中的 VDDC RESET 是否指的是 RST_N?

    你好 IFX, 數(shù)據(jù)表中的 VDDC RESET 是否指的是 RST_N?
    發(fā)表于 07-07 07:43
    阜新市| 蓝山县| 安泽县| 婺源县| 渝北区| 梁平县| 阳曲县| 定襄县| 宁蒗| 都兰县| 仁化县| 西乌珠穆沁旗| 长泰县| 天峨县| 巴林左旗| 陕西省| 丰台区| 菏泽市| 张家港市| 长治县| 彭山县| 礼泉县| 合山市| 丰原市| 大埔区| 五河县| 格尔木市| 若羌县| 泉州市| 象州县| 红安县| 综艺| 达尔| 兴业县| 永胜县| 商洛市| 双流县| 胶州市| 都安| 呼伦贝尔市| 沽源县|