
linux设备驱动程序
文章平均质量分 83
EN_wang
这个作者很懒,什么都没留下…
展开
-
linux设备驱动学习(11) linux设备模型3
3. 内核对象机制主要相关函数针对内核对象不同层次的数据结构,linux 2.6内核定义了一系列操作函数,定义于lib/kobject.c文件中。3.1 kobject相关函数void kobject_init(struct kobject * kobj);kob原创 2011-09-02 10:48:34 · 531 阅读 · 0 评论 -
softirq,tasklet,workqueue
-------------------------------------------------------------------------引------------------------------------------------------------------原创 2011-08-29 15:34:03 · 662 阅读 · 0 评论 -
linux设备驱动程序学习(9) 与硬件通信
I/O端口 VS I/O内存知识点:1.每种外设都是通过读写寄存器进行控制。2.在硬件层,内存区域和I/O区域没有概念上的区别:他们都通过像地址总线和控制总线发送电平信号进行访问,在通过数据总线读写数据。3.原创 2011-08-27 17:58:49 · 1149 阅读 · 0 评论 -
linux设备驱动程序学习(8) 分配内存
kmalloc函数#includevoid *kmalloc(size_t size,int flags);1.不会对所申请的内存清零,保留原有数据2.参数:size:分配大小 flags:km原创 2011-08-26 16:20:14 · 824 阅读 · 0 评论 -
linux设备驱动程序学习(7) 时间、延迟及延缓操作
度量时间差概念:时钟中断:由系统定时硬件以周期性的间隔产生hz:上述间隔由hz的值设定,hz是一个与体系结构相关的常数计数器:发生中断一次,计数器加一,这个计数器的值(只有)在系统引导时被初始化为0jiffies变量:unsigned long 型变量,要么与原创 2011-08-25 14:06:55 · 1554 阅读 · 0 评论 -
linux设备驱动学习(6) 高级字符驱动学习--阻塞型I/0
提出问题:若驱动程序无法立即满足请求,该如何响应? 比如:当数据不可用时调用read,或是在缓冲区已满时,调用write解决问题:驱动程序应该(默认)该阻塞进程,将其置入休眠状态直到请求可继续。 休眠:当一个进程被置入休眠时,它会被标记为一种特殊状态并从调度器运行原创 2011-08-24 15:05:23 · 947 阅读 · 0 评论 -
linux设备驱动学习(5) 高级字符驱动程序操作--ioctl
ioctl驱动程序可以使用ioctl执行硬件控制。两种原型:1.在用户空间int ioctl(int fd,unsigned long cmd,...);fd:文件描述符cmd:控制命令,,,:可选参数:插入*argp,具体内容依赖于cmd2.驱动原创 2011-08-22 13:41:56 · 1135 阅读 · 0 评论 -
linux设备驱动学习(4) 并发与静态
一、并发及其管理竞态通常是作为对资源的共享访问结果而产生的。在设计自己的驱动程序时,第一个要记住的规则是:只要可能,就应该避免资源的共享。若没有并发访问,就不会有竞态。这种思想的最明显的应用是避免使用全局变量。但是,资源的共享是不可避免的 ,如硬件资源本质上就是共享、原创 2011-08-19 16:39:31 · 823 阅读 · 0 评论 -
linux设备驱动学习(3) 字符设备驱动程序
主设备号,次设备号主设备号表示设备对应的驱动程序;次设备号由内核使用,用于正确确定设备文件所指的设备。内核用dev_t类型()来保存设备编号,dev_t是一个32位的数,12位表示主设备号,20为表示次设备号。在实际使用中,是通过中定义的宏来转换格式。原创 2011-08-19 13:59:12 · 910 阅读 · 0 评论 -
linux设备驱动学习(2) 构造和运行模块
设置测试系统1.在kernel.org的镜像网站上获得一个“主线”内核。2.准备好一个内核源代码树。2.6内核的模块要和内核源代码树中的目标文件链接,通过这种方式,构造一个更加健壮的模块装载器。Hello World模块#include原创 2011-08-19 09:43:57 · 1115 阅读 · 0 评论 -
linux设备驱动程序简介
linux设备驱动程序的作用设备 驱动程序就像一个个的“黑盒子”,使某个特定硬件响应一个定义良好的内部编程接口,这些操作完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上,则是设备驱动程原创 2011-08-19 08:36:00 · 1398 阅读 · 0 评论 -
linux设备驱动学习(11) linux设备模型2
------------------------------引------------------------------ Linux 2.6内核的一个重要特色是提供了统一的内核设备模型。随着技术的不断进步,系统的拓扑结构越来越复杂,对智能电源管理、热插拔以及plug原创 2011-09-02 10:48:05 · 690 阅读 · 0 评论 -
linux设备驱动学习(11) linux设备模型1
引自http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94312 以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式L原创 2011-09-02 08:13:11 · 797 阅读 · 0 评论 -
linux驱动开发流程
嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销。◇ 设备的打开和释放。◇ 设备的读写操作。◇ 设备的控制操作转载 2012-01-31 10:09:58 · 19155 阅读 · 2 评论