段保护模式可固化程序设计技术的研究.pdfVIP

段保护模式可固化程序设计技术的研究.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
段保护模式可固化程序设计技术研究 成都电子科技大学 熊光泽弋涛 摘要 程序固化是嵌入式实时软件准缶运行的重要环节.本文重点研究Intel80x86段保护模式可阎化 程序开工段的设计技术,详细介绍了我们对段保护模式建立过程中GDT、1DT表ROM区定位及向RAM 区搬移等关键问题的有效方{击. 美t词 程序圃化 保护模式 GDT IDT 一.概述 嵌入式应用软件系统在宿主机和目标机组成的交叉开发环境下调试通过后,接n来最重 要的一步就是把程序固化在EPROM或FLASH中。保护模式可固化程序包于占扦。I般代码、应j“ 程序代码、实时操作系统的核心代码以及板级支持包BSP等部分。这几部分组成一个可臼举 的应用软件固化版本。其中,开工段代码所要完成的工作包括目标板(机)硬件初始化、实 模式到保护模式的转换和操作系统运行环境初始化。目标硬件初始化就是对代码执行所需要 的硬件环境,比如对异步串行I/O部件S[O、内存管理部件删、定时/计数单元TCU、中断 控制部件rcu以及浮点处理器等的初始化。实时操作系统运行环境初始化是指系统参数、空 问分配和组件配一k÷韧始设置。~般的商品化实时操作系统软件都会根据配置要求自动进行 相应的初始化。接着通过当前任务状态段的选择符,转入应用程序的执行。在目标硬件初始 化和实时操作系统运行环境初始化之间进行的实模式到保护模式的转换是保护模式下程序固 化的关键,它不仅涉及到实模式到保护模式的转换,而且涉及GDT表和IDT表的定位、转移, 只有正确完成GDT表和IDT表的定位和转移才能使程序在保护模式下正确执行。 i80x86实模式到保护模式的转化过程涉及到对CRO寄存器、全局描述符表GDT及其寄 存器GDTR、中断描述符表IDT及其寄存器IDTI=i和任务状态段寄存器TR等~系列复杂操作。 下面对保护摸式有关撅念及其在在可固化程序中的建立过程进行讨论。 二.保护模式基础 众所周知,存储保护机制是Intel80x86处理器家族的一大特色。该保护模式机制支 持四级特权和分段或分页存储管理方式,不仅方便多任务操作系统设计,扩大存储管理范围, 更重要的是可以隔离、保护操作系统不受用户软件有意或无意的干扰、破坏。其中,段(分 段)保护模式特别适合可靠性、安全性要求高的嵌入式实时软件系统。段保护模式存储器物 理地址形成为图1所示。 圈I基于段保护的存储器物理地址的形成 不难看出,该模式下寻址过程是通过选择符和各种描述符来实现的。 选择符被CPU用来检索描述符表.选择符放在段寄存器中,根据选择符访问表中相应 的描述符。描述符中包括段的线性基地址和此段的界限(大小).也包括段的~些属性. 描述符表是~种常驻存储器的数据结构,它的每一表项可以是~个描述符或是一个控 制门。80x86提供三种类型的描述符表,分别是:全局描述符表(GDT)、局部描述符表(LDT) 和中断描述符表(IDT)。 -全局描述符表(GD呵) 全局描述符表中包含着系统中的所有任务都可用的那些描述符.它们包括代码段描述 符、数据段描述符和系统控制描述符。Build过程生成的全局描述符表的第一个表项为空. 即对应于空的选择符而且没有使用.空的选择符定义一个空的指针.第二个表项对应GDT 表本身,即指向GDT表。第三个表项对应IDT表. ·局部描述符表(LDT) 鼠瓤撼述r毓毒包念了与一令绘定煎任务奄美甑t嘴、数据、堆放蔫撬述麓.通常、操 作系统的设计者使每一个任务都各自有一个LDT。使用LDT这样的数据结构,就可以使给 定任务的代码、数据等与操作系统和别的任务相隔离。 ·中断描述符表(IDT) IDT表中包含了相应的中断服务程序的入口地址和特性。系统中所用的每个中断在IDT 中都必须有一个表项。IDT中的描述符是通过INT指令、外部向量和内部发生的异常来访问 的。 显然,要找出某描述符表中的描述符,首先应定位该描述符表。i80x86指令集中,设有 和16位界限装入相应的系统寄存器GDTR和IDTR中.指令LLDT与之不同,将一个十六 位寄存器内容装入LDT选择符寄存器中,以此选择GDT表中的LDT表项,从中取出局部 描述符表的32位基地址和16位界

文档评论(0)

wuhuaiyu002 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档