




已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入式web浏览器研究及应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着计算机技术的发展, 嵌入式系统越来越多地被应用到社会各个领域中去, 嵌入式技术也被越来越多地研究和应用,而嵌入式软件开发也逐渐崭露头角。近 十年来,i n t e r n e t 技术日 新月异,与i n t e m e t 相结 合就成了嵌入式技术发展的一个 重要方向,而嵌入式w e b 浏览器的 研究和应用在这个结合的进程中也占 有重要的 地位。 本文提出了一个完整的嵌入式w e b 浏览器的 体系结构,并给出了许多重要 模块的实现方略以 及实现中所用到的一些重要算法。 嵌入式系统作为一般计算机系统发展的产物,与一般计算机系统相比 有着许 多特殊之处,而嵌入式软件开发也由于嵌入式系统的特殊性,而与一般软件开发 不尽相同。作为嵌入式开发的理论指导,本文首先介绍嵌入式系统以及嵌入式软 件开发。 而后,笔者提出了一个完整的嵌入式w e b 浏览器的体系结构,并介绍了 各 个 组 成 部 分 的 主 要 功 能。 由 于j a v a s c r ip t 在w e b 页 面中 的 重 要 性, 笔 者 参 考了 有 关 手 册, 详 细 介 绍了 如 何 将d o m对 象 注 册到j a v a s c r ip t c 引 擎 上以 支 持 浏 览 器 对j a v a s c r ip t 语 句的 识 别, 并 就i s c 引 擎 无 法 直 接 注 册 某 些 具 有 集 合 属 性的d o m 对象,笔者提出了自己的解决方案,并在后面给出了具体算法。最后,笔者介绍 了 浏览器其它几个重要模块的具体实现, 在h t m l解析模块中, 笔者提出了两种 解决方案, 一是利用自 定义数据结构 ( 双向 链表) ,二是利用l ib x m l 2 库文件的支 持, 并对“ b x m l2 如何实现对h t m l 页面的 解析做了 详细分析; 在j a v a s c r ip t 解析、 编 译、 执 行模块中 , 笔 者给出 解析j a v a s c r i p t 语 句的 具 体算法, 并 分析了j s 引 擎 对j a v a s c r ip t 语句的 支持程度, 给出了h t m l 页 面事 件响 应的 具体 对策; 在界面 布局模块中,笔者给出了基于行布局算法的主要思想及具体实现,并对基于行布 局算法进行了改进,提出了基于行的空间块布局算法。 在总结和展望中,笔者提出了 对嵌入式we b 浏览器进行进一步研究的几个主 要方向。 关键字 嵌入式系统,嵌入式软件开发,嵌入式w e b 浏览器, d o m, j s c引擎, 注 册, h t m l 解析,l ib x m l 2 ,基于行,布局 ab s t r a c t 一一一- , , ,., ,. .巨., , ab s t r a c t wit h t h e d e v e lo p m e n t o f c o m p u t e r t e c h n o l o g y , e m b e d d e d s y s t e m i s a p p l i e d in m o r e f i e l d s in s o c ie t y a n d e m b e d d e d t e c h n o l o g y is a l s o m o r e a n d m o r e r e s e a r c h e d . a s a re s u l t , e m b e d d e d s o ft w a r e d e v e l o p m e n t a p p e a r s . i n r e c e n t l y t e n y e a r s , i n t e rn e t h as b e e n d e v e l o p e d v e ry f a s t a n d t o b e c o m b i n e d w i t h i n t e rne t b e c o m e s a n i m p o rt a n t r e s e a r c h d i r e c t i o n o f e m b e d d e d t e c h n o l o g y d e v e l o p m e n t . s o t h e r e s e a r c h o f e m b e d d e d w e b b r o w s e r b e c o m e s v e ry i m p o rt a n t . i n t h i s p a p e r , a c o m p l e t e a r c h i t e c t u r e o f e m b e d d e d w e b b r o w s e r i s p u t f o r w a r d . s o m e r e a l i z e d s t r a t e g i e s a n d i m p o rt a n t a l g o r it h m s a r e a l s o p r o p o s e d . a s a r e s u lt o f t r a d i t i o n a l c o m p u t e r s y s t e m d e v e l o p m e n t , e m b e d d e d s y s t e m h a s 宁 s o m e s p e c i a l c h a r a c t e r i s t i c s , a n d s o ft w a r e d e v e l o p m e n t in e m b e d d e d s y s t e m i s a l s o d i f f e r e n t f r o m t r a d i t i o n a l s o ft w a r e d e v e l o p m e n t . a s a t h e o r e t i c a l g u i d a n c e , t h i s p a p e r f i r s t ly i n t r o d u c e e m b e d d e d s y s t e m a n d e m b e d d e d s o ft w a r e d e v e l o p m e n t in d e t a i l . b e c a u s e j a v a s c r i p t i s v e ry w id e l y u s e d in w e b p a g e s , w e a n a l y z e h o w t o re g i s t e r d o m o b j e c t s i n t o j a v a s c r i p t c e n g i n e i n o r d e r t o s u p p o rt t h e r e c o g n i t i o n o f j a v a s c r i p t . t h e j a v a s c r ip t c e n g i n e c a n t s u p p o rt t h e d i r e c t l y r e g i s t r a t i o n o f s o m e s p e c i a l d o m o b j e c t s t h a t h a v e c o l l e c t io n a t t r i b u t e s , w e p r o p o s e d a n a l g o r it h m t o d e a l w i t h t h i s p r o b l e m . a t l as t , w e a n a ly z e t h e r e a l i z a t i o n o f s o m e e l s e i m p o r t a n t m o d u l e s a b o u t h t m l p a r s e m o d u l e , w e p r o p o s e d t w o m e t h o d s t o p a r s e h t ml f i le s . o n e i s u s i n g c u s t o m d a t a s t r u c t u r e ( b i d i re c t i o n a l l in k e d l i s t ) , t h e o t h e r i s u s in g l i b x m l 2 l ib r a ry t h a t w e a n a l y z e in d e t a i l . a b o u t j a v a s c r ip t p a r s e , c o m p i le , e x e c u t e m o d u l e , w e p ro p o s e d t h e a l g o r it h m o f p a r s i n g j a v a s c r i p t a n d a l s o a n a l y z e t h e s u p p o rt d e gr e e t o j a v a s c r ip t o f j s c e n g i n e . w e a l s o p r o p o s e d t h e w a y t o d e a l w it h e v e n t s r e s p o n s e o f h t m l p a g e s . a b o u t l a y o u t m o d u l e , w e p r o p o s e t h e l a y o u t a l g o r it h m b a s e d o n l i n e a n d im p r o v e t h i s a l g o r it h m w h ic h n a m e d s p a c e b l o c k la y o u t a l g o r it h m b a s e d o n l i n e . i n t h e l a s t s e c t io n , w e m a k e a c o n c lu s i o n a n d d i s c u s s t h e p o s s i b l e f u t u r e r e s e a r c h . k e y w o r d s e m b e d d e d s y s t e m , e m b e d d e d s o ft w a r e d e v e l o p m e n t , e m b e d d e d d o m, j s c e n g i n e , r e g i s t r a t i o n , h t ml p a r s e , li b x m l 2 , b a s e d o n l in e w e b b row s e r , a y o u t 第一章 引言 第一章 引言 1 . 1嵌入式系统的兴起 随 着信息 技术的 发 展和数 字 化产品的 普 及, i n t e rn e t 得到了 广 泛 深入的 应用; 从消费电器到工业设备,从民用产品到军用器材,嵌入式系统被应用到网络、手 持通信设备、国防军事、消费电子和自 动化控制等各个领域。嵌入式系统的广泛 应用前景和发展潜力使其成为2 1 世纪的应用热点之一, 嵌入式技米也成为当今炙 手可热的技术之一。 所谓嵌 入式技术 1 2 1 , 通俗一点的 定 义就是 将计 算 机技术、自 动 控制技术、 通讯技术等多项技术综合起来与传统制造业相结合的技术,是针对某一个传统的 机电 产品或行业,开发出适合该机电 产品或行业的智能化产品,实现产品故障诊 断、自 动报瞥、本地监控或远程监控, 达到管理的网络化、 数字化、信息化和现 代化,并与国际技术接轨。 中国 计算 机学 会( c h in a c o m p u t e r f e d e r a t i o n ) 于1 9 9 5 年6 月 举行了“ 嵌 入 式系 统及产业化在中国的发展前景” 研讨会,专家们探讨了嵌入式系统在当今计算机 工 业中的 地 位及其网 络化问 题, 认为下 一 代网 络设备中 嵌入式设备将大大 增 加, 7 0 % 是嵌入式设备。 嵌入式系统工业是专用计算机工业, 其目 的就是要把一 切变 得更简单、更方便、 更普遍、更适用:通用计算机的发展变为功能电 脑, 普遍进 入社会, 嵌入式计算机发展的目 标是专用电 脑, 实现“ 普遍化计算” , 因此可以 称 嵌入式智能芯片是构成未来世界的“ 数字基因” 。 沈绪榜院士预言, “ 未来十年将 会产生针头大小、 具有超过1 亿次运算能力的嵌入式智能芯片” , 这将为我们提供 无限的创造空间。 随着市场对超微型嵌入式应用技术的不断增长,以及半导体技术和系统设计 方法的进步,在一个硅片上实现一个 过去以为)复杂的系统的时代已经来临, 这 种 芯片 称 之为“ 片 上系统” ( s y s t e m o n a c h ip ) , 简 称为s o c s o c 的出 现将 改变并深刻地影响传统的集成电路产业的现状,使设计和功能定义以 及决策者远 见变得更为重要,这一点也 证实了“ 在后工业时代的经济中,发明创造的价值超 过批量生产,所有的 垂直的东西突 然变成水平”的 经济学现象。 美国 市场研究公司i d c在最近的 一 份 研究 报告中 预测, 到2 0 0 2 年, 网 络 家 电 设备 ( 主要是由 嵌 入式系统构由的 销量将与 所有 p c产品销量总 和大体 相当 。 d a t a q u e s t 预计, 到2 0 0 3 年将会有大 约4 亿 件i n t e r n e t 家电 设备 投入 使用。 到2 0 1 0 年, 所有家庭p c都将由纂于嵌入式系统的设备来取代。 其中, 大多数家庭办公室 第一章 引言 将会使用一 种或多种独立的i n t e rn e t 家用电 器, 这些i n t e rn e t 产品 有些是面向 某些 特殊用途,有的则是把多种技术 ( 例如电 话、 传真、i n t e rn e t 和电 视) 集成在同一 设备中。 今天嵌入式系统带来的工业年产值己 超过了i 万亿美元,1 9 9 7 年来自 美国 嵌 入式系统 会议 ( e m b e d d e d s y s t e m c o n f e r e n c e ) 的 报告指出 , 未来5 年仅基于嵌入 式计算机系统的全数字电视产品, 就将在美国产生一个每年1 5 0 0 亿美元的新市场。 美国汽车大王福特公司的高级经理也曾宣称, “ 福特出售的 计算能力已 超过了 i b m ,可以 想见嵌入式计算机工业的规模和广度。在美国、日 本等发达国家, 嵌入式系统己经应用到传统工业的各个方面, 从智能化电 机、智能化水泵,到智 能化汽车,嵌入式系统已 成为现代工业不可缺少的一个重要部分。 1 . 2嵌入式系统与i n t e r n e t 的结合 i n t e r n e t 带来了 一个新时 代。 5 1 回顾 i n t e rn e t 的发展和应用历史,预测i n t e rn e t 的明天对 i t企业的战略设计 的意义重大。 第一阶段:1 9 8 0 年1 9 9 0 年i n t e rn e t 发展的萌芽阶段。 解决异种计算机的 联网和信息交换, 采用t c p / i p 协议交换文件和信息,主要解决专业领域如银行、 军用系统采用不同操作系统的大、中、小型计算机的联网问 题,这时并不称之为 i n t e rn e t , t c p / i p 网络仅是少数计算机专家的概念, 这是i n t e rn e t 发展的萌芽阶段。 第二阶段: 1 9 9 0 年一 一 2 0 0 0 年, p c作为客户机, i n t e rn e t 席卷全球。 在t c p / i p 协议网络之上发明的e m a i l 和w w w普遍应用,i n t e rn e t 国际互联网被大众接受, 这时一个重要的 条件是p c普及的非常广泛, 即 形成了c l i e n t/ s e r v e r 体系结构( 客 户机朋 民 务器) ,进而发展为b r o w s e r / s e r v e r 结构 ( 浏览器服 务器) , 这时的客户机 是已 广泛普及的p c ,而服务器是相对复杂的, 价格昂贵的超级计算机,即我们所 谓的“ 胖服务器” 。 i n t e rn e t 的发展使i t界的老牌公司也没有料想到会产生路由器 的巨 大需求,c i s c o 的成功在于此。另一方面, w w w 的应用又造就了一大批以 y a h o o为代表的.c o rn公司,以 及电子商务公司,这时候所有的人不得不承认 i n t e rn e t 像场革命改 变了 世界。 第三阶段:2 0 0 0 年一一2 0 1 0 年嵌入式i n t e rn e t 时代。 将给地球披上 “ 电子皮 肤” ,嵌入式片上系统成为瘦服务器。 预测未来i n t e rn e t 将向 何处去,这是全世界 科学家关心的问题, 包括美国贝尔实验室总裁a r u n n e t r a v a l i 的一批科学家对此做 出了预测: 在这阶段“ 将会产生比p c时代多成百上千倍的瘦服务器和超级嵌入式 6 第一章 引言 瘦服务器,这些瘦服务器将与我们这个世界你能想到的各种物理信息、生物信息 相联接, 通过i n t e r n e t 网自 动的、 实时的、 方便的、 简单的, 提供给需要这些信息 的对象,o 由此可见,如何设计和制造嵌入式瘦服务器、嵌入式网关、嵌入式因特网路 由 器已 等硬 件设备以 及架构 在其之上的 嵌入 式w e b 服务 器 $ l嵌 入式w e b 浏览 器成为嵌入式i n t e r n e t 时代的关键和核心技术。 而目 前虽然出现了一些嵌入式w e b 浏览器,但是由于嵌入式系统具有针对性十分强的 特点, 对于不同的嵌入式系统 来说,相同的w e b 浏览器是不可能满足其全部要求的,而目 前并没有比 较详细的 w e b 浏览器的体系结构以及实施方案。 因此本文提出了一个完整的嵌入式w e b 浏 览器的体系结构,并就该体系结构的几个重要模块的实现给出了具体方案。 本文结构安排如下:第二章,详细介绍了嵌入式系统及嵌入式软件开发,给 出了嵌入式系统的定义、组成、 特定以及嵌入式系统最常用于的实时系统的定义、 特点及分类,并介绍了实时操作系统的概念、分类、发展、组成、特点、应用及 常见的实时操作系统,还介绍了嵌入式实时软件开发的特点,开发流程以及所需 要的 软、 硬件资源。 第三章,提出了一个完整的嵌入式w e b 浏览器的体系结构, 并就其各个模块做出了详细的 介绍,以 期望读者能 对嵌入式w e b 浏览器的开发有 一个全局上的认识。 第四章, 就嵌入式w e b 浏览器能够识别w e b 页面的最主要的 方 法,即 将d o m对象注 册到j s c引 擎上的 策略, 参 考7 s a p i c e n g i n e a p i r e f e r e n c e ,给出了具体注册的过程,并就一些复杂 d o m 对象的注册提出了自 己 的解决方案。第五章,对嵌入式 w e b 浏览器开发中的其它主要模块进行了系统的 分析, 并给出了具体实现方案以 及一些算法,以期望能够让读者对w e b 浏览器开 发有一个清晰的认识。最后,第六章对全文进行了总结,并提出了一些期待与展 望。 第二章 嵌入式系统及嵌入式软件开发 第二章 嵌入式系统及嵌入式软件开发 2 . 1嵌入式系统介绍 2 . 1 . 1嵌入式系统的定义 嵌 入 式 系 统( e m b e d d e d s y s t e m ) 3 4 实 际 上 就 是“ 嵌 入 式 计 算 机 系 统” 的 简 称, 一般指非p c系统, 有计算机功能但又不称之为计算机的设备或器材。 它是以 应用为中心和以计算机为基础的,软硬件可裁减的,能满足应用系统对功能、可 靠性、成本、体积、功耗等综合性指标严格要求的专用计算机系统.简单地说, 嵌入 式系统 集系统的应用软件与硬件于一体, 类似于p c中b i o s 的工作方式, 具 有软件代码小、高度自 动化、响应速度快等特点, 特别适合于要求实时和多任务 的体系。 通常,计算机连同一些常规的外设是作为独立的系统而存在的,并非为某一 方面的专门 应用而存在的。 例如一台p c机就是一个计算机系统, 整个系统的存在 就是为而你们提供一台可编程、会计算、能处理数据的机器。你可以用它做许多 用处,如科学计算的工具, 企业管理的工具等。所以,人们将这些计算机系统称 为 “ 通用”计算机系统, 但是有些系统却不是这样的。例如,医用的 c t扫描仪 也是一个系统,这里面也有处理器,但是这种处理器是作为某个专用系统中的一 个部件而存在的,其本身的存在并非目 的而只是手段。这种 “ 嵌入”到更大的、 更专业的系统中的计算机系统, 就是我们通常所说的“ 嵌入式计算机系统” , 也叫 “ 嵌入式系统” 。 不过从字面上讲, 后者并前者包含的内容更多, 因为系统中通常 还包含一些机电、光电、热点或者电化的执行部件, 但是一般我们并不做区分。 所谓将计算机 “ 嵌入”到系统中,一般并不是指将一台计算机原封不动地安 装到目 标系统中去,也不是简单地将机壳拆掉并将核心部件安装到系统中去, 而 是指为目 标系统构建起合适的计算机系统, 再把它有机的植入,甚至融入到目 标 系统中去。 实际上, 从更广义的角度上来谈“ 嵌入式” , 计算机是否属于嵌入式, 其实也 没有一条明确的分界线,因为有些计算机虽然是通用的计算机,但是却是作为一 些特殊的用途而嵌入到某些特定的 系统中去, 如当 初a t 另 一方面是为了减少发热量,因为嵌入式系统中通常没有风扇等排热手段。 ( 9 ) 支持热替换 ( 热插拔) :一些嵌入式系统都需要长期连续的运行,如果 某个部件损坏,是不允许将系统关闭断电然后加以替换的,而是在系统仍然加点 继续运行的条件下加以替换。 第二章 嵌入式系统及嵌入式软件开发 2 . 2嵌入式软件开发介绍 2 . 1 . 1嵌入式软件开发的特点 与 传统的 软 件开发 相比 较, 嵌 入式实时软 件 2 2 2 3 】 的开 发有许多 共同 点, 它 继承了 许多传统软件开发的开发习惯。但由于嵌入式软件运行的特定环境,它只 需要完成一些特定的预期的功能。 而出于应用系统的考虑, 嵌入式系统的的c p u . 存储器等资源都应用得恰到好处, 这点不像通用的p c , 它给用户预留了 许多资源。 由于这些差异, 所以嵌入式软件开发也有着它自 身的一些特点 、需要集成软硬件开发环境。 嵌入式应用软件开发需要使用交叉开发环境。 交叉开发环境是指实现、 编译、 链接和调试应用程序代码的环境。与运行运行应用程序的环境不同,它发散在有 通信连接的宿主机和目 标机环境之中。 交叉开发硬件环境包括宿主机和目 标机,如下图所示。 宿 主 机 目 标 机 交 叉 硬 件 开 发 环 境 宿主机 ( h o s t ) 是一台通用计算机, 可以是p c或者工作站。 它通过串口 或网 络连接与目 标机通信。宿主机的软硬件资源比较丰富,不单包括功能强大的操作 系统, 如win d o w s 和l i n u x , 还有各种各样的开发工具, 如win d r i v e r 的t o rn a d o 集成开发环境、 微软的v i s u a l c + + 嵌入式t o o l k it 开发环境以 及g n u的嵌入式开 发工具套件等。这些辅助开发工具能大大提高软件开发的效率与进度。 目 标机 ( t a r g e t ) 这个术语通常在嵌入式 软件开发期间使用, 用来区别与 嵌入 式系统通信的宿主机。目 标机可以是嵌入式应用软件的实际运行环境,也可以是 能代替实际环境的仿真系统。目 标机一般体积较小、集成度高且软硬件资源配置 第二章 嵌入式系统及嵌入式软件开发 都恰到好处。目 标机的外围设备一般丰富多样,输入设备有键盘、鼠标、串口、 红外口、触摸屏等: 输出 设备也有显示器、串口、液晶屏等。目 标机的硬件资源 有限,故在目 标机上运行的软件可以裁剪,也可以配置。目 标机应用软件需要绑 定操作系统一起运行。随着宿主机配置的增强,也可以 在宿主机上方针目 标机, 从而缩短开发的费用和开发周期。 支持交叉式开发需要交叉软件开发工具,它包括交叉编译器、交叉调试器和 一些仿真软件等。 交叉编译器允许应用程序开发者在宿主机上生成能在目 标机上运行的代码。 交叉调试器和软仿真软件用于完成宿主机与目 标机应用程序代码的调试。 2 、引入了新的任务设计方法 嵌入式应用系统以任务为基本的执行单元。在系统设计阶段,用多个并发的 任务代替通用软件的多个模块,并定义了 应用软件间的接口.嵌入式系统的设计 通常采用d a r t s 设计方法进行任务的设计。 d a r t s 给出了系统 任务划分的 方法 和定义任务间接口的机制。 3 、开发完成后需要进行固化和固化测试 通 用软件的 开发在测试 1 9 完成后就可以 直 接投入 运行。 其目 标环境一 般是 p c或者服务器, 在总体结构上与开发环境差别不大。 而嵌入式应用程序开发环境 可以是p c机和工作站, 但运行的目 标环境却千差万别, 可以是个人用户的p d a , 也可以 是许多电 器产品,也可以是医疗器材或者军用的一起设备. 而且应用软件 在目 标环境下必须存储在非易失性存储器中,保证用户用完关机后确保下次的使 用。所以 应用软件在开发完成后, 应生成固化版本,烧写到目 标环境的 r o m 中 运行。 由 于 开发调 试用的 应 用软 件 2 1 运行 环境包 括监视 器等调 试附 加 程序, 而固 化 的二进制可执行代码不包含这些额外的代码,所以为保证固化程序的安全及正确 的运行,在固化完成后,要进行运行测试。 4 、软件要求更高,开发难度加大 绝大多数的嵌入式应用有实时性能的要求, 特别是在硬实时系统中, 实时性 能至关重要.这些实时性能在开发的应用软件中要求得到保证,要求设计者在软 件的需要分析充分考虑系统的实时性能。这些实时性能的体现一部分来源于实时 操作系统的实时性能,另一部分依赖于应用软件的本身的设计和代码的质量。 第二章 嵌入式系统及嵌入式软件开发 同时,嵌入式应用软件对稳定性、可靠性、抗千扰性等性能的要求都比通用 软件的要求更加严格和苛刻。 2 . 1 . 2嵌入式软件开发的开发流程 嵌入式应用软件的开发必须将硬件、软件、人力资源等元素集成起来,并进 行适当的组合以实现目 标应用对功能和性能的需求。 在嵌入式软件的开放过程中, 实时性能常常与功能一 样重要。这就使嵌入式软件的开发关注的方面更广泛,要 求的精度更高。 嵌入式应用软件的开发流程与通用软件的开发流程大同小异,但开发所使用 的设计方法有一定的差异。整个开发流程可分为需求分析阶段、设计阶段、生成 代码阶段和固化阶段。开发的每个阶段都体现着嵌入式开发的特点。 由 于嵌入式软件开发与一般软件开发前面几个阶段所完成的工作大致相同, 所以 在这里就只重点介绍与一般软件开发的不同之处:生成代码阶段的交叉编译 和连接以及最后一个阶段:固化阶段的工作了。 ( 1 ) 、生成代码阶段 生成代码阶段需要完成的工作包括编码、交叉编译和链接、交叉调试和测试 等。编码以及测试工作由于和一般软件开发类同,在这里就不叙述了。 嵌入式软件开发编码完成后,要进行编译和链接以 生成可执行代码。但是一 开发过程所使用的芯片与目 标环境的处理芯片一般不同, 这就要求开发机上的编 译器能够支持交叉编译。交叉编译器就是能在主机上运行并且产生目 标机的目 标 代码的编译器。 嵌入式的 集成开发环境一般都支持交叉编译、 链接。 如f r e e b s d , l i n u x 等, 你只需要将目 标机所使用的平台地类库作为交叉编译的类库,你就可以生成能够 在目 标机运行的代码了。 编译完成后就进入了调试阶段。调试是开发过程中必不可少的 环节,因为一 次成功的代码几乎是可遇而不可求的。嵌入式软件开发的交叉调试不同于一般软 件的调试方法。 在一般软件开发中,调试器一般与被调试的程序运行在同一台机器上,作为 操作系统上运行的两个进程,通过操作系统提供的调试接口 控制被调试的过程。 嵌入式软件开发则需要交叉开发环境,调试采用的是包含目 标机和宿主机的 第二章 嵌入式系统及嵌入式软件开发 交叉调试方法。调试器还是运行在宿主机的通用操作系统上,但是被调试的程序 则运行在基于特定硬件平台的嵌入式操作系统中。 调试器与被调试程序间可以 进行通信,调试器可以 控制、访问 被调试程序, 读取被调试程序的当前状态和改变被调试程序的运行状态。 交 叉调 试 ( c r o s s d e b u g ) 又叫 远 程调 试, 是 一 种允许 调试 器以 某 种方式 控制 目 标机上被调试程序的运行方式,并具有通过调试器查看和修改目 标机上内 存单 元、寄存器以及被调试程序中变量的值等各种调试功能的调试方式。 交叉调试主要有以下特点: a 、调试器和被调试的程序运行在不同的机器上。调试器运行在p c或者工作 站上,而被调试的程序运行在各式的专业调试板上。 b 、 调 试 器通过某种 通信方 式与目 标 机建 立联 系, 如串口 、 并口 、 网 络、 7 t a g 或者专用的通信方式。 c 、 一般, 在目 标机上具有某种调试代理, 这种代理能够与调试器 起配合完 成对目 标机上运行的程序的调试。这种代理可以是某种能支持调试的硬件,也可 以是某种软件。 d 、目 标机可以是一种仿真机,而不需要是真实的机器,调试的方式有多重, 应当根据实际的开发要求和实际的条件进行选择. ( 2 ) 、固化阶段 嵌入式软件开发完成以后,大多要在目 标环境的非易失性的存储单元 ( 如 p r o m f l a s h )中运行。程序需要写 入到r o m中固 化, 保证每次运行后下一 次运行无误,所以嵌入式开发与普通软件开发相比增加了软件的固化阶段。 嵌入式应用软件调试完成以 后,编译器需要对源代码重新编译一次,以产生 固 化到目 标环境的可执行代码, 再烧写到目 标环境的r o m中。 固化的可执行代码与用于调试的可执行代码有一些不同。固化用的 代码在目 标文件中把调试用的信息都屏蔽掉了。 在固化时r o m m o n i t o r 不执行硬件的启动 和初始化,这部分工作必须由固化的程序自己阿斡年成, 所以 启动模块必须包含 在固化代码中。启动棋块和固化代码都定位到目 标环境的r o m 中,有别于调试 过程中都在目 标机的r a m中运行。 启动模块包含对芯片引脚、系统外围控制寄存器、内 存管理单位的初始化以 及把r o m中一些运行数据拷贝运行空间中去的工作。 第二章 嵌入式系统及嵌入式软件开发 固化的可执行代码生成,并烧写到目 标环境中后,还要进行运行测试,以 保 证程序的正确无误。 固化测试完成后, 整个嵌入式应用软件的开发就基本完成了, 剩下的就是对产品的维护和更新了。 嵌入式开发中需要用到许多技术,因此笔者在这里推荐一些论坛 2 4 2 5 2 6 2 7 2 8 1 , 在这些论坛中可以了 解到嵌入式系统的 最新技术, 如果在实 际开发中 遇到什么问题,也可以在这些论坛上进行询问,相信你一定能找到满意 的 回 答。 另 外, 笔者也推 荐 两个网 站 6 7 , 这两个网 站主要是介绍 嵌 入式技 术 讨论大会召开的情况,如果想了 解嵌入式发展的 近况,可以到这两个网站上查看 相关信息。 第三章 一个完整的嵌入式we b 浏览器体系结构 第三章 一个完整的嵌入式we b 浏览器体系 结构 目 前嵌入式 w e b浏览器虽然己经出 现了不少,如 a c c e s s n e t f r o n t , l in e o e m b e d i x , 微软p a c k e t i e 等, 国内 也 有h o p e n b r o w s e r , 深 a il茁壮ip a n e t 等, 但 是由于嵌入式系统具有灵活多变性, 这些嵌入式w e b 浏览器也无法满足某些嵌入 式系统的具体要求, 而嵌入式w e b 浏览器必然会越来越多地应用到嵌入式系统中 去,因 此开发出 适用于自 身特定的嵌入式系统的w e b 浏览器就成了许多公司迫切 的需求。 因此本文从嵌入式 w e b浏览器的开发着手,提出了一个通用的嵌入式 w e b 浏览器体系结构, 该体系结构主要分三大部分,i , 控制部分: 根据来自 显示部分 的 用户接口模块的请求,负责从w e b 服务器或者本地取得数据或者发出数据,并 将取得数据传输给模块部分。 2 、 模块部分:主要是将由控制部分传来的数据进行 一定的处理, 以得到显示部分所需要的数据。 3 、 显示部分: 首先提供界面给用户, 并根据用户的要求 ( 比方说要求显示某个网站的一个w e b 页面) 而对控制部分发 出 请求,并根据模块部分处理后的数据,在嵌入式系统的显示屏上显示出 请求的 w e b 页面的布局情况, 并依照w e b 页面上的情况对一些事件进行响应。 如下图所 小 : 第三章 一个完整的嵌入式we b 浏览器体系结构 下面我们就上图的三大部分别加以详细说明: 3 . 1控制部分 这个部分的主要功能是根据显示部分传来的用户的 请求, 基于t c p / i p 协议与 i n t e m e t 上的w e b 服务器建立连接, 然后通过h t t p / h t t p s 协议从w e b 服务器取 得数据,以及向它传输数据 ( 或者对本地文件进行读写操作) ,并将取得的数据以 字符串形式或者文件形式传输给模块部分进行相关处理,并将处理后的结果返回 给显示部分而显示在嵌入式系统的显示屏上。 由 于现在i n t e rn e t 己 经形成了一定的规范, 所以 在这个部分里, 我们一 般是根 据 r f c 2 5 1 8 标准与w e b d a v 服务器连接,其传输协议采用仍是 h t t p ( h t t p s ) 协议。 3 . 2模块部分 这个部分的主要功能是对控制部分所取得的数据进行一些处理,以方便显示 部分使用这部分数据。由于控制部分所获得数据,只是一个页面的所有的信息, 以字符流形式保存。对于显示部分来说,这部分数据是不可能直接使用的,所以 我们需要一些模块对这些数据进行预处理,以获得在显示部分所需要的数据。 这 个 部 分 主 要由 五 个 模 块构 成 : h t m l 解 析 模 块、 j a v a s c r i p t 解 析 模 块、 图 片 处理模块、 文件处理模块、 j s 到c映射模块。 下面分别叙述几个模块的主要功能。 3 . 2 . 1 h t ml解析模块 这个模块的主要是将获得的w e b 页面的信息 字符流) 解析成一个我们方便 使用的数据结构,并提供一些对这个数据结构操作的方法。 我 们都知道, h t m l 文件是 遵循一 定的 规范标 准的, 它是由 许多t a g( 节点) 组成的, 如 , , , , , 等, 因 此我 们 用一种什么样的结构来将这些节点组织起来就是这个模块最主要的功能。 我们可以自 定义一个数据结构,如双向列表,来保存这些节点信息。当 然我 们也可以 使用一些可以 解析h t m l文件的库,如l ib x m l 2 , 它提供了 将w e b 页面 解析成一个d o m树的方法, 同时它也提供了大量对这个d o m树操作的方法, 这 也大大方便了我们的操作,也能减轻整个开发的工作量。这在后面,我们将会详 第三章 一个完整的嵌入式we b 浏览器体系结构 细论述到如何使用双向列表以及使用l ib x m l 2 库来完成对h t ml文件的解析。 一般来说, 如果使用自 定义的数据结构, 这个模块应该包括处理h t m l 文件的 读入处理、 声明一些h t m l 相关的结构如页面元素类型映射、 h t m l 节点处理、 h t m l 节点 属性处理、 h t m l 节点链表处理等处理模块,而使用 l ib x m l 2库的话, 这些模 块 基 本 上 都 可以 由l ib x m l2 提 供 的a p i ( a p p l ic a t io n p ro g r a m m in g i n t e r f a c e ) 来 实 现, 3 .2 .2 j a v a s c r i p t 解析模块 这 个 模块的 主要功能是 根据h t m l 解 析模块 所获得 的 数据结 构, 找出 与 之间 的内 容 ( 字符串) , 并 对这 个字符串 中的函 数 进行分离, 将函 数 名 和函 数体存储在一个 特定的 数据结构里 ( 可以 采用动态结构数组或者链表结构) , 以 方面后面j a v a s c r i p t 编译和执行模块的工作。 j a v a s c r ip t语句主要是由两部分语句组成,一部分是形如 f u n c t i o n f u n c t i o n n a m e 卜 的函 数部分, 另 一部分 是除 掉函 数部 分之外的 语句, 也 就是 可 执行部分。 将这两部分以 及每个函数分离对处理h t ml页面上的事件响应是很有 帮 助的, 因为h t m l 页面中的 事 件一 般都 是 对应于j a v a s c r i p t 语句中 的 某 一 个函 数。 如f o r m元素的o n l o a d 事 件 ( 例如 ) , 又 如b u tt o n 元 素的。 n c l i c k 事 件, 而 这些事 件所响应的内 容一 般都是以j a v a s c r ip t 函 数的 形式 保 存 在 与 节点 之间 . 所以 我 们需 要 一 个 独 立 的 模块 来 将j a v a s c r i p t 解析存储在一个特定的数据结构里。 3 .2 .3 j a v a s c r i p t 对 象 注 册模块 这个模块的主要功能是将 d o m 对象注册到 j a v a s c r i p t c引擎上。由 于 j a v a s c r ip t 中 可能 会 使用 到 大 量 的d o m ( d o c u m e n t o b j e c t m o d u l e ) 对 象, 而 对 于 j a v a s c r ip t c引 擎 来说 , 这 些d o m对 象 都 是 不能 识 别 的 , 所以 需 要 将 可能 用 到的 d o m对象当 作自 定 义对象 注册到j a v a s c r ip t c引 擎上( 后面 会详细介绍j a v a s c r ip t c引擎以 及具体如何实现注册) 。 早先h t m l 规范出 来的时 候, 它并 不支 持j a v a s c r i p t , 只能 实 现简单的 静 态 的 页 面, 但是后 来s u n 公 司 在它的h o t j a v a 浏览 器中 展 现了 将j a v a s c r ip t 嵌入到 h t m l 中 所带 来的 强 大功能, 逐渐地大部 分w e b 页 面中 都 有j a v a s c r ip t 语 句了 , 而支 持 7 a v a s c r ip t i n t e m e t上的 w e b 也成了 w 比 浏览器必不可少的功能。因而,为了更好地读取 页面以及更好地与嵌入式系统本身进行交互 ( 通过扩充 1 9 第三章 一个完整的嵌入式w e b 浏览器体系结构 j a v a s c r ip t , 提供能 对嵌入式系统许多 配置 进行 设置的j a v a s c r i p t 语句) , 在嵌 入式 w e b 浏览器中提供对j a v a s c r i p t 的支持也成了一个十分重要的功能了。 根 据网 络上的 一 般应用以j a v a s c r i p t 为 主, 其 编 译器是开 放 源代码的, 全 世界 通用, 包括i e , m o z i l ia , n e t s c a p e 等浏览器都使用相同的j a v a s c r i p t 的编译器。 而另 外如 微软的v b s c r ip t/ j s c r i p t 为 其本身的 标 准, 所以 对于 嵌 入式w e b 浏览 器上 的s c r i p t 支 持 推 荐 使 用j a v a s c r ip t . 前面所 提到的j a v a s c r i p t 引 擎在一 些著 名的 软 件中 都有使 用, 如d i a b lo i i , i p l a n e t w e b s e r v e r s 等都有使用。 j a v a s c r i p t 在浏览 器里主要是 用于 操纵 界面元素和与 浏览器内 部 命令进行结 合, 所以b ro w s e r 如m o z l l i a 和i e 对于j a v a s c r ip t 的 不同 支 持效果不单 是j a v a s c r i p t 编译器的功劳,也是浏览器程序员的功劳。 3 . 2 .3图片处理模块 这个模块的主要功能是根据嵌入式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园食品安全知识培训课件
- 北山公园卫生知识培训课件
- 2026届湖北省宜昌市二中化学高二第一学期期末达标检测模拟试题含答案
- 大肠心理测试题及答案
- 光纤光学试题及答案
- 江苏海事面试题及答案
- 校园反恐安全知识培训课件
- 位移法考试题及答案
- 产科试题及答案
- 校园保安员安全知识培训课件
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 城市道路清扫保洁协议
- 2025年医学检验在编考试题库
- 2025年十八项医疗核心制度试题及答案
- 特色食品卖场建设方案(3篇)
- 工厂变更管理办法
- 2025年四川省高考化学试卷真题
- 子宫癌肉瘤护理查房
- 乡村产业融合发展路径与振兴策略研究
- 物料预警管理办法
评论
0/150
提交评论