(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于8086单芯片计算机bios软件的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于8 0 8 6 单芯片计算机的b i o s 软件的设计与实现 摘要 随着科技的发展,半导体工艺制程进入深亚微米时代,在一颗芯片上集成 上百万甚至上一个晶体管成为现实。现在所有芯片厂商都以面积最小化、功能 最大化做为自己的发展方向,深亚微米效应理论及i p 核技术越来越受到理论界 和工业界的广泛关注,系统芯片是当前技术发展的必然趋势,半导体行业即将 进入单芯片计算机时代。 单芯片计算机将传统p c 机主板上的主要芯片最大限度地集成到单颗芯片 中,使其重量、体积和功耗大幅下降,而性能却会得到很大改善。本文基于8 0 8 6 单芯片计算机开发项目开展研究工作,研究了s d 卡的s p i 协议,并以s d 卡作为 主存储器,定制的设计了r o m b i o s 和v g a b i o s 软件。 论文的主要工作和取得的成果: 1 分析了关于单芯片计算机的b i o s 软件设计所面临的一些理论难题和待 解决的关键性技术难题,并提出了相应的解决方案: 2 搭建了一套完整的设计b i o s 软件的编译、调试平台; 3 分析s d 卡的s p i 协议,基于8 0 8 6 单芯片计算机定制设计r o m b i o s 程序; 4 分析v g a 显示原理,设计v g a b i o s 程序,使v g a b i o s 与v g a 控制器相 配合,完成文本模式显示,并实现光标、滚屏等功能; 5 成功实现了以软盘镜像和硬盘镜像从s d 卡引导启动f r e e d o s 操作系统。 关键词:8 0 8 6 单芯片计算机;b i o s ;s d 卡;引导;v g a m t h ed e s i g na n di m p l e m e n t a t i o no ft h eb i o ss o f t w a r eb a s e d o n 8 0 8 6c o m p u t e r - o n - a c h i p a b s t r a c t w i t ht h e d e v e l o p m e n t o ft e c h n o l o g y ,t h es e m i c o n d u c t o rm a n u f a c t u r i n g p r o c e s st e c h n o l o g yi n t ot h ed e e ps u b m i c r o ne r a ,i nac h i po fm i l l i o n s o re v e na t r a n s i s t o rb e c o m ef lr e a l i t y n o wt h a ta l lc h i pm a k e r sh a v ei no r d e rt om i n i m i z es i z e , f u n c t i o nt om a x i m i z et h e i ro w nd e v e l o p m e n ta st h ed i r e c t i o no fd e e ps u b m i c r o n e f f e c t so fi pt h e o r y t h es y s t e mc h i pi sc u r r e n t l yt h ei n e v i t a b l et e c h n o l o g i c a l d e v e l o p m e n tt r e n d s ,a n d t h es e m i c o n d u c t o ri n d u s t r yi sa b o u tt o e n t e ra c o m p u t e r o n a - c h i pa g e t h es i n g l e c h i pc o m p u t e ri sac o m p u t e r ,w h i c hm a x i m i z ea n di n t e g r a t et h em a i n c h i p so nt h em o t h e r b o a r do ft h et r a d i t i o n a lp ci n t o asi n g l em o n o l i t h i cc h i p ,s ot h a tt h e w e i g h t ,s i z ea n dp o w e rc o n s u m p t i o nr e d u c e ds i g n i f i c a n t l y ,y e tt h ep e r f o r m a n c e w i l l b es i g n i f i c a n t l yi m p r o v e d t h i sp a p e r sm a i nt a s ki s :t oc a r r yo u tr e s e a r c hw o r ko n t h e8 0 8 6c o m p u t e r o n a - c h i pd e v e l o p m e n tp r o j e c t s ,a n dr e s e a r c ht h es dc a r ds p i p r o t o c o l ,c u s t o md e s i g nt h er o m b i o sa n dv g a b i o s s o f t w a r e t h em a i nw o r k sa n da c h i e v e m e n t so ft h i sd i s s e r t a t i o na r ef o l l o w s : 1 a n a l y s i so nt h es i n g l e c h i pc o m p m e r sb i o ss o f t w a r ed e s i g nc h a l l e n g e s f a c e db ys o m eo ft h et h e o r i e sa n dt h ek e yt e c h n i c a lp r o b l e m st ob ea d d r e s s e d ,a n d t h ec o r r e s p o n d i n gs o l u t i o n ; 2 t ob u i l dac o m p l e t es e to fb i o ss o f t w a r ef o rt h ed e s i g no fc o m p i l i n g , d e b u g g i n g ,p l a t f o r m ; 3 a n a l y s i so fs dc a r ds p ip r o t o c o l ,b a s e do n8 0 8 6c o m p u t e r o n - a c h i p , c u s t o md e s i g nr o m b i o sp r o c e d u r e s ; 4 a n a l y s i so fv g ad i s p l a yp r i n c i p l e ,d e s i g n v g a b i o sp r o c e d u r es o v g a b i o sc o m p a t i b l ew i t ht h ev g ac o n t r o l l e rt oc o m p l e t et h et e x t - m o d ed i s p l a y , a n dt oa c h i e v et h ec u r s o r ,s c r o l l i n ga n do t h e rf u n c t i o n s ; 5 s u c c e s s f u l l ya c h i e v e dw i t haf l o p p yd i s km i r r o r i n ga n dd i s km i r r o r i n gb o o t f r o mt h es dc a r df r e e d o so p e r a t i n gs y s t e m k e y w o r d s :c o m p u t e r - o n a c h i pb a s e do n8 0 8 6 ;b i o s , s d c a r d , b o o t 插图清单 图卜1p c 机上单b i o s 芯片及其供电电池3 图i - 2p c 机上双b i o s 芯片3 图2 - ip r o mb i o s 程序存储器。7 图2 - 2e p r o mb i o s 程序存储器8 图3 1c y g w i n 编译平台1 2 图3 - 2s d 卡中存储的操作系统的主引导记录和扇区分配1 3 图3 - 3 在w i n h e x 中查看操作系统的主引导记录的m a g i cn u m b e r 1 4 图3 - 4 在w i n l m a g e 中查看f r e e d o s i m g 文件1 4 图3 - 5b o c h s 模拟器1 4 图3 - 6 在b o c h s 模拟器中设置b i o s 的时间1 5 图3 - 7 在b o c h s 模拟器上启动f r e e d o s 1 5 图3 - 8 在v m w a r e 中调试并启动f r e e d o s 1 6 图3 - 9 本设计所采用的a l t e r ad e 2f p g a 开发板1 6 图3 - 1 0 实验中的开发板硬件平台1 7 图4 - i 本设计r o m b i o s 加载f r e e d o s 启动流程图( 1 ) 1 8 图4 - 2 本设计r o m b i o s 加载f r e e d o s 启动流程图( 2 ) 1 9 图4 - 3 本设计r o m b i o s 加载f r e e d o s 启动流程图( 3 ) 1 9 图4 - 4r o m b i o s 成功加载f r e e d o s ,显示c 盘盘符2 0 图4 - 5 在实验中处于工作状态的f p g a 开发板2 0 图4 - 6f p g a 开发板s d 卡卡槽2 0 图4 - 7w i n h e x 查看m b r 2 1 图4 - 8s d 卡虚拟软盘,r o m b i o s 启动0 s 流程图2 3 图4 - 9b i o s 启动0 s 实验图,s d 卡虚拟软盘,显示a 盘盘符2 3 图4 1 0 引导扇区解析2 6 图4 1 1r o m b i o s 对s d 卡的初始化流程2 8 图4 - 1 2r o m b i o s 对s d 卡单模块的读取操作3 0 图4 - 1 3r o m b i o s 对s d 卡读取操作一数据错误3 1 图4 - 1 4s d 卡标准卡协议的多模块读取操作3 2 图4 - 1 5r o m b i o s 对s d 卡单模块的写入操作3 3 图4 1 6s d 卡标准协议的多模块写入操作3 4 图4 1 7r o m b i o s 对s d 卡的无数据操作3 5 图4 1 8s d 卡r 1 响应规范3 6 图4 1 9 硬盘镜像从s d 卡启动f r e e d o s 操作系统3 7 图5 1v g a b i o s 首标a a 5 5 3 9 v i 图5 2 颜色立方体4 1 图5 3v g a b i o s 访问v g a 寄存器4 l 图5 4 光标的显示类型4 3 图5 5 光标坐标位置h a s h 算法4 3 图5 - 6 滚屏功能示意图4 5 图5 7 滚屏功能示意图( 1 ) 4 6 图5 8 滚屏功能示意图( 2 ) 4 7 图5 9 滚屏功能示意图( 3 ) 4 7 v i i 表格清单 表4 - 1f a t 分区上的引导扇区段2 5 表4 - 2s d 卡引脚在s p i 模式下的定义和功能描述2 7 表4 - 3s d 卡寄存器2 7 表4 - 4s d 卡s p i 接口的对写入数据的响应信号3 3 表4 - 5s d 卡的命令格式3 5 表4 - 6r 1 应答响应3 6 表5 - 1 寄存器端口地址3 8 表5 - 2 与光标有关的v g a b i o s 调用4 2 v i l l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得 金起王些太堂 或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示谢意。 学位论文作者签字: 垛鸥 签字日期:彩易年毋月彩日 学位论文版权使用授权书 本学位论文作者完全了解 金胆王业太堂 有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人 授权 金胆王些太堂 可以将学位论文的全部或部分论文内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 工作单位: 通讯地址: i i 导师签名: 签字日期: 电话: 邮编: 月23 日 够鹈骆 :年业 名夕毕签锄者 荔一 文期文论日论位字位学签学 致谢 本论文在选题时研究过程中受到解光军教授和高明伦敦授的悉心指导。两 位老师不仅学识渊博,治学严谨,而且待人诚恳,平易近人。他们对科学严谨 认真的态度,高尚的品德,以及超凡的人格魅力,是我学习的榜样。这两年多 来从二位长者那里学到的知识必将使我终身受益。衷心感谢二位导师的培养、 支持和教诲! 两年多来,二位老师不仅在学业上给予我精心的知道,而且在思 想、生活方面给予我无微不至的关怀,在此谨向二位导师致以诚挚的谢意和崇 高的敬意! 感谢倪伟老师在论文选题、结构确定、审核修改方面给予我的大力帮组和 悉心指导。感谢倪伟老师在小论文写作中的耐心指导与帮助! 感谢在百忙之中抽空对我的论文进行评审和校验的老师们,是你们对我的 论文提出了宝贵的修改意见,是我的论文最后走向完善。 感谢倪伟老师、张多利老师、尹永生老师、杜高明老师、宋雨鲲老师、邓 红辉老师、耿罗峰博士、侯宁博士、梁上泉博士、张睿博士和尹凯师兄在项目 中的大力指导和热情帮助! 感谢倪伟老师、林薇老师、贾靖华老师、胡建老师、杨依忠老师、许晓林 老师、吴敏老师在学习和生活中给予的支持和帮助! 感谢微电子所0 7 级邓慧娟、杨骏、黄俊俏、崔磊、何莹莹等同学在项目和 生活中给予的帮助和支持! 感谢微电子设计研究所和电子科学与应用物理学院微电子实验室的全体成 员的帮助和支持!, 感谢我最亲爱的家人,你们对我的深厚爱意和默默支持是我学习和工作的 动力。你们对我的养育之恩,我终生无以回报! 特别感谢我的女朋友王白露及其家人在我读研期间给予我生活上的莫大帮 助以及在做人、做事和做学问方面给予的教诲! v 作者:果鹏 2 0 1 0 年3 月 第一章绪论 1 1研究背景与研究意义 在三十年前,i b m 推出个人计算机时,其内部的b i o s ( b a s i ci n o u t p u t s y s t e m ) 完全由i b m 工程师自行独立开发,当时为了快速的推广并普及,i b m 将p c 的内部系统等技术资料,甚至b i o s 系统调用等接口规格都予以公开,以协 助其他厂商开发p c 的相关软件和硬件产品。 后来像c o m p a q 等计算机厂商,为了要开发跟i b mp c 兼容的个人计算机, 在维持相同的函数调用界面,在与操作系统、应用程序兼容的前提下,尝试自 行开发b i o s 【。 一些最早踏入个人计算机研发领域的厂商如宏暮、神通,以前也是投入大 量人力来开发、编写自己计算机的b i o s ,除此之外其他厂商,在当年也可能游 走在法律边缘,以所谓的逆向工程还原技术( r e v e r s ee n g i n e e r i n g ) 去直接反编 译一些厂商生产的b i o s 来使用,这样做当然是1 0 0 的兼容,但是很容易遭到 许多法律诉讼。由于涉及到专利权与厂商之间的竞争因素,b i o s 的兼容性与合 法性,一直是p c 界要面对的严肃课题。 在1 9 8 3 年x t 时代,工研院电子工业研究所( e r s o ) ,曾以c l e a nr o o m 纯 净室的方式,开发出与i b mp c 兼容的e r s ob i o s ,并授权转移给了一些厂商使 用,也因此打开了一些由大厂掌握b i o s 关键技术的封闭缺口;到了2 8 6 时代, 美国凤凰科技p h o e n i xt e c h n o l o g i e s 也以同样的手法,开发出功能强大且兼容的 2 8 6a tb i o s ,并且以授权的方式,提供给一些有意生产个人计算机的厂商使 用,而厂商也可以通过b i o s 厂商所提供的b i o s 源代码与相关的技术支持,快速 地开发出新一代的计算机产品并推出上市。 随后,又有美国的安迈公司( a m i ,a m e r i c a nm e g a t r e n d si n c ) ,惟尔科 技( a w a r ds o f t w a r ei n c ) ,s y s t e ms o f t 等软件公司也加入到角逐与经营中。至 此,b i o s 的研发也成为了一个专门而且有技术门槛的软件行业。 目前从事b i o s 程序代码研发的公司有美国的安迈公司,凤凰科技公司,惟 尔科技公司( 被p h o e n i x 于1 9 9 8 年9 月所并购) ,无论是以研发根基深厚、开机 速度快捷文明的a m ib i o s ,还是台式机较为常见的a w a r db i o s ,以及笔记 本电脑中最常见的p h o e n i xb i o s ,这三家b i o s 系统软件公司的b i o s ,在全球 b i o s 占有率绝对是最高的。 除此之外,在笔记本电脑市场中,原本还有一家为美国s y s t e ms o f t 的公司, 该公司的笔记本型b i o s 也极为有名,其市场占有率近追着p h o e n i xn o t e b i o s , 但随后又有一家与1 9 9 8 年9 月成立的系微股份公司( i n s y d e ) ,买下整家s y s t e m s o f t 公司b i o s 版权与相关研发部门,随后引进处理器龙头企业英特尔( i n t e l ) 等机构的资金,以当地的b i o s 专业厂商为号召,其业务方向着重于o e m 主板市 场,特别是笔记本便携式计算机系统的b i o s 市场。 一般b i o s 的授权费用,是由系统厂商与b i o s 厂商签订一个套数之后,由 b i o s 厂商提供对等套数的镭射防伪贴纸,每张大约l 5 美元,根据采购总数的 多少而定。而源代码或者是通过软件编译后的机器码,由系统厂商自行烧到主 板上的芯片,从b i o s 所取得的源代码,则依厂商设计的计算机平台规格以及需 要经过一定的修改,编译连接成功后可在这个特定计算机平台上自行的b i o s 监 控程序( 这个动作称为p o r t i n g 移植) ,再由厂商自行烧写到主板上的芯片中: b i o s 监控程序烧写到主板上的芯片后,贴上防伪标识和厂商的l o g o ,一套具备 合法b i o s 授权且可开机运行的主板( 或计算机系统) 就可以正式出厂了。 2 0 0 8 年6 月1 9 日,在大连举行的第六届中国国际软件和信息服务交易会上。 英特尔公司宣布,经原信息产业部协调,在与工业和信息化部( 原信息产业部) 三年来针对新一代b i o s 技术开展合作的基础上,英特尔决定将新一代b i o s 核心 技术英特尔 e f i ( e x t e n s i b l ef i r m w a r ei n t e r f a c e ,可扩展固件接1 2 ) 平台创 新架构授权给南京百敖软件有限公司使用,该公司将正式成为英特尔在全球范 围内第五家和中国内地唯一一家国际独立b i o s 供应商( i n d e p e n d e n tb i o s v e n d e r ,i b v ) 4 1 】。 而在此之前,中国内地企业在掌握b i o s 核心技术方面还是空白。正是由于 b i o s 的核心技术被国外的几家大公司所垄断,因此中国内地相关企业、厂家所 生产的产品就需要交纳高昂的版权费用。 1 2b i o s 技术介绍 b i o s 是英文“b a s i ci n p u to u t p u ts y s t e m 的缩略语,直译过来后中文名称 就是“基本输入输出系统,l 。其实,它是一组固化到计算机内主板上一个r o m 芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、 开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最 直接的硬件设置和控制。b i o s 设置程序是储存在b i o s 芯片中的,只有在开机时 才可以进行设置。c m o s 主要用于存储b i o s 设置程序所设置的参数与数据,而 b i o s 设置程序主要对计算机的基本输入输出系统进行管理和设置,使系统运行 在最好状态下,使用b i o s 设置程序还可以排除系统故障或者诊断系统问题【2 j 。 既然b i o s 是“程序,那它就应该是属于软件。但也不能简单的认为b i o s 是纯粹的软件,因为它与一般的软件还是有一些区别,而且它与硬件的联系也 是相当地紧密。形象地说,b i o s 应该是连接软件程序或操作系统与硬件设备的 一座“桥梁”,负责解决硬件的即时要求。 2 计算机用户在使用计算机的过程中,都会接触蛩j b i o s ,它在计算机系统中 起着非常重要的作用。块主板性能优越与否,很大程度上取决于主板上的 b i o s 管理功能是否先进。 b i o s 芯片是主板上一块长方型或正方型芯片,见图2 1 、2 2 所示。 b i o s 中主要存放程序的功能: 1 自渗断程序j j r l 电自检程序:通过读取c m o s r a m 中的内容识别 硬件配置,并对其进行自检和初始化: 2c m o s 设置程序:引导过程中,用特殊热键启动,进行设置后,存八c m o s r a m 中: 3 系统自举装载程序:在自捡成功后将磁盘相对0 柱面0 磁道1 扇区上的引导 程序装入内存,让其运行以装入d o s 系统; 4 主要i o 设备的驱动程序和中断服务,基本外围设备的驱动程序:由于 b i o s 直接和系统硬件资源打交道,是针对某一类型的硬件系统的定制设计口j 。 图1 1p c 机上单b i o s 芯片及其供电电池 图1 1 2p c 机上艘b i o s 芯片 对于b i o s 程序代码的编写是本设计的一个具体任务,而b i o s 本身有其特殊 性。b i o s 程序是针对硬件定制的软件,同时不仅要满足软硬件的协同和实现参 数的传递,而且还要搭建一个完备的适合实验的开发平台。因此本设计的b i o s 程序采用c 语言和汇编语言混合编写,因为汇编语言可以快速而准确的定位硬 件电路和寄存器,c 语言又能很好的实现具体的功能 4 - 8 】。但是这样又使得开发 平台环境很复杂,编译器要同时满足c 语言又要满足a s 8 6 和l d 8 6 。而且,b i o s 是底层软件,其主要功能都是通过底层的操作完成交互性的编译。因此,很多 顶层和应用层的成熟的编译系统无法满足本设计的要求。 本设计参考了一些成熟的开发平台,如n a s m 和m a s m 等,并根据b i o s 的 具体技术特点,自行搭建了一套完整的开发实验平台( 在第三章具体介绍) , 解决了上述的技术难题。 1 3论文的主要研究内容和结构 课题的要研究内容为基于单芯片计算机的b i o s 软件的设计与实现,并实现 计算机的全硅化,以s d 卡代替传统磁性存储介质作为主存储器存储f r e e d o s 操 作系统,以本课题所设计的r o m b i o s 和v g a b i o s 相配合,启动f r e e d o s 操作 系统,实现2 5 6 色文本模式显示。 本文的组织结构为: 第一章:介绍了b i o s 技术以及本文的研究背景意义。 第二章:介绍了常见的b i o s 系统架构,阐述了基于单芯片计算机b i o s 软件 设计面临的几个理论上的难题,并简单描述了本设计的解决方案。 第三章:对比了几款b i o s 软件开发平台,并说明了本设计开发平台的软件 设计思路和理念。 第四章:在上一章的基础上提出一种基于单芯片计算机的b i o s 软件设计实 现方案,并定制设计了r o m b i o s ,从s d 卡分别以软盘和硬盘模式启动f r e e d o s 操作系统。用实验验证了本文所提方案的正确性和可行性。同时在b o c h s 模拟器 实现本设计方案,阐明了本设计的优良的可移植性。 第五章:设计v g a b i o s ,初始化v g a b i o s ,设置v g a 模式,配置v g a 寄 存器组群o ,并设计实现v g a 显示的光标回车换行功能,以及滚屏功能。使其 v g a b i o s 与r o m b i o s 配合,实现2 5 6 色文本模式显示。 第六章:总结了本文的工作并对未来所要做的工作进行了展望。 4 第二章b i o s 相关理论基础 b i o s 技术源于i b mp c a t 机器的流行以及c o m p a q ( 康柏公司,2 0 0 2 年被 h p 惠普公司收购) 公司的电脑最初产品便携式兼容性个人电脑“c o m p a q p o r t a b l e 。 在计算机启动的过程中,b i o s 主要负责硬件电路的初始化,硬件功能的上 电自检测,以及引导操作系统。在早期的计算机中,b i o s 还提供一套运行时的 服务程序给操作系统及应用程序使用。b i o s 程序存放于主板上的一个只读内存 中,由一块纽扣电池供电,以供b i o s 内存储的时钟实时更新。当断电后,存储 b i o s 的内存不会丢失数据;当系统上电或被复位重置( r e s e t ) 时,处理器第一 条指令是一条长跳转指令,指向了存储b i o s 的内存,执行b i o s 的程序,控制权 交给了b i o s ,让初始化程序指令开始执行。 在早期,b i o s 技术被国外的公司垄断,制造b i o s 程序的厂商主要是美国的 几家大公司:a w a r db i o s 程序、a m ib i o s 程序、p h o e n i xb i o s 程序以及其 它的免跳线b i o s 程序和品牌机特有的b i o s 程序,如i b m 等等;当前a w a r d 公 司已经被p h o e n i x 公司收购,所以最新的主板b i o s 只有p h o e n i x 和a m i 两家 提供商。因此在台式机主板方面,虽然其标有p h o e n i x a w a r d ,但实际上还 是p h o e n i x 的b i o s 程序pj 。 2 1标准p c 机的b i o s 系统架构 参照传统标准的p c 机b i o s ,从功能上看,b i o s 分为三个部分:上电自检 测( p o s t :p o w e ro ns e l f t e s t ) 、初始化( i n i t i a l i z a t i o n ) 和加载操作系统( b o o t o p e r a t i o ns y s t e m ) 。 2 1 1自检及初始化 b i o s 程序的自检测部分是用于主机在接通电源之后,对电脑的硬件电路部 分的检测,也叫做加电自检测或上电自检测( p o w e ro ns e l ft e s t ,简称p o s t ) 。 上电自检测的主要方式是通过硬件电路的地址端口,向指定的硬件寄存器输出 特定的值,之后从这些硬件端口读取寄存器的配置值,再将读取的配置值与存 储在程序中的标准设置的数值对比,查看是否一致。通常完整的上电自检测 ( p o s t ) 将包括对c p u ,主板,c m o s 存储器,串并口,显示卡,6 4 0 k 基本内 存,1 m 以上的扩展内存,r o m ,软、硬盘系统及键盘等进行测试。在主板上 有一个用于提示系统信息的电路,通过鸣笛声音的长短作为系统的提示信息。 当b i o s 上电自检测的过程中系统出现错误,则系统会讲错误的信息发到主板上 的提示信息电路,将错误的具体信息以长短音提示警报信号;同时会调用b i o s 的显示功能,在屏幕上显示具体出错的内存段和出错内容等,系统将等待用户 处理;对于严重故障( 致命性故障) 则停机,此时由于各种初始化操作还没完 成,不能给出任何提示或信号。b i o s 程序自检测的主要目的是检查电脑硬件部 分是否可以正常工作。 b i o s 程序的初始化部分包括对一些外部设备进行初始化和检测、创建中断 向量和设置寄存器组群等。b i o s 的设置是初始化很重要的一部分,主要是针对 硬件及寄存器配置相匹配的相关参数。当计算机启动时,内部指令便会读取从 硬件电路的端口依次读取这些硬件寄存器的参数,与实际的硬件设置进行校验。 不符合的话,就会重新执行读取操作,执行设定的次数之后,就会报错,提示 出错信息。如果符合,将会继续执行b i o s 程序。 2 1 2 程序服务处理 程序服务处理程序主要是为应用程序和操作系统服务,这些服务主要与输 入输出设备有关,例如读磁盘、文件输出到打印机等。为了完成这些操作,b i o s 必须直接与计算机的i o 设备打交道,它通过端口发出命令,向各种外部设备传 送数据以及从它们那儿接收数据,使程序能够脱离具体的硬件操作【4 1 。 2 1 3 硬件中断处理 硬件中断处理则分别处理p c 机硬件的需求,b i o s 的服务功能是通过调用中 断服务程序来实现的,这些服务分为很多组,每组有一个专门的中断。例如屏 幕打印,中断号为0 5 h ;键盘服务,中断号为0 9 h 和1 6 h ;视频显示服务,中断 号为1o h ;磁盘及串行口服务,中断1 4 h 等【4 1 。每一组又根据具体功能细分为不 同的服务号。应用程序需要使用的外设、以及进行的相关操作只需要在程序中 用相应的指令说明即可,无需直接控制。 程序服务处理和硬件中断处理这两部分虽然是两个独立的内容,但在使用 上密切相关。这两部分分别为软件和硬件服务,组合到一起,使计算机系统正 常运行【4 1 。 2 1 4 记录设置值 在传统标准p c 机上,用户可以在开机之后,通过x r j - b i o s 具体的配置来改变 各种不同的设置。 2 1 5 加载操作系统 b i o s 程序的引导部分的主要功能是引导d o s 或其他操作系统。b i o s 先从软 盘或硬盘的开始扇区读取主引导记录( m b r ) ,如果没有找到,则会在显示器 上显示没有引导设备,如果找到主引导记录会把电脑的控制权转给主引导记录, 由主引导记录把操作系统装入电脑,在电脑启动成功后,b i o s 的引导( b o o t ) 6 这部分任务就完成了0 - 3 1 。传统标准p c 机上所有的操作系统都是通过b i o s ,将 控制权转交给引导扇区再由引导扇区转到各分区激活响应操作系统9 - z 2 。 2 2 存储b i o s 程序的存储器分类 一般在设计计算机或者外围设各时,存储b i o s 程序代码所使用的只读存储 器r o m 的种类,大致可分为下列几种:p r o m 、m a s kr o m 、e p r o m 和f l a s h r o m 。 221p r o m ( p r o g r a m m a b l er o m ) 可编程存储器 p r o m 出厂时内部每一字节的数据都是$ f f ,也就是每一位都是1 ,且从未 烧写过可供客户使用烧写工具以特殊电压将数据写入。把某一位写a o ,就相 当于把代表1 的线路给烧断。但是也因为这种特性,p r o m 只能写入一次数据, 日后兽再礁怯诈斯糯时- * 辅雷新曲买一蚺薪的卒e q p r o m 褒恪写 目2 1p r o mb i o s 程序存储器 222m a s k r o m m a s k r o m 是由客户指定的数量较大的存储器,在大量生产的过程中将数 据直接写入,由内存生产厂家依照客户的指定内容出场之后就已经有特定的 程序、数据或代码。但是同时其内容也无法自行修复或烧写。通常在大量生产 的情况下,m a s kr o m 的容量比较大,因此成本也比较低。这也就是为什么早 期许多汉卡字形、甚至大型电子游戏机喜欢采用m a s k r o m 的原因。 223e p r o m ( e r a s a b l cp r o m ) e p r o m 属于p r o m 之后的改良型r o m 。e p r o m 有一个直透芯片内部的透 明的圆形窗口。若要清除数据,可以使用专用的e p r o m 烧写工具,或者紫外线 灯管照射几十分钟之后内部数据就重新恢复成$ f f ( 每一位都恢复成1 ) 。用 户可以重新烧写新的程序、数据和代码”,而不必再去购买一块芯片来烧写, 对厂商与客户在监控程序维护上比较方便而且经济。 在f l a s h 内存出现之前,e p r o m - - 直是主板、显卡或其他的外围设备所 常采用存储b i o s 监控程序的内存类型。但随着写八速度更快、更方便的f l a s h 内存的出现,e p r o m j ;g 渐被取代j h ”。困为并不是每个客户都有e p r o m 烧写 工具,也不愿意大费周折花几十分钟先清除e p r o m 的内容然后再烧写数据。 陶2 - 2e p r o mb i o s 程序存储器 224f i a s h r o m f l a s hr o m 快速只读存储器,也称f l a s hm e m o r y 或闪存,是当今主板、显 卡存储b i o s 监控程序的主要内存类型【4 5 】。许多数码相机、p d a ( 个人数据终端) 以至于手机等便携式设备,都是用这种类型的内存,因此f l a s hr o m 可以说是 目前主流的内存种类之一【1 5 1 。这种内存在一般状态下,特性和一般的r o m 没什 么两样,也就是先前写入的数据无法被擦除、破坏,即使关掉电源之后内容仍 然存在,不会被改写,这样就保证了所存储程序的安全性和稳定性:不过在特 殊工具程序的配合以及相关硬件设置、某种特定电压之下,内部存储的程序代 码、数据,能够快速地被擦除并且可以重新修改、写入新版本的监控程序与 数据。 f l a s hr o m 读取的壤小单位是一个b y t e ,但擦除写入的单位是以一个区块 ( b l o c k ) 来进行的。以一个最小为4 k 写入单位的f l a s h r o m 而言,即使要修改 某一个b y t e 的数据,必须得将该区块的所有内容备份出来,改变其中要修改的 部分后,在一起把整个区块写回去 1 6 1 。 鉴于以上对比分析,本设计在实验阶段采用了f l a s hr o m 作为b i o s 的存储 器,采用a l t e r a 公司的q u a r t u s i i 软件兼容的d e 2c o n t r o lp a n e l 软件作为烧写工具 ”,向d e 2f p g a 开发板上自带的4 m 容量f l a s h r o m 烧写所设计的b f o s 软件程 序的机器码。采用这个平台,可以对f p g a 开发板上的f l a s h r o m 进行快速的烧 写和擦出,节省实验时间,减少开发周期;而且,该平台操作简单,还可以对 烧写的机器码进行查看以检验烧写的程序和程序所在地址是否正确。 2 3本设计面临的理论难题和解决方案 本小节主要介绍单芯片计算机的发展和基于此的b i o s 软件设计面临的理 论和实践上的难题,同时提出本设计对于这些难题的解决方案。 2 3 1传统的磁性介质存储器及单芯片计算机 磁介质的数据存储设备是将数据存储在密封于洁净的硬盘驱动器内腔的若 干个磁盘片上。这些盘片一般是在以铝为主要成分的片基表面涂上磁性介质所 形成,在磁盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干 个同心圆就被划分成磁道( t r a c k ) ,每个磁道叉被划分为若干个扇区( s e c t o r ) , 数据就按扇区存放在硬盘上。在每一面上都对应地有一个读写磁头( h e a d ) ,所 以不同磁头的所有相同位置的磁道就构成了所谓的柱面( c y l i n d e r ) 。传统的硬 盘读写都是以柱面、磁头、扇区为寻址方式的( c h s 寻址) 。硬盘在上电后以 电机马达带动转动轴高速旋转,位于磁头臂上的磁头悬浮在磁盘表面,可以通 过步进电机在不同柱面之间移动,对不同的柱面进行读写。正是这种磁性存储 和机械式的运行方式在i t 界占据了统治地位,不仅功耗和噪音都很大,而且便 携式很差,严重的制约了计算机在存储器方面高集成度的要求和发展。 所谓单芯片计算机( c o c ,c o m p u t e ro nac h i p ) 即是将传统p c 机箱里的主 板上的芯片组、c p u 、内存、显卡、声卡和网卡等最大限度的集成在单个芯片 中 1 8 - 1 9 】。本设计基于单芯片计算机,并以s d 卡存储器代替传统机械式磁性存储 器,实现真正的计算机全硅化,最终b i o s 完成f r e e d o s 操作系统的启动。s d 卡 是一种基于f l a s h 的存储器,它着重数据存储的安全【16 1 【4 4 】【4 5 1 ,而且价格低廉, 性能优异,存储容量大,是许多便携式电子产品如数码相机、手提电话,p d a 等移动便携式设备理想的外部存储介质,并且在存储市场占有极大份额,目前 在各个领域运用广泛。由于x 8 6 单芯片计算机的硬件结构由标准p c 而来,其功 能复杂,因此x 8 6 单芯片计算机的硬件电路的初始化和引导操作系统仍然需要 由b i o s 来完成。 2 3 2b i o s 软件的兼容性和可移植性 b i o s 软件的兼容性和可移植性是评价b i o s 软件的主要指标。在本实验中既 要定制的设计b i o s 软件,使其与本实验中的x 8 6 硬件电路和f r e e d o s 操作系统 都兼容,并且所设计的b i o s 程序符合s d 卡s p i 协议的要求;还要考虑所设计的 b i o s 程序的可移植性以及程序的可维护性。 基于以上考虑,本设计的b i o s 程序采用模块化的设计方法,设计了功能块 程序,功能块之间可以相互调用,传递参数和返回参数。并且针对s d 卡的s p i 协议,定制的设计了对应的中断子功能模块。 9 最终实现了实验预期目标,完备了程序的兼容性;同时本设计的b i o s 程序 在b o c h s 模拟器上也实现了启动f r e e d o s 操作系统,实现了程序在模拟器上的移 植。 2 3 3底层软件的设计方法:交互式编译、调试 b i o s 是底层软件,因此顶层和应用层的软件都会调用b i o s 。这样在使用一 些应用层的开发调试b i o s 软件时,就不可避免的修改了b i o s 的寄存器,给设计 的调试工作带来了很大程度的困难。这就需要搭建一个交互式编译平台。 不仅如此,对与b i o s 的底层测试方法也是设计b i o s 软件的一个难点。在本 实验中,建立了一套完整的开发调试平台,并且借助这一开发调试平台,建立 一套完备的底层软件测试方法。基于实验的开发平台,用科学的方法实现了对 程序运行的实时监控和对b u g 的准确定位。主要方法是:1 利用数学上的黄金分 割值,大概的确定程序错误所在;2 利用已经实现的v g a b i o s 文本显示功能来 进一步确定出错的位置和显示段地址及寄存器的值;3 使用d e 2c o n t r o lp a n e l 软件的监护传输功能读取f p g a 开发板上存储器指定地址范围的内容,进而来查 看b i o s 功能的实现与否;4 利用3 中提到的方法,对显存进行分析,进一步实 现对v g a b i o s 显示功能的边缘测试( c o r n e rt e s t ) ,查看显示文本字符的色彩 属性等。 l o 第三章试验平台的b i o s 软件编程实现方法 3 1b i o s 软件开发平台简介 在本设计中软件平台的选择与搭建花费了一定的时间,一个好的开发平台 关系到实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论