![](https://img-blog.csdnimg.cn/20190903082144597.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SylixOS中的GPIO
最全面最准确的SylixOS系统中GPIO相关知识讲解
ScilogyHunter
一码流年雨疏疏,莫道E人岁月蹴。。。
展开
-
SylixOS下的GPIO驱动框架
SylixOS下的GPIO驱动框架GPIO是一个极为常用且标准化程度较高的设备,SylixOS为GPIO提供了一套完整的层次清晰的驱动框架。如下图所示:框架说明SylixOS中会把GPIO抽象为设备文件,应用层通过访问设备文件即可操作GPIO。除了按照文件的方式访问GPIO外,系统还封装了GpioFd接口,简化了应用层对GPIO的操作。SylixOS还提供了GpioDrv接口,不仅方...原创 2019-09-06 18:44:05 · 488 阅读 · 0 评论 -
sylixos下S3C2440的GPIO驱动源码
sylixos下S3C2440的GPIO驱动源码/************************************************************************************************************* 中国软件开源组织**** ...原创 2020-04-05 19:26:19 · 301 阅读 · 0 评论 -
通用GPIO测试工具
为了方便对GPIO驱动进行测试,特意开发了通用GPIO测试工具,该工具同时也可用于GPIO硬件测试和GPIO应用开发参考。简要说明命令行解析基于cmdParse模块,这个模块的功能和用法会单独说明。命令每次只针对一个GPIO进行操作。-id 选项指定了GPIO序号,选项参数可以是一个无符号整数,也可以是“gpio_port_pin”格式字符串(和SylixOS中GPIO序号宏定义中的格式...原创 2020-02-04 17:21:42 · 3708 阅读 · 0 评论 -
SylixOS中现有GPIO设备体系缺陷
没有一个标准的GPIO序号宏定义规则,目前使用个人定义的一套方法。SylixOS中GPIO序号宏定义GPIO属性参数有好几套,没有统一为标准的一套。使得各层处理中往往需要添加参数转换操作。#define GPIO_FLAG_DIR_OUT 0x0000#define GPIO_FLAG_DIR_IN 0x0001#define GPIO_FLA...原创 2019-10-12 20:13:11 · 318 阅读 · 0 评论 -
在驱动层使用GPIO
使用情景GPIO 除了在应用层中使用外,其实更多的是在其他复杂驱动中调用。比如SD卡驱动中要使用一个GPIO来监测卡的插入与拔出,网卡驱动中需要使用一个GPIO来控制phy芯片硬复位,某些情况需要用GPIO来模拟I2C总线等等。驱动中使用GPIO时,为了提高效率并不是调用GPIO设备文件,而是使用SylixOS提供的GPIO调用接口。GPIO API/********************...原创 2019-08-30 20:01:53 · 774 阅读 · 1 评论 -
GPIO硬件特性
GPIO(General Purpose Input/Output)即通用输入输出端口,以下简称 GPIO。GPIO 可提供输入、输出或中断三类功能,是嵌入式领域最常见,最基础的输入输出设备。应用上GPIO作为输入可以检测按键,限位开关等的状态,作为输出可以控制LED,蜂鸣器,继电器等设备。GPIO 除了在应用层中使用外,其实更多的是在其他复杂驱动中调用。比如SD卡驱动中要使用一个GPIO来监测...原创 2019-09-18 21:00:04 · 2573 阅读 · 0 评论 -
GPIO Drv接口的实现
GPIO Drv API的实现基于GPIO控制器对象,实现相对简单,主要包括数据有效性检查,数据管理,参数类型转换,调用GPIO控制器对象中的相应回调函数等。原创 2019-09-18 18:09:55 · 918 阅读 · 0 评论 -
GPIO设备文件的实现
基于UNIX一切皆文件的哲学,SylixOS中也会把GPIO抽象为设备文件,即/dev/gpiofd 目录下的数字编号的文件,应用层通过访问设备文件的方式即可操作GPIO。实现这些函数要用到的主要接口有:设备文件驱动接口GPIO Drv接口select接口中断系统接口注册驱动和设备/*************************************************...原创 2019-09-12 09:45:50 · 698 阅读 · 0 评论 -
gpiofd接口的实现
SylixOS中会把GPIO抽象为设备文件,应用层通过访问设备文件即可操作GPIO。除了按照文件的方式访问GPIO外,系统还封装了GpioFd接口,简化了应用层对GPIO的操作。这一篇来说明GpioFd接口是如何实现的,实现代码如下:/*********************************************************************************...原创 2019-09-11 09:28:03 · 508 阅读 · 0 评论 -
在应用层使用GPIO
在应用层使用GPIOGPIO(General Purpose Input/Output)即通用输入输出端口,以下简称 I/O 端口。I/O 端口可提供输入、输出或中断三类功能,是嵌入式领域最常见,最基础的硬件设备。在介绍SylixOS中的GPIO驱动如何编写前,我们先来了解下应用层是如何调用GPIO的,要先会用之后才能更好的去开发驱动以及进行测试。对于应用层来说,GPIO就是/dev/gp...原创 2019-08-29 21:17:58 · 1380 阅读 · 1 评论 -
SylixOS下 i.MX RT1050的GPIO驱动实例
实例源码下面是 i.MX RT1050 的GPIO驱动实现源码:/************************************************************************************************************* 中国软件开源组织**** ...原创 2019-09-04 09:43:54 · 498 阅读 · 1 评论 -
SylixOS中的GPIO驱动接口
基本原理通过前面几篇的讲解,已说明SylixOS中的GPIO在应用层和驱动层如何调用,这一篇讲如何向系统增加GPIO设备。一个计算机系统内的GPIO都是呈组出现的,同一组内的GPIO特性基本相同,使用同一个驱动。像一般的SOC芯片,自身就会有一组GPIO做为片内外设存在,也可以通过PCI、I2C等其他总线外扩GPIO芯片或模块,这样就会增加一组或多组不同驱动的GPIO设备。SylixOS中将...原创 2019-09-03 19:10:13 · 424 阅读 · 0 评论 -
在驱动层使用GPIO的中断功能的简化接口
接口说明为了简化驱动层使用GPIO中断功能的复杂性,我将其封装成了两个接口,类似于系统提供的API标准接口,使用GPIO中断功能时直接请求一个中断模式GPIO即可,用完后再调用相应的释放函数。这两个函数封装了GPIO的中断处理接口、中断API函数和一些必要的流程及异常处理。如下面所示:/******************************************************...原创 2019-09-02 20:40:14 · 584 阅读 · 0 评论 -
在驱动层使用GPIO的中断功能
使用情景上一篇讲了在驱动层如何使用GPIO的API函数进行简单的GPIO输入和输出功能,这一篇讲如何在驱动层使用GPIO的中断功能。有些复杂驱动是要借助GPIO的中断功能来实现自身对系统的中断通知的。如下图所示的 FXOS8700CQ 三轴磁力计芯片的单元电路,除了要使用一路I2C接口与CPU通信外,还有 INT1,INT2两个中断脚用于向CPU发送中断信号,主动告知CPU检测到状态有变化。这两...原创 2019-09-02 17:25:32 · 3941 阅读 · 1 评论 -
SylixOS中GPIO序号宏定义
在SylixOS中 为了统一管理和便于移植 GPIO 被统一编号为数字而不是电路上尝试说的某某端口。封装成的设备文件都在 /dev/gpiofd 目录下,文件名即对应的GPI编号,如" /dev/gpiofd/0"即为0号GPIO。应用和驱动中调用某GPIO也是直接使用其编号来索引,如:API_GpioSetValue(5,LOW);设置5号引脚为低电平。如果在应用程序中使用芯片的GPIO标...原创 2019-08-28 21:02:27 · 756 阅读 · 1 评论