linux kernel操作GPIO函数】的更多相关文章

一.头文件 #include <asm/gpio.h> 二.注册 GPIO int gpio_request(unsigned gpio, const char *label) 功能:申请一个GPIO 参数:gpio:管脚号:label:管脚名,可以为空(NULL) 返回值:成功返回0,失败返回错误码 三.设置GPIO方向 1.设置输出 int gpio_direction_output(unsigned gpio, int value) 功能:设置GPIO为输出 参数:gpio:管脚号:va…
目前我所知道的在Linux下操作GPIO有两种方法: 1.编写驱动,这当然要熟悉Linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据ioctl命令进行GPIO寄存器的读写,并把结果回送到应用层.这里提供一点程序片断供大家参考: int  init_module(void){ printk(KERN_ALERT "ioctl load.\r\n"); register_chrdev(254,"ioreg"…
目前我所知道的在linux下操作GPIO有两种方法: 1.  编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据ioctl命令进行GPIO寄存器的读写,并把结果回送到应用层.这里提供一点程序片断供大家参考: int  init_module(void){ printk(KERN_ALERT "ioctl load.\r\n"); register_chrdev(254,"ioreg&quo…
一. 在驱动中: 1. 用的时候映射端口:ioremap; #define GPIO_OFT(x) ((x) - 0x56000000) #define GPFCON (*(volatile unsigned long *)(gpio_va + GPIO_OFT(0x56000050))) gpio_va = ioremap(0x56000000, 0x100000); // 物理地址0x56000000, 映射区分配的大小0x100000字节 这样映射过后,就可以直接操作寄存器了: 配置3引脚…
漏洞版本: Linux Kernel 漏洞描述: Bugtraq ID:64270 CVE ID:CVE-2013-6367 Linux Kernel是一款开源的操作系统. Linux KVM LAPIC实现中的'apic_get_tmcct()'函数存在一个除零错误,允许本地特权用户使宿主系统崩溃. <* 参考 https://bugzilla.redhat.com/show_bug.cgi?id=1032207 http://lwn.net/Articles/576880/http://se…
本文转自:http://blog.csdn.net/mirkerson/article/details/8464231 在嵌入式设备中对GPIO的操作是最基本的操作.一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的.其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式.首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入 Device Drivers-> GPIO Support->…
一开始是通过断点 printk看哪里申请这个GPIO正常哪里不正常,发现这种方法太繁琐. 经过同事提醒,直接在 drivers/gpio/gpiolib.c 里面的 gpio_request 里面添加调试代码,可以直接得出该GPIO 是在哪调用的. 代码如下: # drivers/gpio/gpiolib.c int gpio_request(unsigned gpio, const char *label) { // ... ... if(gpio == 29) { printk("-----…
作者:刘凯链接:https://www.zhihu.com/question/19704852/answer/19760467来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 如果是在已经适配好的linux内核上,那么相信已经有了完成的gpiochip,可以在用户空间/sys/class/gpio目录下看到,如:exportgpiochip0/gpiochip32/gpiochip64/gpiochip96/unexport 然后对照手册看下需要用到哪个GPIO,举…
漏洞名称: Linux kernel ‘lbs_debugfs_write’函数数字错误漏洞 CNNVD编号: CNNVD-201311-421 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 数字错误 威胁类型: 本地 CVE编号: CVE-2013-6378 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/net/w…
漏洞名称: Linux kernel ‘uio_mmap_physical’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-154 发布时间: 2013-11-13 更新时间: 2013-11-13 危害等级: 中危   漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-6763 Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel 3.11.7及之前的版本中的drivers/u…
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入.文件IO方式操作GPIO,使用到了4个函数open.close.read.write. 首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入  Devi…
文章目录 简介 原理图 节点 设置为输出 设置为输入 映射关系 debugfs pwm demo 简介 前面通过libgpio的方式介绍了内核空间对GPIO进行操作的接口,其做了较好的封装,同时Linux系统的sysfs机制已经在系统路径下/sys/class/gpio注册了相应的节点,通过读写该节点下的文件就能轻松的完成GPIO输入输出配置以及引脚状态的获取. 原理图 我使用的Rockchip的px30,引脚是GPIO3_D0,具体硬件肯定会不同,注意参考soc的datasheet和硬件原理图…
点击阅读原文 一.概述 通过 sysfs 方式控制 GPIO,先访问 /sys/class/gpio 目录,向 export 文件写入 GPIO 编号,使得该 GPIO 的操作接口从内核空间暴露到用户空间,GPIO 的操作接口包括 direction 和 value 等,direction 控制 GPIO 方向,而 value 可控制 GPIO 输出或获得 GPIO 输入.文件 IO 方式操作 GPIO,使用到了4个函数 open.close.read.write. 首先,看看系统中有没有“/s…
原文地址:http://blog.csdn.net/penngrove/article/details/44175387 最近看到Linux Kernel cmpxchg的代码,对实现很不理解.上网查了内嵌汇编以及Intel开发文档,才慢慢理解了,记录下来以享和我一样困惑的开发者.其实cmpxchg实现的原子操作原理早已被熟知: cmpxchg(void* ptr, int old, int new),如果ptr和old的值一样,则把new写到ptr内存,否则返回ptr的值,整个操作是原子的.在…
Linux应用层直接操作GPIO 在一个老手的指导下,应用层可以直接操作GPIO,具体指设置GPIO的输入输出以及输出电平高或者低.这个大大地提高了灵活性,官方的文档有GPIO Sysfs Interface for Userspace,GPIO Sysfs. 这里我记录一下使用过例子: # RK30_PIN0_PD4 # A0-7 -> 0-7 / B0-7 -> 8-15 / C0-7 -> 16-23 / D0-7 -> 24-31 echo 28 > /sys/cla…
漏洞名称: Linux Kernel‘ieee80211_radiotap_iterator_init()’函数拒绝服务漏洞 CNNVD编号: CNNVD-201312-041 发布时间: 2013-12-04 更新时间: 2013-12-04 危害等级:    漏洞类型:   威胁类型: 远程 CVE编号:   漏洞来源: Evan Huus Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux Kernel中存在拒绝服务漏洞.攻击者…
漏洞名称: Linux kernel ‘qeth_snmp_command’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-423 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-6381 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/s39…
漏洞名称: Linux kernel ‘aac_send_raw_srb’函数输入验证漏洞 CNNVD编号: CNNVD-201311-422 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 输入验证 威胁类型: 本地 CVE编号: CVE-2013-6380 Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.         Linux kernel 3.12.1及之前的版本中的drivers/scsi/a…
漏洞名称: Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-392 发布时间: 2013-11-29 更新时间: 2013-11-29 危害等级: 中危   漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-6382 漏洞来源: Nico Golde and Fabian Yamaguchi Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核.  …
漏洞名称: Linux Kernel ‘write_tag_3_packet()’函数本地基于堆的缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-067 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级:    漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号:   漏洞来源: x90c Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel中存在本地基于堆的缓冲区溢出漏洞,该…
漏洞名称: Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-061 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级:    漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-4512 漏洞来源: Fabian Yamaguchi, Nico Golde Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.      …
漏洞名称: Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-060 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级:    漏洞类型: 缓冲区溢出 威胁类型: 本地 CVE编号: CVE-2013-4513 漏洞来源: Fabian Yamaguchi, Nico Golde Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Lin…
漏洞名称: Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞 CNNVD编号: CNNVD-201311-054 发布时间: 2013-11-06 更新时间: 2013-11-06 危害等级:    漏洞类型: 信息泄露 威胁类型: 本地 CVE编号: CVE-2013-4516 漏洞来源: Fabian Yamaguchi, Nico Golde Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux…
漏洞名称: Linux kernel get_prng_bytes函数数字错误漏洞 CNNVD编号: CNNVD-201310-142 发布时间: 2013-10-11 更新时间: 2013-10-11 危害等级: 中危   漏洞类型: 数字错误 威胁类型: 远程 CVE编号: CVE-2013-4345 Linux kernel是美国Linux基金会发布的一款操作系统Linux所使用的内核.         Linux kernel 3.11.4及之前的版本中的crypto/ansi_cprn…
漏洞名称: Linux kernel ‘fib6_add_rt2node’函数安全漏洞 CNNVD编号: CNNVD-201307-265 发布时间: 2013-07-16 更新时间: 2013-07-16 危害等级:    漏洞类型:   威胁类型: 远程 CVE编号: CVE-2013-4125 Linux Kernel是美国Linux基金会发布的一款开源操作系统Linux所使用的内核.         Linux kernel 3.10.1及之前的版本中的IPv6栈中的net/ipv6/i…
漏洞名称: Linux kernel ‘key_notify_policy_flush’函数信息泄露漏洞 CNNVD编号: CNNVD-201307-072 发布时间: 2013-07-05 更新时间: 2013-07-05 危害等级:    漏洞类型: 信息泄露 威胁类型: 本地 CVE编号: CVE-2013-2237 Linux Kernel是美国Linux基金会发布的一款开源操作系统Linux所使用的内核.         Linux kernel 3.9之前的版本中的net/key/a…
漏洞名称: Linux kernel ‘ip6_sk_dst_check’函数拒绝服务漏洞 CNNVD编号: CNNVD-201307-070 发布时间: 2013-07-05 更新时间: 2013-07-05 危害等级:    漏洞类型:   威胁类型: 本地 CVE编号: CVE-2013-2232 Linux Kernel是美国Linux基金会发布的一款开源操作系统Linux所使用的内核.         Linux kernel 3.10之前的版本中的net/ipv6/ip6_outpu…
漏洞名称: Linux Kernel ‘test_root()’函数本地拒绝服务漏洞 CNNVD编号: CNNVD-201306-432 发布时间: 2013-06-25 更新时间: 2013-06-25 危害等级:    漏洞类型: 其他 威胁类型: 本地 CVE编号:   漏洞来源: Jonathan Salwan Linux Kernel是美国Linux基金会发布的开放源码操作系统Linux所使用的内核.         Linux Kernel中存在本地拒绝服务漏洞.本地攻击者可利用该漏…
漏洞名称: Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞 CNNVD编号: CNNVD-201306-343 发布时间: 2013-06-20 更新时间: 2013-06-20 危害等级:    漏洞类型: 权限许可和访问控制 威胁类型: 本地 CVE编号: CVE-2013-1943 漏洞来源: Michael S. Tsirkin of Red Hat Linux Kernel是美国Linux基金会发布的开放源码操作系统Linux所使用的内核.…
通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入.文件IO方式操作GPIO,使用到了4个函数open.close.read.write. 首先,看看系统中有没有“/sys/class/gpio”这个文件夹.如果没有请在编译内核的时候加入 Devic…