随笔分类 -  驱动

摘要:参考: http://www.360doc.com/content/12/0723/00/9298584_225900606.shtml http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html http://blog.ch 阅读全文
posted @ 2017-04-08 10:28 biaohc 阅读(5480) 评论(0) 推荐(0)
摘要:1:什么是misc驱动模型? 2:为什么要有misc驱动模型? 3:misc驱动模型的代码实现 4:misc驱动模型实战 参考: http://blog.csdn.net/yicao821/article/details/6785738 http://www.thinksaas.cn/topics/ 阅读全文
posted @ 2017-04-07 14:38 biaohc 阅读(1643) 评论(0) 推荐(0)
摘要:参考: http://blog.csdn.net/qq_28992301/article/details/52385518 http://blog.csdn.net/zoe6553/article/details/6372445 http://blog.chinaunix.net/uid-25014 阅读全文
posted @ 2017-04-07 09:04 biaohc 阅读(7722) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/xiahouzuoxin/article/details/8943863 http://blog.chinaunix.net/uid-25627207-id-3343854.html http://blog.csdn.net/phunxm/article/d 阅读全文
posted @ 2017-04-05 09:53 biaohc 阅读(985) 评论(0) 推荐(1)
摘要:恢复内容开始 1:什么是gpiolib,为什么要有gpiolib? linux中从2.6.35以后就开始有gpiolib库了,gpiolib的作用是对所有的gpio实行统一管理,因为驱动在工作的时候,会出现好几个驱动共同使用同一个gpio的情况; 这会造成混乱。所以内核提供了一些方法来管理gpio资 阅读全文
posted @ 2017-04-04 09:01 biaohc 阅读(7039) 评论(0) 推荐(0)
摘要:1:在linux2.6板本内核开发人员开始建立驱动框架,以led驱动为例: 没有驱动框架的时候我们需要做一下事情: module_init: 1:alloc_chrdev_region 注册字符驱动 2:cdev_alloc、cdev_init、cdev_add来向内核中添加驱动; 3:class_ 阅读全文
posted @ 2017-03-31 11:53 biaohc 阅读(1931) 评论(0) 推荐(0)
摘要:恢复内容开始 1: 首先回顾一下之前的学习内容: 1:register_chrdev来注册字符设备驱动,用这种方法的好处是简单,只需要一个函数就可以注册字符设备驱动了,缺点是无法设置次设备号; 2:register_chrdev_region/allco_chrdev_region、cdev_XXX 阅读全文
posted @ 2017-03-27 19:37 biaohc 阅读(13196) 评论(0) 推荐(1)
摘要:1:我们在linux内核中都是开启mmu的所以都是用的虚拟地址,需要建立VA到PA的映射表; 我们内核中映射表在arch/arm/mach-s5pv210/mach-smdkc110.c文件中 建立映射的函数是,smdkc110_map_io建立映射表 smdkc110_map_io 这个函数调用s 阅读全文
posted @ 2017-03-27 14:28 biaohc 阅读(2861) 评论(0) 推荐(0)
摘要:恢复内容开始 1:我们之前的设备文件都是使用mknod命令来手动添加的,下面我们要解决一下设备文件的自动添加问题: 设备文件的自动添加需要udev,busybox中的mdev是简化版的udev; https://yq.aliyun.com/articles/10546 http://blog.chi 阅读全文
posted @ 2017-03-26 22:47 biaohc 阅读(7289) 评论(0) 推荐(0)
摘要:1:上一章我们使用了register_chrdev这个函数来向内核注册字符设备 static inline int register_chrdev(unsigned int major, const char *name, const struct file_operations *fops) 这个 阅读全文
posted @ 2017-03-26 21:02 biaohc 阅读(1879) 评论(0) 推荐(0)
摘要:1:驱动开发环境 要进行linux驱动开发我们首先要有linux内核的源码树,并且这个linux内核的源码树要和开发板中的内核源码树要一直; 比如说我们开发板中用的是linux kernel内核版本为2.6.35.7,在我们ubuntu虚拟机上必须要有同样版本的源码树, 我们再编译好驱动的的时候,使 阅读全文
posted @ 2017-03-20 23:17 biaohc 阅读(22636) 评论(0) 推荐(2)