自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(12)
  • 收藏
  • 关注

原创 linux设备驱动程序学习(10) 中断处理

尽管有些设备仅仅通过控制其寄存器就可以得到控制,但现实中的大部分设备却要比这复杂一些。因为大部分设备的处理时间与处理器不在同一个周期,且一定会比处理器慢的多,这就造成了一种让处理器等待设备的现象,显然这是不行的,而有一种解决方法就是中断操作。中断仅仅就是一个信号,当硬件需要获

2011-08-29 16:05:10 1587

原创 softirq,tasklet,workqueue

-------------------------------------------------------------------------引------------------------------------------------------------------

2011-08-29 15:34:03 631

原创 linux设备驱动程序学习(9) 与硬件通信

I/O端口 VS I/O内存知识点:1.每种外设都是通过读写寄存器进行控制。2.在硬件层,内存区域和I/O区域没有概念上的区别:他们都通过像地址总线和控制总线发送电平信号进行访问,在通过数据总线读写数据。3.

2011-08-27 17:58:49 1104

原创 linux设备驱动程序学习(8) 分配内存

kmalloc函数#includevoid *kmalloc(size_t size,int flags);1.不会对所申请的内存清零,保留原有数据2.参数:size:分配大小                flags:km

2011-08-26 16:20:14 786

原创 linux设备驱动程序学习(7) tasklet,工作队列,共享队列

tasklettasklet  vs  内核定时器相同:始终在中断期间运行,始终会在调度他们的同一CPU上运行,而且都接收一个unsigned long参数不同:不可以要求tasklet在某一给定的时间执行tasklet对中断处理例程来说尤其有用。中断处理例程必须

2011-08-26 10:00:25 1155

原创 linux设备驱动程序学习(7) 时间、延迟及延缓操作

度量时间差概念:时钟中断:由系统定时硬件以周期性的间隔产生hz:上述间隔由hz的值设定,hz是一个与体系结构相关的常数计数器:发生中断一次,计数器加一,这个计数器的值(只有)在系统引导时被初始化为0jiffies变量:unsigned long 型变量,要么与

2011-08-25 14:06:55 1510

原创 linux设备驱动学习(6) 高级字符驱动学习--阻塞型I/0

提出问题:若驱动程序无法立即满足请求,该如何响应? 比如:当数据不可用时调用read,或是在缓冲区已满时,调用write解决问题:驱动程序应该(默认)该阻塞进程,将其置入休眠状态直到请求可继续。 休眠:当一个进程被置入休眠时,它会被标记为一种特殊状态并从调度器运行

2011-08-24 15:05:23 895

原创 linux设备驱动学习(5) 高级字符驱动程序操作--ioctl

ioctl驱动程序可以使用ioctl执行硬件控制。两种原型:1.在用户空间int ioctl(int fd,unsigned long cmd,...);fd:文件描述符cmd:控制命令,,,:可选参数:插入*argp,具体内容依赖于cmd2.驱动

2011-08-22 13:41:56 1110

原创 linux设备驱动学习(4) 并发与静态

一、并发及其管理竞态通常是作为对资源的共享访问结果而产生的。在设计自己的驱动程序时,第一个要记住的规则是:只要可能,就应该避免资源的共享。若没有并发访问,就不会有竞态。这种思想的最明显的应用是避免使用全局变量。但是,资源的共享是不可避免的 ,如硬件资源本质上就是共享、

2011-08-19 16:39:31 787

原创 linux设备驱动学习(3) 字符设备驱动程序

主设备号,次设备号主设备号表示设备对应的驱动程序;次设备号由内核使用,用于正确确定设备文件所指的设备。内核用dev_t类型()来保存设备编号,dev_t是一个32位的数,12位表示主设备号,20为表示次设备号。在实际使用中,是通过中定义的宏来转换格式。

2011-08-19 13:59:12 880

原创 linux设备驱动学习(2) 构造和运行模块

设置测试系统1.在kernel.org的镜像网站上获得一个“主线”内核。2.准备好一个内核源代码树。2.6内核的模块要和内核源代码树中的目标文件链接,通过这种方式,构造一个更加健壮的模块装载器。Hello World模块#include

2011-08-19 09:43:57 1083

原创 linux设备驱动程序简介

linux设备驱动程序的作用设备 驱动程序就像一个个的“黑盒子”,使某个特定硬件响应一个定义良好的内部编程接口,这些操作完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,而这些调用独立于特定的驱动程序。将这些调用映射到作用于实际硬件的设备特有操作上,则是设备驱动程

2011-08-19 08:36:00 1359

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除