驱动程序原理

驱动程序原理

ID:40910432

大小:146.50 KB

页数:7页

时间:2019-08-10

驱动程序原理_第1页
驱动程序原理_第2页
驱动程序原理_第3页
驱动程序原理_第4页
驱动程序原理_第5页
资源描述:

《驱动程序原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、知识体系结构应用程序:是一段可以执行的代码,由操作系统管理。编译原理,链接器,装载器:是对操作系统依赖的一个工具,将用户的代码变成可执行的机器码,编译器仅仅检查和翻译用户的语言逻辑,但并不装配成符合操作系统要求的可执行文件格式,如windows要求的EXE文件为PE格式(EXE文件并不仅仅是一个可执行的代码段,而且包含了很多其他的内容,如数据段)。操作系统接口API:是一个可以被用户程序调用的系统功能接口,可以说,我们编写程序,除了计算和流程控制这些只需要用到CPU指令和CPU寄存器的代码外,其余要访问其他(硬件)资源(包括内

2、存,外设)的代码,均是通过调用OS的API来操作除CPU外的资源的,如向屏幕写一个字母,对于程序来说简单得很,print(“A”);但是其编译后执行的过程是复杂的,编译后的程序会调用操作系统的API,将当前应用程序的状态(上下文,如光标的位置)以及字母传递给显示器的驱动程序去显示。操作系统管理与调度:操作系统要实现一般通用的资源管理,也要实现资源使用的协调,包含CPU,内存,磁盘,外设。首先要确定为什么需要操作系统,操作系统设计的目标是什么?1.我们总是不能等做完一件事情才去做另外一件,因为有些事情做的过程需要等待,有时候也需

3、要暂停一下当前的任务,先去处理更急的事情,等我回来时又需要以前的任务保持当时的状态,所以需要计算机也要具备这样的能力,那怎么实现呢?2.CPU和内存是计算机的最需要的资源,就如我们的人脑一样,一般很难在同一时间做两件事情。需要处理好一件事情再处理另一件,如果处理得越快就越好,但是不能前一件事情要等待,你就休息了,后面一件也做不了,计算机的办法就是你不用CPU了,那好你等待下,我先处理下一个事情。3.我们写程序,不可能对每个应用,我们重新去写那些驱动程序,也不可能按照自己的想法去处理这些通常的资源管理。否则很多人各自写的应用软件

4、就没法在一个电脑上运行。操作系统目标:1.实现代码重用,对于硬件的访问,对于CPU和内存的充分利用,使不同的应用不需要重新去写这些代码。2.实现各个任务(不同应用程序)的协调使用,使用户可以实现暂停、重新启用某个任务。3.实现数据的安全管理,实现良好的人机界面的管理。4.实现一个开放的体系结构,提供系统调用使用户可以快速编写自己的应用,并提供编译器、链接器、装载器来让用户编写的程序变成可以与操作系统接口的可执行软件。操作系统的功能分层:CPU管理是操作系统的核心:操作系统与用户程序其实可以看成是一个程序,与以前的单任务系统和单

5、片机程序没有本质的区别。我们来看整个PC机运行过程:1.系统上电。2.主板上CPU的CS值设置为0Fx000,IP值设置为0xFFF0,这样CS:IP就指向0xFFFF0位置,这个是程序的开始地址,而硬件上在总线上挂接在0xFFFF0地址的是主板的BIOS芯片,BIOS开始运行,BIOS是BasicInputOutputSystem简写,意思即基本的输入输出系统,如果学过单片机就很好理解,其实就是一个程序,由主板设计的公司的程序员编写的,通过一定的方法(如编程器)写入到芯片内,这段程序会一上电就开始运行。1.BIOS会检查所有

6、的主板资源,并初始化主板的硬件资源,如总线控制器、显示卡、内存等,并将主板的固有资源和接插件的信息放入固定的内存区域,以便操作系统可以从中获取得到当前的主板上有些什么设备资源。2.BIOS会在内存地址的最低位0x000000构建起中断向量表,共1K内存(一个向量CS:IP各两个字节,共256个向量),接着是1/4K(256byte)的内存放BIOS数据,接下来在0x0E2CE(56K处)加载了8K左右的与中断向量表相应的若干中断服务程序。3.当BIOS程序检测到主板上的设备符合启动系统的条件,就读取硬磁盘的引导扇区(第一扇区,

7、这里也是一个程序,从哪个磁盘加载由CMOS设置确定),BIOS系统将这段程序bootloader读入内存,并将控制权交给引导程序。4.BIOS具有驱动硬盘等硬件的驱动程序,并且,具有基本的硬件驱动服务程序。这些都由主板硬件厂商提供。Bootloader会调用BIOS的驱动程序和已有的中断服务来从硬盘读取操作系统的核心到内存,并将CPU控制交给操作系统。(操作系统就如一段数据被映射到内存,然后程序通过修改CS:IP跳转到操作系统的入口。)5.操作系统会通过IGDT重新构建中断向量表。每个硬件产生的中断,其编号在硬件设计之初就已经

8、设计好,外部硬件中断/CPU内部异常中断/程序调用中断,其中断号和程序是预先设置好的,当有外部中断时,中断寄存器IPR会暂时存储,并与中断屏蔽寄存器IMR进行AND位运算,然后就可以确定是否处理当前中断,这个是硬件电路实现的,运算后的结果经过中断处理(中断译码)进入CPU的中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。