正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

Tag: 设备驱动基础

Home 标签归档: 设备驱动基础
Home 标签归档: 设备驱动基础

设备驱动程序框架

android 嵌入式开发, linux开发学习 by

  由于设备种类繁多,相应的设备驱动程序也非常之多。尽管设备驱动程序是内核的一部分,但设备驱动程序的开发往往由很多人来完成,如业余编程高手、设备厂商等。为了让设备驱动程序的开发建立在规范的基础上,就必须在驱动程序和内核之间有一个严格定义和管理的接口,例如SVR4提出了DDI/DDK规范,其含义就是设备与驱…

阅读全文

 

29 2015-11

I/O 空间的映射

android 嵌入式开发, linux开发学习 by

很多硬件设备都有自己的内存,通常称之为I/O空间。例如,所有比较新的图形卡都有几MB的RAM,称为显存,用它来存放要在屏幕上显示的屏幕影像。 1.地址映射 根据设备和总线类型的不同,PC体系结构中的I/O空间可以在三个不同的物理地址范围之间进行映射: (1)对于连接到ISA总线上的大多数设备 I/O空间通常被映射到从0x…

阅读全文

 

29 2015-11

驱动DMA工作

android 嵌入式开发, linux开发学习 by

所有的PC都包含一个称为直接内存访问控制器或DMAC的辅助处理器,它可以用来控制在RAM和I/O设备之间数据的传送。DMAC一旦被CPU激活,就可以自行传送数据;当数据传送完成之后,DMAC发出一个中断请求。当CPU和DMAC同时访问同一内存单元时,所产生的冲突由一个称为内存仲裁器的硬件电路来解决。 使用DMAC最多的是磁盘驱动器和…

阅读全文

 

29 2015-11

中断处理

android 嵌入式开发, linux开发学习 by

设备一般都比CPU慢得多。因此一般情况下,当一个进程通过设备驱动程序向设备发出读写请求后,CPU并不等待I/O操作的完成,而是让正在执行的进程去睡眠,CPU自己做别的事情,例如唤醒另一个进程执行。当设备完成I/O操作需要通知CPU时,会向CPU发出一个中断请求;然后CPU根据中断请求来决定调用相应的设备驱动程序。 当设备执…

阅读全文

 

29 2015-11

VFS对设备文件的处理

android 嵌入式开发, linux开发学习 by

虽然设备文件也在系统的目录树中,但是它们和普通文件以及目录有根本的不同。当进程访问普通文件(即磁盘文件)时,它会通过文件系统访问磁盘分区中的一些数据块;而在进程访问设备文件时,它只要驱动硬件设备就可以了。例如,进程可以访问一个设备文件以从连接到计算机的温度计读取房间的温度。VFS的责任是为应用程序隐藏…

阅读全文

 

29 2015-11

设备文件

android 嵌入式开发, linux开发学习 by

设备文件是用来表示Linux所支持的大多数设备的,每个设备文件除了设备名,还有三个属性:即类型、主设备号、次设备号。 设备文件是通过mknod系统调用创建的。其原型为: Source code   mknod(const char * filename, int mode, dev_t dev)   其参数有设备文件名、操作模式、主设备号及次设备…

阅读全文

 

29 2015-11

I/O接口及设备控制器

android 嵌入式开发, linux开发学习 by

I/O接口是处于一组I/O端口和对应的设备控制器之间的一种硬件电路。它起翻译器的作用,即把I/O端口中的值转换成设备所需要的命令和数据。从另一个角度来看,它检测设备状态的变化,并对起状态寄存器作用的I/O端口进行相应地更新。还可以通过一条IRQ线把这种电路连接到可编程中断控制器上,以使它代表相应的设备发出中断请求…

阅读全文

 

29 2015-11

I/O端口

android 嵌入式开发, linux开发学习 by

每个连接到I/O总线上的设备都有自己的I/O地址集,即所谓的I/O端口(I/O port)。在IBM PC体系结构中,I/O地址空间一共提供了65,536个8位的I/O端口。可以把两个连续的8位端口看成一个16位端口,但是这必须是从偶数地址开始。同理,也可以把两个连续的16位端口看成一个32位端口,但是这必须是从4的整数倍地址开始。有四条专…

阅读全文

 

29 2015-11