MTK平台GPIO的使用与调试

本文详细介绍了在LINUX系统下,MTK平台GPIO的配置、使用和调试方法,包括DWS配置、Kernel中的GPIO操作以及通过ADB进行GPIO的获取和配置。讲解了如何在Preloader和LK中初始化GPIO,并探讨了内核中的pinctrl子系统和gpiolib库函数的使用。
摘要由CSDN通过智能技术生成

我们在LINUX外设驱动的开发与调试中,GPIO的正确使用是一门必修课,本文主要描述MTK平台GPIO的使用和调试方法。

一,DWS的配置

打开dws文件的工具 DrvGen.exe 有新和旧两种,不同平台使用的工具可能不一样,新平台大多使用新的 DrvGen.exe,两种工具只是打开的方式和界面不一样,其实GPIO的配置项两个都大同小异,本文以MT6739平台为例,使用新的 DrvGen.exe 工具。

路径在:alps\vendor\mediatek\proprietary\scripts\dct下,打开后选择左上角Pro然后open我们项目上所使用的 codegen.dws 文件,配置完成后保存即可,使用起来非常方便。

如下图:

  • EintMode:是否当作中断引脚来使用,例如GPIO3,如果选中了该模式,其它模式是不可见的。
  • Def.Mode:GPIO默认的模式,即在系统启动过程中GPIO口的模式,GPIO口启动模式是定义在文件 cust_gpio_boot.h 文件中的,例如GPIO2的启动模式就是作为普通的GPIO口来使用。
  • M0~M7:由于GPIO口是可以复用的,除了作为普通的GPIO口使用之外,还有其它用途,例如GPIO4则作为UART1RX来使用,所以勾选对应的复选模式为M2。
  • nPull En:是指GPIO是否使能上拉或下拉,只有当GPIO作为输入模式时才生效。
  • InPull SelHigh:上面只设置了是否使能上拉或下拉,但并没有指出到底是上拉还是下拉,此处勾选了就表示上拉,否则表示设置下拉,同样只有当GPIO作为输入模式时才生效。
  • Def.Dir: 设置GPIO的默认方向,是输入还是输出,都需要设置的。
  • In、Out:In和Out这两个选项暂时不知道有何用处,根据字面意思,应该是允许输入或输出的。
  • OutHigh:指示GPIO口作为普通IO输出时的电平高低。
  • VarName1:变量的名字,就是为GPIO口定义一个别名,在 Preloader 和 LK 驱动中只需要这个属性就可以操作这个GPIO,如设置输出电平的高低等。
  • SMT:是否使能斯密特触发器。
  • IES:输入使能,控制输入是否有效。

Preloader初始化:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值