米爾用戶在使用i.MX6UL/i.MX6ULL系列產品開發時,需要調整GPIO在內核啟動階段的狀態,這怎么操作呢?在這里將用戶問題做一個詳細的整理,如果遇到相似問題可以參考:
現象:改了dts文件,在 &iomuxc 和 &iomuxc_snvs 的 pinctrl_hog_x 中加入了一些自定義的GPIO,操 作系統啟動后,使用 echo x > /sys/class/gpio/export 指令導出后,可以用程序正常控制,都沒有問題 。但是這些引腳在內核啟動階段都輸出了高電平,導致我們電路板上的蜂鳴器和LED在內核啟動階段,始終 是打開狀態,蜂鳴器會一直響。在UBOOT階段蜂鳴器是不響的,只有內核加載完畢打印 Starting kernel ... 這句開始,就會一直響,直到操作系統啟動后,把蜂鳴器關掉。 我好像是內核加載了 dts 中 iomux 相關配置后,對IO口做了初始化之類的動作導致的,但是我找不到這些代碼位置。
問題:出現以上問題,修改內核哪里可以調整GPIO在內核啟動階段的狀態?
米爾技術支持:在配置dts時需要配置GPIO pad_ctrl的值, 參考CPU 手冊《IMX6ULLRM》把PUS設置為00下拉。 參考下面的例子:


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式主板
+關注
關注
7文章
6107瀏覽量
37071 -
米爾科技
+關注
關注
5文章
227瀏覽量
22446
發布評論請先 登錄
相關推薦
熱點推薦
如何使用dtb方式啟動內核
/boot/zImagebootz 0x82000000 - 0x88000000至此,Linux內核就能啟動了。 (7)小結 從啟動Log上分析,現在內核無法掛在根文件系統,在
發表于 04-22 14:06
基于ARM體系的內核啟動解析
創建init進程以及內核進程,并啟動內核調度器。rest_init階段代碼如下,其注釋如下,主要作用就是先創建init進程使其進程號為1,這是第一個用戶空間進程,該進程執行后在衍生出一
發表于 09-14 12:02
在內核啟動時發現SPI驅動沒有正確運行?
在內核啟動中發現這個打印信息[ 1.138240] spi_gpio spi4.15: gpio-miso property not found, switching to no-rx
發表于 11-28 07:54
linux內核啟動流程
Linux的啟動代碼真的挺大,從匯編到C,從Makefile到LDS文件,需要理解的東西很多。畢竟Linux內核是由很多人,花費了巨大的時間和精力寫出來的。而且直到現在,這個世界上仍然有成千上萬的程序員在不斷完善Linux內核的
發表于 11-14 16:19
?4675次閱讀
Linux內核源碼分析--內核啟動命令行的傳遞過程
內核的啟動參數其實不僅僅包含在了cmdline中,cmdline不過是bootloader傳遞給內核的信息中的一部分。bootloader和內核的通信方式根據構架的不同而異。
發表于 05-05 15:28
?2016次閱讀
用戶與內核空間數據交換的方式之一:內核啟動參數
Linux 提供了一種通過 bootloader 向其傳輸啟動參數的功能,內核開發者可以通過這種方式來向內核傳輸數據,從而控制內核啟動行為。
發表于 05-14 15:42
?800次閱讀
Linux內核啟動流程(上)
本文先講解上篇,大家看到匯編不用擔心看不懂,在內核啟動階段,沒有特別復雜的流程,都是順序執行,只需一句一句閱讀代碼即可。
發表于 06-23 14:07
?2541次閱讀
如何在內核中啟動secondary cpu
啟動secondary cpu 內核在啟動secondary cpu之前當然需要為其準備好執行環境,因為內核中cpu最終都將由調度器管理,故此時調度子系統應該要初始化完成。 同時cpu
米爾科技改內核調整GPIO在內核啟動階段方案
評論