Linux内核
守望尼罗河畔的初心
不喜欢debug的疯子
展开
-
关于VERIFY_OCTAL_PERMISSIONS权限检查
修改内核创建/sys文件系统下的文件的权限时将代码从 __ATTR(type, 0644, xx_show, NULL); 改为 __ATTR(type, 0666, xx_show, NULL); 编译时会报错:include/linux/bug.h:33:45: error: negative width in bit-field '<anonymous>'#def原创 2017-10-20 16:19:27 · 3276 阅读 · 3 评论 -
kernel4.x imx6 GPIOLIB_API 输出电平问题
很高兴之前分析gpioLib能有机会帮助解决问题。描述下遇到的问题的现象:将GPIO设置为output并设置为高电平,这时候再去读取电平却读到低电平,使用万用表测量管脚,确认是实实在在的高电平。用命令演示一下拗口的文字:# echo out > /sys/class/gpio/gpio34/direciton# echo 1 > /sys/class/gpio/gpio34/value#原创 2017-10-24 17:18:54 · 1153 阅读 · 3 评论 -
Linux 4.x 之Gpio分析(一)Gpiolib库1
芯片定义设备树代码小结下面的内容均在imx6平台上举例,这一次分析希望将整个GPIO子系统的所有细节整理清晰。第一篇从gpiolib入手,后面的边分析边写.开始之前给自己提几个问题驱动开发中的GPIO API 究竟是怎么实现的?GPIO的中断又是怎么实现的?GPIO号和IRQ的号码怎么映射的?1.芯片定义我们在驱动程序中会用到gpio_request(x),这里的x便是gpio的编号,原创 2017-10-13 16:56:20 · 4740 阅读 · 4 评论 -
内核链表
在研究Linux内核前和驱动开发之前,需要先了解一下内核中常用的一些工具,接下来的主题就是内核链表。 可能我们在数据结构里都听说过链表,或者学过链表。我们还知道链表这东西还挺麻烦,稍有不慎就导致整个程序崩溃了。 Linux中大量用到了内核链表,我们就来看看这个链表有什么特殊之处,可以被广泛使用。 首先,回顾一下我们在严蔚敏老太太书中呈现原创 2014-12-05 17:59:43 · 651 阅读 · 0 评论 -
GPIOLIB实现(一)
驱动开发中最基础的就是控制GPIO来驱动硬件原创 2016-07-21 11:59:21 · 2645 阅读 · 0 评论 -
version magic 不一致问题
碰到一个问题,在开发过程中发现以前编译的模块加载失败了。wlan: version magic '4.1.15-gfb2dbf6 SMP preempt mod_unload ARMv7 p2v8 ' should be '4.1.15-ge5de83b-dirty SMP preempt mod_unload ARMv7 p2v8 '这里看到version magic 存在不一致的问题的,不一致的原创 2017-07-26 11:16:10 · 17259 阅读 · 2 评论