本文档主要讲解迅为-iMX6 开发板,通过 sys 文件的方式来控制 GPIO。

要通过 sys 控制 GPIO,需要做以下几步操作:

1 开启内核中的“GPIO_SYSFS”驱动配置;

2 确保 IO 被配置为 GPIO,并且没有驱动调用;

3 计算 GPIO 编号,通过命令或者脚本操作 GPIO。

1 GPIO_SYSFS 配置

如下图所示,可以看到内核中 GPIO_SYSFS 是默认配置的,这个驱动所有原厂 BSP 基本

都会包含,一般情况下是默认配置的。

2 确保 IO 被配置为 GPIO,并且没有驱动调用

这里以 LED 的 GPIO 为例, 将 LED 的驱动去掉,确保没有驱动调用。

Device Drivers --->

Character devices --->

Enable LEDS config ---去掉,并重新编译内核烧写到开发板中。

如下图所示配置 menuconfig。

烧写到开发板中,确保没有 led 的设备节点,默认的内核中是有 led 设备节点的,如下图

所示。

3 计算 GPIO 编号并测试

LED 的网络标号为:KEY_ROW6

LED 对应 GPIO 的 PIN 脚名称为:GPIO_2

GPIO_2 对应的宏定义为:#define MX6QDL_PAD_GPIO_2__GPIO1_IO02

那么 GPIO_2 对应的 GPIO 的 bank[n]为 GPIO1_IO02,也就是 bank 1 的 02 号 GPIO。

GPIO 的编号计算方法为:nr=(P -1)* 32 + N;

nr 为编号,P 为 bank 号,N 为具体 bank 中的编号。

那么 P=1,N=2,通过计算得出 nr=2。

测试命令为:

echo nr > /sys/class/gpio/export

echo out > /sys/class/gpio/gpionr/direction

echo 1 > /sys/class/gpio/gpionr/value ---> 写高电平,小灯亮

echo 0 > /sys/class/gpio/gpionr/value ---> 写低电平,小灯灭

以上 nr 替换成 GPIO 的编号,则命令为:

echo 2 > /sys/class/gpio/export

echo out > /sys/class/gpio/gpio2/direction

echo 1 > /sys/class/gpio/gpio2/value --->写高电平,小灯亮

echo 0 > /sys/class/gpio/gpio2/value ---> 写低电平,小灯灭

如下图所示,执行三条命令之后小灯亮。

接着执行 echo 0 > /sys/class/gpio/gpio2/value 小灯灭。

至此,sys 测试 gpio 完成。

另外需要注意的是,本文档没有介绍 LED 对应的管脚是如何配置的,因为 LED 驱动能够

运行,那么肯定在设备树文件中配置了。

如果想要掌握如何配置管脚,可以参考“iTOP-iMX6-设备树内核-IO 配置分析文档

_V1.X”和“iTOP-iMX6-设备树内核-IO 扩展例程_V1.X”文档。

linux设备树sysfs,迅为-iMX6开发板-设备树内核-sys方式控制GPIO相关推荐

  1. 迅为IMX6开发板设备树内核-sys方式控制GPIO-SYSFS配置

    主要参数 CPU:ROCKCHIP RK3588 八核A76+A55 主频: 八核处理器,A76四核+A55四核,主频2GHz 内存: 8GB(最高可支持32GB) 存储器: 32GB 电源管理芯片: ...

  2. 迅为IMX6开发板Mfgtools工具单独烧写镜像-设备树Qt系统

    烧写设备树版本 Qt 系统要使用 iMX6Q 设备树光盘里的烧写工具,将文件夹下的 cfg.ini 修改成如下图所示: 打开"android_m6.0.1_2.0.0_ga_tool_201 ...

  3. imx6 linux 时钟,迅为-iMX6开发板-驱动-实时时钟RTC以及Linux-c测试例程

    当Linux开发者谈论一个实时时钟,他们通常指的是某种能记录墙上时间,并且有备用电 池,以至于在系统关机的时候仍然可以工作的器件. Linux 有两个系列广泛兼容的用户空间 RTC 设备节点: /de ...

  4. imx6板载linux登录时间,大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源.doc...

    大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源.doc (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 ...

  5. imx6 linux 开发环境,大干货!迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源...

    描述 迅为IMX6开发板丨Android丨Ubuntu丨Linux丨三大系统全开源 板载模块:WIFI蓝牙.4G.GPS.SATA.CAN/RS485.重力加速度计,电子罗盘等 资料丰富:原理图.底板 ...

  6. 迅为IMX6开发板真实产品案例分享-专为研发用芯选择

    迅为IMX6开发板: Android4.4系统 Linux + Qt5.7系统 Ubuntu12.04系统 部分真实案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容:IMX ...

  7. 迅为IMX6开发板适用于HMI|车载电脑|工业控制|医疗仪器|智能家居 灵活进行产品开发平台...

    i.MX6开发平台行业中的应用 适用于HMI.POS机.车载电脑.工业控制.轨道交通.医疗仪器.智能家居.数据终端等行业. 迅为iMX6开发板采用核心板+底板结构设计,高品质,稳定性强,可以更灵活地进 ...

  8. linux imx6 书籍,迅为iMX6开发板-Linux系统-TFTP使用文档

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),是一个基于 UDP 协议实 现的用于在客户机和服务器之间进行简单文件传输的协议,适合于开销不大.不复杂的应用 ...

  9. 迅为IMX6开发板支持全网通4G模块丨GPS模块丨WIFI蓝牙丨千兆以太网

    迅为i.MX6开发板丨迅为i.MX6Q开发板丨四核imx6开发板丨Cortec-A9开发板丨资料介绍: 特点: 处理器:Freescale Cortex-A9四核i.MX6Q主频1GHz 核心板配置: ...

最新文章

  1. AAAI 2021: 微调对小样本学习究竟起何作用?搜索或是解决方案
  2. PHP将XML转成数组
  3. 算法------零钱兑换(Java版本)
  4. delphi之找色和色块
  5. for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件
  6. PageObjects 设计模式
  7. Meta http-equiv 大全
  8. JAVA里static 变量在程序执行结束后是否被消毁
  9. vasp和ms_采用MS建模的基本步骤以及vasp新手入门需要注意的十个简单问题
  10. vsto excel决跨表引用值不能更新的问题
  11. 计算机网络及光纤通信实验教程,电子科技大学光纤通信视频教程
  12. 方差公式初三_方差|初中方差的计算公式
  13. RF- BuiltIn_Run Keyword关键字系列
  14. 计算机桌面是快捷方式,我的电脑桌面上的图标都变成快捷方式了怎么处理?
  15. [DA45] 信用卡诈骗分析
  16. 【华人学者风采】刘庄 苏州大学
  17. 灵魂碎片的收集(构造)
  18. node.js毕业设计安卓英语答题APP(程序+APP+LW)
  19. 怎么攻击天猫商家 java,天猫店铺被恶意攻击,大家看看是怎么做的。
  20. python绘制五子棋棋盘_4.Python画一个五子棋棋盘

热门文章

  1. Linux stat命令和AIX istat命令 (查看文件修改时间)
  2. kettle转换和作业插件开发及调试
  3. 敏捷遇上UML—软创基地马年大会(广州站 2014-4-19)
  4. linux中断响应时间太慢_Linux中的进程调度有哪些核心概念?
  5. 【免费毕设】PHP校园二手信息网站的设计与开发(源代码+论文)
  6. 进程与服务的签名_服务器被黑客攻击后如何查找溯源攻击
  7. canvas 画点_css+canvas 随便画一个星空
  8. linux 目录提权,【安全科普】Linux提权——利用可执行文件SUID
  9. python3 多线程 threading.local 代理_threading.local的作用?Python每日3题(多线程专题)...
  10. matlab中 编程如和隐藏,在matlab中编程(如何实时处理)