
linux内核驱动
无知书生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
国嵌驱动专题一二
一、使用字符设备驱动1、编译驱动、安装;创建设备文件;访问设备2、设备描述结构cdev:结构定义;设备号dev_t;设备操作集3、驱动初始化:分配设备描述结构;初始化设备描述结构;注册设备描述结构4、设备号为unsigned int;MKDEV;MAJOR;MINOR5、动态分配主设备号:alloc_chrdev_region;驱动退出时:unregister_chrdev_r原创 2015-07-08 22:32:16 · 508 阅读 · 0 评论 -
内核驱动学习(三)
一、驱动设备1、驱动设备分类:字符设备;块设备;网络接口;注:块设备是以块(通常是512字节)为最小传输单位的设备,块设备不能按字节处理数据。而linux则允许块设备传送任意数目的字节其他分类:USB设备;PCI设备;平台总线设备(platform虚拟总线)二、使用字符设备驱动1、编译,安装驱动文件2、创建设备文件3、编写应用程序注:设备文件与设备驱动程序是靠什么来转载 2015-03-30 21:52:28 · 481 阅读 · 0 评论 -
国嵌驱动-专题5-触摸屏驱动程序设计
一、我的学习理解:1、输入子系统就是外部触发一次事件,最后由用户空间读取到事件的信息。2、先注册一个输入型设备,设备会匹配到handler(处理者),handler会创建设备文件,还需要注册字符设备。3、触发事件时,会上报给注册好的输入型设备,对应的handler会调用event函数,这个函数会把事件的信息打包后保存于buffer4、用户层会访问到该字符设备的fops,从而就得到了原创 2015-07-11 19:21:01 · 232 阅读 · 0 评论 -
内核驱动学习(二)
一、内核模块设计1、必须包含的头文件 2、函数入口module_init() //函数出口 module_exit()3、编译内核模块的Makefileobj-m = hello.o/多个点c文件/hello-objs := hello.o simple.o(KDIR) := "/lib/modules/2.6.18-53.e15/build" all:m转载 2015-03-30 08:25:20 · 363 阅读 · 0 评论 -
内核驱动之poll机制
app: pollkernel: sys_polldo_sys_poll(.....,timeout_jiffies)poll_initwait(&table);init_poll_funcptr(&pwd->pt,_pollwait); > table -> qproc = _pollwaitdo_poll(nfds, head, &table, timeout)for原创 2015-04-01 16:41:42 · 508 阅读 · 0 评论 -
内核驱动学习(一)
一、内核简介1、linux系统分为用户空间与内核空间,用户空间包括应用程序和C库,内核空间包括系统调用接口(sci)、狭义内核、体系结构相关内核代码( Architecture-Dependent Kernel Code)2、划分为用户空间和内核空间的原因是:CPU有不同的工作模式,linux利用这个特性,使操作系统本身得到保护;;应用程序运行在用户模式。3、通过系统调用和硬件中断可以转载 2015-03-29 22:18:47 · 612 阅读 · 0 评论 -
字符设备驱动之中断按键驱动
1、注册设备描述结构:major = register_chrdev(0,"", file_operation);\2、自动创建设备节点: class_create();class_device_create();注: mdev是busybox自带的一个简化版的udev,作用是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点原创 2015-04-01 09:43:13 · 420 阅读 · 0 评论 -
驱动程序的高级机制使用初步
一、异步通知1、目的:为了使驱动控制通知应用程序执行操作,同进程之间发信号signal2、方法: 应用程序: fcntl(fd , F_SETOWN , pid) 指定一个进程作为文件的“属主(filp->owner)”,这样内核才知道信号要发给哪个进程oflags = fcntl(fd , F_GETFL)fcntl(fd, F_SETFL, Oflags | FA原创 2015-04-01 20:55:30 · 469 阅读 · 0 评论