微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > i.MX6UL添加GPIO的方法基于飞凌嵌入式OKMX6UL开发板

i.MX6UL添加GPIO的方法基于飞凌嵌入式OKMX6UL开发板

时间:04-28 来源:互联网 点击:

所有GPIO输入为1。(如果为非零值,是因为读取对应的位为1,可以修改内核源码中drivers/gpio/gpio-generic.c文件,将其中中bgpio_get函数中

return bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio);修改为

return !!(bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio));

修改之后,value值为1)

\iomuxc\shell\di\in-test.sh,复制到forlinx(比如)目录下./in-test.sh 118

\iomuxc\shell\do\close.sh,复制到forlinx(比如)目录下./close.sh 118

\iomuxc\shell\do\open.sh,复制到forlinx(比如)目录下./open.sh 118

或者采用\iomuxc\write-117-out-high\test,复制到forlinx(比如)目录下./test 将gpio 117输出为高。


方法二:创建dev/gpio节点。

1、在设备树文件中添加设备节点定义以及其引脚定义:

并将其他复用引脚对应的功能disabed,保证这些引脚没被重复定义使用。引脚的pinmux可以查看imx6ul-pinfunc.h文件。

2、在driver/misc/gpio目录下添加gpio驱动gpio-user.c,名字需要与节点定义里的驱动名字保持相同,客户也可以自己写驱动。同时添加Kconfig和Makefile文件。

修改driver/misc下Kconfig和Makefile文件:

在driver/misc/Makefile 中添加:

obj-y            += gpio/

编辑driver/misc/Kconfig, 添加一行:

source "drivers/misc/gpio/Kconfig",如图:

在根目录下修改linux_imx6ul_config文件,添加:

CONFIG_GPIO_USER_INTF=y

3、编译。

make zImage

make ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi- dtbs

4、拷贝前面生成的zImage, imx6ul-14x14-evk.dtb 到 SD卡system目录中,SD卡方式烧录。

在dev下有gpio节点。

采用gpio-test.c为用户测试程序。编译为gpio-test。

使用gpio-test in 2测试DI。

使用gpio-test out 0 1 测试DO1 输出为高电平。

使用gpio-test out 0 0 测试DO1 输出为低电平。

http://www.forlinx.com/zixun/165.htm

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top