"); //-->
本文档主要介绍 iMX6 板子 gpio 引脚读写配置。有关平台文件的设备注册的资料可以参
考“iTOP-iMX6-平台文件注册设备”文档。注册的设备名称是“gpio_ctl”。
硬件环境:iMX6 开发板:核心板 v_1.2、底板 v_2.2(以及 v_2.1 底板)。
软件环境:Ubuntu12.04。
1.4 平台文件修改
进入 iTOPiMX6_android4.4.2/kernel_imx/arch/arm/mach-mx6/目录,使用 vi
board-mx6q_topeet.c 命令,打开 board-mx6q_topeet.c 文件。
搜索关键词“CONFIG_LEDS_CTL”,按照 leds 模块,添加 gpio 的配置。如下如所示。

修改完成后,保存退出。再次打开 board-mx6q_topeet.c 文件。
搜索关键词“LEDS_CTL”,按照 leds 模块,添加 gpio 配置。如下图所示。

添加完成后,保存退出。
接着进入“iTOP-iMX6_android4.4.2/kernel_imx/drivers/char”目录,使用“vi
Kconfig”命令打开 Kconfig 文件。
搜索关键词”LEDS_CTL”,按照 leds 模块,添加 gpio 配置。如下图所示。

修改完成后,保存退出。
可按下面步骤验证一下。
进入内核目录,依次使用命令”cp config_for_iTOPiMX6_linux .config”、” export
ARCH=arm”、”make menuconfig”。进入 Device Drivers →Character devices 目
录,可以看见新添加的配置。如下图所示。

选中,退出,按照”iTOP-i.MX6 开发板之全能版使用手册”中的内核编译步骤,进行编
译内核。重新烧写到开发板。
开发板启动后,使用命令“ls /sys/devices/platform/”可以查看到新注册的 gpio_ctl 设
备。如下图所示。

至此,设备注册完成。
1.5 驱动加载及应用测试
1.5.1 读操作
具体编译过程不再赘述。依然可以参考“iTOP-iMX6-GPIO 读取 GPIO 以及拨码开关状
态”文档。下面讲解加载过程和测试过程。
可以通过挂载 nfs 共享目录、tftp 传输文件和 U 盘挂载等方法,把 iTOP-
iMX6_gpio_read.ko 文件上传到开发板。
使用 insmod 命令加载驱动模块。如下图。

在 probe 函数中,有获取 gpio 状态的函数,然后打印出来。如下图。

下面使用”./iMX6_gpio_read”命令运行应用测试程序,检测 gpio 状态。如下图。

此时检测到的状态和刚加载驱动时状态一致。
通过驱动程序,我们可以得知,第一个 gpio 为 1 号拨码开关。后面依次为 U38 接口,1
号、2 号、3 号、10 号、12 号引脚。如下图。

由上图可知,和我们预期相同。
使用引线连接 11 号引脚和 12 号引脚、使用引线连接 4 号引脚和 2 号引脚。然后使用
“./iMX6_gpio_read”命令,运行测试程序。结果如下图。

测试完成。
1.5.2 写操作
与读操作类似。具体编译过程不再赘述。依然可以参考“iTOP-iMX6-GPIO 读取 GPIO
以及拨码开关状态”文档。下面讲解加载过程和测试过程。
可以通过挂载 nfs 共享目录、tftp 传输文件和 U 盘挂载等方法,把 iTOP-
iMX6_gpio_write.ko 文件上传到开发板。
使用 insmod 命令加载驱动模块。如下图。

在 probe 函数中,我们已经将各个 gpio 状态设置为 1,也就是高电平,如下图。

现在 U38 上的五个引脚均为高电平。通过万用表测量电压均为 3.3v(4 号、9 号引脚为
地)。下面调用应用程序,改变引脚的电压值。使用”./iMX6_gpio_write 0 1”命令改变 1
号引脚的电压值。如下图。

此时使用万用表测量引脚 1 的电压值。为 0V。
下面说明一下运行应用程序时,传递的两个参数。第一参数 cmd 表示状态。1 表示高电
平、0 表示低电平。第二个参数 arg 表示对应操作的 gpio。arg 为 0 表示 1 号拨码开关、为
1~5 表示 U38 接口的 1 号、2 号、3 号、10 号、12 号引脚。
下面把 1 号引脚拉高,10 号引脚拉低。使用命令”./iMX6_gpio_write 1 1”
和”./iMX6_gpio_write 0 4”。如下图。

使用万用表测量这两个引脚的电压。1 号引脚为 3.3v,10 号引脚为 0v。
测试完成。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
[原创]2410开发板全套不过千元钱!
TJA1041 高速CAN总线收发器 (英)
Photonic获得1.3亿美元资金以加速量子计算
大型语言模型在工业应用中的应用
德州仪器 TMS320C6474 DSP 评估板
ChinaEEC.com中国电子设备委员会出售!
CES 2026:首款固态车辆可能是摩托车
英伟达的新Rubin架构在网络领域蓬勃发展
请问如何c和汇编混合编码?
脉冲式自动充电器电路(3)
TJA1040 高速CAN总线收发器 (英)
LG在CES 2026上呈现充满感情的情报方法
TEA152x数据手册 (英)
ads1.2和gcc的eadi版本不对,链接不通过。
全自动镍镉电池充电器电路
电源管理设计贴士
随着2026年初,6G标准化逐渐临近
如何对 Newlib 进行多线程测试
TJA1020 LIN 收发器应用指南 (英)
通用GridEdge分析仪针对电网中最快的动态数据
ZigBee CC2480 社区视频
TJA1020 LIN 收发器手册 (英)
超声波扫描转换演示 OMAP3530 EVM
脉冲式自动充电器(1)
低功耗射频和德州仪器的解决方案
脉冲式自动充电器电路(2)
OpenAI 悄然推出支持25种语言的ChatGPT翻译
自制镍镉电池自动充电器电路
IMEC 在 UWB 上
加了滤波电路,纹波却被放大了