米尔用户在使用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下拉。 参考下面的例子:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
/boot/zImagebootz 0x82000000 - 0x88000000至此,Linux内核就能启动了。 (7)小结 从启动Log上分析,现在内核无法挂在根文件系统,在
发表于 04-22 14:06
问题的,但是能不能映射到设备文件,供开发者进行读写操作,那就需要检查内核编译选项了,这里刚好是比较坏的一种情况,米尔厂家出厂镜像是没有打开USBHID通信的,必须让开发者重新编译内核镜像,那么这里就涉及到
发表于 08-29 16:10
创建init进程以及内核进程,并启动内核调度器。rest_init阶段代码如下,其注释如下,主要作用就是先创建init进程使其进程号为1,这是第一个用户空间进程,该进程执行后在衍生出一
发表于 09-14 12:02
在内核启动中发现这个打印信息[ 1.138240] spi_gpio spi4.15: gpio-miso property not found, switching to no-rx
发表于 11-28 07:54
linux启动时内核解压过程分析,一份不错的文档,深入了解内核必备
发表于 03-09 13:39
•1次下载
Linux内核文档:ARM-启动
发表于 10-30 10:15
•6次下载
Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多。毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的。而且直到现在,这个世界上仍然有成千上万的程序员在不断完善Linux内核的
发表于 11-14 16:19
•4378次阅读
Linux 提供了一种通过 bootloader 向其传输启动参数的功能,内核开发者可以通过这种方式来向内核传输数据,从而控制内核启动行为。
发表于 05-14 15:42
•524次阅读
ATMEL ARM920 内核芯片
发表于 11-25 09:47
•2840次阅读
本文档的主要内容详细介绍的是Linux内核GPIO操作函数的详解分析免费下载。
发表于 01-22 16:58
•28次下载
混合内核实质上也是微内核,而外内核是一种比较极端的设计方法,目前还处于研究阶段,所以我们就着重讨论宏内核与微
发表于 03-17 16:05
•11次下载
本文先讲解上篇,大家看到汇编不用担心看不懂,在内核启动阶段,没有特别复杂的流程,都是顺序执行,只需一句一句阅读代码即可。
发表于 06-23 14:07
•1746次阅读
本篇是通用内核启动阶段,一般是C语言实现。
发表于 06-23 14:08
•651次阅读
DVFS 即动态电压频率调整,针对 SOC主频的不同,需要动态调整 SOC 的 Core Power。通过调整内核供电电压,实现SOC主频的调整
发表于 09-19 17:01
•887次阅读
启动secondary cpu 内核在启动secondary cpu之前当然需要为其准备好执行环境,因为内核中cpu最终都将由调度器管理,故此时调度子系统应该要初始化完成。 同时cpu
发表于 12-05 15:46
•698次阅读
评论