CSDN真乱,有空还是换个地方吧

首页推荐都是点什么东西啊
阅读更多

找不到,换个地方问!

09-07

我现在要学习驱动程序开发.可是我搞不明白驱动程序和控制程序有什么区别.假设:一个ISA总线的数据采集卡,我可以用汇编写以下程序(假设地址是300H~303H,300H,301H是数据输入,302H,303H是数据输出):rnRU PROC NEARrnMOV DX,300HrnIN AL,DXrnMOV DX,301HrnIN AH,DXrnENDPrnCHU PROC NEARrnMOV DX,302HrnMOV AL,(数据)rnOUT DX,ALrnMOV DX,303HrnMOV AL,(数据)rnOUT AH,DXrnENDrn如果要取数据的时候就可以直接调用这两个子程序了.那为什么还要驱动程序呢?这个程序能不能控制我做的ISA卡?rn还有,听说学驱动程序还要学ASM32的保护,IA32(我不懂这是什么东西,可能是什么内核之类的),DDK(好像是一个驱动程序开发包吧).我都不明白学这些有什么用的.那位大侠给点建议吧.谢谢了!最好把要学的东西及东西的作用说明一下.rn我知道操作系统把高低级分成四级ring(0~3),如果要访问硬件的话必须在ring(0)这一层,而操作硬件数据是通过一个I/O包实现的.既然能够通过I/O包去读写数据.也就是可以访问硬件了吧?只是不访问系统中的内存这些受保护的硬件.我现在的问题是:rn如果做一个操作系统承认的驱动程序.是要通过VC++,DDK等工具开发,而且要符合32位的保护模式.但是,我现在可以通过in/out指令读取数据.我是不是就不用管这么多了?直接调用语言的读写函数就可以写用户级的驱动程序了.是不是就不用管系统承认不承认这驱动程序是它的一部分.rn比喻:我现在有一个数据采集卡,我给用户提供的只要两个函数就够了.读数据和写数据.只要用户打开.直接调用这两个函数.就可以实现读写数据了.如果他要怎么处理这数据就是他的事了,也就是说,我只是写一个程序就行了.根本不用考虑别的.rn如果真正的开发一个驱动程序,是要把这个程序成为操作系统的一部分.可以通过ring(0)访问硬件.大侠能不能举个例子呀?我听得有点不清不楚了.rn

没有更多推荐了,返回首页