




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1、第10章IA-32微型计算机的系统编程技术、2,10.1处理器管理和初始化、初始化10.1.1IA-32处理器、3,4、重置硬件将处理器切换到物理地址模式并初始化每个寄存器。重置硬件后,单处理器系统中的处理器和选定为多处理器系统自身引导处理器(bsp)的处理器将立即运行从FFF0H地址开始的软件初始化代码。在初始化过程中,多处理器系统中的其他处理器处于启动等待状态,直到软件初始化代码运行,BSP将唤醒这些处理器以运行自己的配置代码。所有处理器的初始化、配置和同步完成后,单处理器系统中的处理器和多处理器系统中的BSP将启动操作系统的初始化部分,或在没有操作系统的情况下执行启动操作。在5,10.1.2物理地址模式下初始化软件,IA-32计算机在打开和重置电源后进入物理地址模式,并配置执行基本系统功能(例如,配置处理中断和异常的中断尺度)所需的数据结构。开始运行位于物理地址FFFF0H的初始化程序。如果需要在物理地址模式下运行,请加载其他操作系统模块和数据结构如果需要在保护模式下运行(例如在Windows系统上),请加载运行保护模式所需的数据结构,然后将其转换为保护模式。在6,10.1.3保护模式下初始化软件,初始化物理地址模式,加载IDT,gdt,TSS,ldt(可选),使用页面?是,必须加载至少一个页面目录和一个页面表,加载包含处理器进入保护模式时必须运行的代码的代码段,否,7,加载包含所需中断和异常处理程序的一个或多个代码模块,初始化GDTR,控制寄存器CR1到CR4,MTRRs,IDTR处理器是CR0 .设定PE值以进入保护模式、初始化idtr、在进入保护模式之前初始化Idtr,以及在进入保护模式之前中断。初始化8,10.1.4IA-32e模式,如果需要初始化IA-32e模式,操作系统必须首先进入保护模式,并且寻呼机制必须是可能的。此外,在IA-32e模式下,CR4的PAE位必须为1。启用IA-32e模式后,系统地址寄存器(GDTR、LDTR、IDTR、TR)将继续指向现有保护模式下的描述符表,该表指向线性地址空间中低于4GBytes的区域。进入IA-32e模式后,您可以在64位操作系统上使用LGDT、LLDT、LIDT、lid、lid和LTR命令为系统地址寄存器加载64位描述符表中的地址。9,10.1.5模式转换,10,1。将物理地址模式切换到保护模式,如果使用CLI命令屏蔽硬件中断,则必须确保软件在模式转换期间不会发生中断或异常。NMI还必须屏蔽到其他硬件电路。使用LGDT命令将GDT的主地址装载到GDTR中。如果允许基于页面的管理并设置PG位,请运行MOVCR0,reg命令以设置CR0的PE位。MOVCR0,reg命令后立即执行farJMP或farCALL(通常,目标地址是此命令的下一个命令地址)。)。在此阶段后,系统进入保护模式。如果要使用本地描述符表,请运行LLDT命令将LDT中的段选择器加载到LDTR中。11,运行LTR命令可以将指向初始保护模式操作的段选择器加载到操作寄存器中,也可以加载指向用于存储TSS信息的存储区域的段选择器。保护模式启动后,段寄存器将继续在物理地址模式下保持其内容,步骤4的远程跳跃重置CS寄存器,另一段寄存器要求必要的设置。如果不使用ES、FS和GS,则可以在需要使用空选择器填充的其他段寄存器中重新安装值。您也可以针对新作业执行JMP或CALL指令来重设区段登录值,并将它传输到新区段。执行LIDT命令,将保护模式IDT的地址和边界装载到IDTR中。执行STI命令取消硬件中断的屏蔽。执行停止NMI所需的硬件任务。,12,2。如果在保护模式下使用基于页面的存储管理作为硬件中断掩码、NMI外部硬件电路,并在保护模式下使用基于页面的存储管理,则必须在与物理地址相同的线性地址空间中传递程序控制,并在GDT和IDT具有此类线性地址的页面中清除CR0的PG,在CR3中放入0H以清除TLB。将程序控制传递到64KB大小的可读取段时,CS寄存器的段符合实际地址模式限制。为、13、SS、DS、ES、FS和GS加载选择器。此选择器必须包含满足实际地址模式需要的值,例如64KB边界值、G=0、E=0、W=1、P=1等,默认地址可以是随机的。这些段寄存器必须加载非空段选择器。否则,段寄存器在物理地址模式下不可用。运行LIDT命令,该命令在物理地址模式地址空间中指向1MB物理地址模式地址空间中的物理地址模式。CR0 .将PE 0转换为物理地址模式。运行FarJMP命令以转至物理地址模式。此操作清除命令队列,并将默认地址和访问权限装载到CS寄存器中。根据实际地址模式的需要装载SS、DS、ES、FS和GS。所有未使用的分段寄存器都填充0。执行STI命令以消除硬件中断的屏蔽,并执行必要的硬件操作以中断NMI。14,3。从保护模式切换到IA-32e模式,从保护模式切换到MOVCR0,使用reg命令,其他cr0.pg=0,禁止寻呼。CR4允许物理地址扩展。设定PAE=1。如果此步骤失败,则会发生GP#错误。将4级页面映射表(PML4)的物理主地址装载到CR3。IA32_EFER。设定LME=1以启用IA-32e模式。CR0 .设置PG=1以允许基于页面的存储管理。这将确保处理器设置为IA32_EFER。LMA=1,15,4。从IA-32e模式切换到保护模式,首先切换到兼容模式。CR0 .设置PG=0以退出IA-32e模式。这会导致处理器设置ia32 _ efer.lma=0。将继承页面表目录主地址加载到CR3中。IA32_EFER禁止IA-32e模式。设定LME=0。允许传统的基于页面的保护模式。设定PG=1。MOVCR0、reg命令后必须有允许制表符的分支命令。16,10.2作业管理,10.2.1作业概述,作业执行空间段数据段堆段堆栈段作业状态段段寄存器(TSS)段寄存器,通用寄存器,EFLAG寄存器,EIP寄存器,CR3寄存器,作业寄存器,LDTR寄存器的内容I操作状态段(task-state segment,TSS)、描述符18,2.tss、TYPE=1001B指示操作是非活动操作。TYPE=1011B指示作业处于忙状态(正在运行或暂挂)。19、TSS描述符只能放置在GDT中,不能放置在LDT或IDT中。可以使用CALL或JMP语句为CPL值小于或等于TSS描述符的DPL值的所有程序或进程调度此操作。通常,只有授权程序才能执行操作切换。20,10.2.3任务切换,1。任务切换的原因、当前程序、任务或进程以GDT的TSS描述符形式执行JMP或CALL命令。当前程序、作业或进程对GDT或当前LDT的作业语句描述符执行JMP或CALL命令。一个向量在IDT中指向任务语句的中断或异常;在EFLAGS寄存器中提高NT位时,当前操作发出了IRET命令。21,2。切换任务步骤,将新任务的TSS段选取器从任务语句或先前任务链接域导入到JMP或CALL指令的操作数;检查当前作业是否允许切换新作业。当前作业的CPL和新作业段选择器的RPL必须小于TSS描述符或引用作业语句的DPL。异常、中断(非软中断)和IRET命令可以生成任务切换,而与目标操作语句或TSS描述符的DPL无关。确保新操作的TSS描述符标识为当前,并且段边界大于67H。确认新动作可用。验证用于TSS、新TSS和所有操作切换的段描述符当前是否已分页到系统存储。当JMP或IRET命令导致操作切换时,处理器会将当前操作TSS描述符的忙状态位设置为零。否则,此位设置为1。IRET命令导致的操作切换。清除EFLAGS临时图像中的NT标记。否则,将保留位原始值。22,从操作寄存器中删除当前TSS的主地址,并将公共寄存器、段选择器、EFLAGS寄存器的图像和EIP的内容复制到当前操作的TSS中。如果操作切换因CALL命令而异常或中断,处理器将在新操作的EFLAGS中显示NT位置1;否则,新任务的EFLAGS中的NT位不会更改。如果操作切换是由执行呼叫、JMP指令、异常或中断引起的,则处理器将在新操作的TSS描述符中使用标记位置1;否则,此位不变(或1)。从操作寄存器中删除新操作TSS的段选择器和描述符。向处理器加载新的TSS内容,包括LDTR寄存器、CR3、EFLAGS寄存器、EIP寄存器、通用寄存器和段选择器的内容。加载与新操作TSS段选择器相关的描述符。开始新操作,适用于23,10.3IA-32计算机的BIOS、10.3.1BIOS及其基本功能,基本输入输出系统(BIOS)是主板上的ROM、E2PROM或闪存芯片和固件(Firmware)系统启动后,BIOS程序将首先运行,为计算机提供最低级别的直接硬件初始化和外围设备的控制和支持。24,设置系统参数和POST (PowerOnSelfTest,POST)初始化系统功能调用系统引导引导引导引导引导引导引导引导,BIOS功能,运行25,10.3.2BIOS程序,启动块启动,运行时模块提取,通过运行时模块控制,BIOS功能、是、解压COMSSetup模块,运行CMOSSetup模块,否,继续解压POST模块,完成开机自检,启动OS引导程序,开始开发26,10.3.3BIOS程序,开发人员应熟悉程序集编程。开发人员必须熟悉硬件。开发人员必须计划父界面。指派模块并配置存储库。执行严格的软件测试。选择所需的开发工具。27,10.4Windows2000/XP设备驱动程序设计,10.4.1Windows2000/XP的设备驱动程序,虚拟设备驱动程序(VDD),内核模式驱动程序,文件系统驱动程序,保留的设备驱动程序,PnP驱动程序,WDM驱动程序它是遵循电源管理协议并实现Windows98和Windows2000之间源代码级别兼容性的PnP驱动程序,是在本地硬盘或网络上实施标准PC文件系统模型(包括多层目录结构和命名文件概念)的过滤器驱动程序。包含WindowsNT以前版本驱动程序的全功能驱动程序直接控制Windows2000中无需修改即可运行的硬盘。28,1。基本概念,设备对象:为帮助系统中的软件管理硬件而创建的数据结构。一个物理设备可以有多个这样的数据结构。物理设备对象:称为PDO,是设备对象堆栈底部的设备对象。每个物理设备都将创建FDO,即描述设备功能的相关数据结构的PDO功能设备对象。过滤器设备对象:简单地称为FiDOs,在FDO的上方或下方分别称为父过滤器和子过滤器。用于修改现有功能驱动程序的行为。设备对象堆栈:设备对象堆栈表示处理请求的驱动程序层。,10.4.2WDM的基本结构,29,FiDO,FDO,FiDO,PDO,高级过滤器驱动程序,功能驱动程序,低级过滤器驱动程序,总线驱动程序,IRP功能驱动程序:管理FDO表示的设备、管理初始化、处理I/O操作完成时发生的中断事件,并为用户提供适当的设备控制方法。过滤器驱动程序:用于监视和修改IRP流。硬件或软件代表可以使用过滤器驱动程序修改现有功能驱动程序的行为。总线驱动程序:负责管理硬件和计算机之间的连接。此驱动程序实际上是与类似设备一起拥有的。与PCI总线驱动程序相同。2 .硬件设备的驱动程序类型31、总线驱动程序检测到新硬件,用户使用“控制面板”中的“添加新硬件”向导安装设备,PnP管理器将该设备及其驱动程序的某些条目添加到注册表的配置表中,PnP管理器可能需要调整分配给现有设备的资源,以便将所需的资源用于新设备,3。设备驱动程序安装顺序、硬件访问、PnP管理器生成PDO、32、加载驱动程序后运行DriverEntry。在中设定驱动程式中每个常式的入口地址,PnP管理员参考登录中的资讯寻找与您建立的PDO相关的筛选和功能驱动程式,PnP管理员载入底部筛选驱动程式,然后呼叫相应的AddDevice函数。此函数创建FiDO以在过滤器驱动程序和FiDO之间建立水平连接,按照INF文件中的说明安装驱动程序,依次加载33、PnP管理器,加载每个低级过滤器、功能驱动程序和每个高级过滤器,直到整个设备对象堆栈完成,AddDevice将PDO连接到FiDO,PnP管理器向设备发送各种PnPIRP。PNP管理器通知“启动设备”PNP IRP分配了驱动程序的资源,驱动程序使用该资源分配启动的设备。驱动程序将各种请求(如IRP处理等待状态、34、应用程序读取、写入数据等)推进到驱动程序,在调用相关函数时,I/O管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版土石方工程全方位服务居间服务协议
- 2025年文化旅游园区厂房租赁安全生产与景区安全管理协议
- 2025年度环保建材三方买卖合同
- 2025版商铺买卖双方权益保障及转让合同
- 2025版森林资源砍伐与生态补偿金支付合同范本
- 2025版股份制企业股权质押合同范例
- 2025房地产项目委托开发与绿色建筑认证管理合同范本
- 2025版移动通信基站租赁及运营合同
- 2025版石灰生产原料进口合同范本
- 2025年度陶瓷行业环保专员劳动合同书
- 中铝矿业有限公司巩义市张家沟大发铝土矿矿山土地复垦与地质环境保护治理方案
- 班级管理常规优质课件
- IT运维服务方案信息运维服务方案
- ZSL1000、ZSL750塔吊外挂架施工方案
- 文化自信作文800字议论文
- GB/T 28287-2012足部防护鞋防滑性测试方法
- GB/T 27677-2017铝中间合金
- GB/T 19627-2005粒度分析光子相关光谱法
- 芜湖宜盛置业发展有限公司招聘3名编外工作人员(必考题)模拟卷
- 混凝土结构设计原理教学教案
- 齿轨卡轨车课件
评论
0/150
提交评论