VxWorks体系下PowerPC860处理器串行总线设计

发布者:qinghong最新更新时间:2007-01-04 来源: 电子设计应用关键字:PDA  嵌入式  图形 手机看文章 扫描二维码
随时随地手机看文章

引言

  目前,嵌入式浏览器已经逐渐成为高端手机和PDA的标准配置。Konqueror/embedded作为嵌入式Linux操作系统的首选浏览器得到了广泛使用。但是由于该浏览器是自由软件,因此向具体嵌入式平台移植时存在一定的难度。本文主要介绍了Konqueror/embedded 向ARM-Linux平台上的整个移植和汉化过程,以便工程师参考和使用。

Konqueror/embedded的结构

  Konqueror/embedded 是由底层网络连接,图形化用户界面和处理HTML绘制的引擎KHTML构成的。底层的通信协议实现是基于KIO/slave机制来实现的;GUI界面采用 Kparts组建技术和Qt的基本构件;而作为Konqueror/embedded的核心,KHTML则运用了文档对象模型(DOM)所提供的API接口,并在DOM树上挂接javascript引擎,CSS解析器以及渲染引擎。Konqueror/embedded的层次结构如图1所示。


图1 Konqueror/embedded层次结构

Kparts及Qt构件实现GUI

  为了方便地实现将现有应用作为一个控件插入到另外一个应用中去,采用了part对象负责管理整个应用和窗口。对于每个窗口又采取了类似 微软 MFC 中的 Doc-View 结构。因此在将应用嵌入到另外一个应用中的时候,只需要获得part中的接口和数据即可。对窗口的一切操作的响应由被嵌入应用的 part 对象来完成,而类 Doc-View 结构只负责显示和保存数据即可。

  由于Konqueror/embedded是基于图形库Qt/E,因此也遵循了signal、slot消息机制,Konqueror/embedded作为Qt/E的一个标准应用程序进行输入/输出及界面消息响应。

执行DOM 模块

  DOM 模块对经过解析的标记进行语法检查,并把属性看作节点,按照标记的语义包含关系以及先后顺序组织成DOM树。它给HTML 文档定义了一个与平台无关的程序接口,使用该接口可以控制文档的内容、接口和样式。

  在执行DOM模块的过程中,浏览器将所有从语法语义解析模块中获得的标记和属性,按照一定的层次结构组织成DOM 树。完成DOM 树的构筑后,DOM 模块会同时把标记和属性以对象的形式传给绑定模块和脚本引擎模块。

执行I/O模块

  浏览器加载有关的I/O文件,对HTTP等协议进行解析。语法语义解析模块的解析功能分为两部分:对接收到的字节流进行分词,解析为关键字;调用解析器检验关键字是否合法,若是合法的关键字,则按照规则插入到DOM 树中。

  HTML 的标记和属性统称为HTML的关键字。基本上所有HTML 4. 0 规范的标记都在此功能模块中获得支持。从I / O 模块中接收字节流并进行分词,输出标记;再对标记进行判断,如果是HTML 规范中合法的标记,则把标记看作一个节点,并组织成语法树。对属性标记的解析首先在标记处理类中执行,如果解析不成功,则交由基类的属性解析器进行解析。


图2 编译配置

Konqueror/embedded的移植

交叉编译工具的安装

  在本文中,运用的交叉编译工具是专门为ARM处理器设计的ARM-CrossToolchain。2.95.3版本的交叉编译工具只能解压到/usr/local/arm/2.95.3目录下,否则在Qt/E编译时会出错。

  为了在任何目录下都能使用工具链,必须要对路径进行设置。用VI编辑器打开/etc/profile文件并添加下述路径:
PATH=/usr/local/arm/2.95.3/bin:$PATH
Qt/E的编译
Qt 是一个跨平台的 C++ 图形用户界面库,目前包括Qt/X11(基于 Framebuffer)和Qt/E(Qt Embedded)。Konqueror/embedded就是基于Qt/E图形用户界面库的,因此在编译Konqueror/embedded之前必须先编译Qt/E。
编译Qt/X11就是为编译Qt/E提供uic(用户接口编译器),uic用来把.ui文件转成.h和.cpp文件。
将Qt/X11 编译完毕而生成的uic拷贝到Qt/E的bin目录下面。在编译Qt/E之前,先要将Qtopia的一个配置文件拷贝到Qt/E中,表示Qt/E的配置是按照Qtopia要求的,即:cp Qtopia-free-1.7.0/src/Qt/qconfig-qpe.h Qt-embedded-2.3.7/src/tools/
之后就可以设置环境变量,编译Qt/E了。编译Qt/E完成后,在Qt/E的lib目录下会自动生成libQte.so.2.3.7库文件。


图3 文件的原路径和目标板路径

图形界面Qtopia的编译

  Qtopia 是基于Qt/E的图形界面应用程序集,通过Qtopia真正地将图形界面展现在用户的眼前。而Konqueror/embedded在一般情况下是在 Qtopia环境下运行的,所以要用到Qtopia库。也有少数情况不会用到,即系统启动的时候只运行Konqueror/embedded。那么只要在编译Konqueror/embedded的时候配置稍作修改即可,本文只介绍前者。

  在编译Qt/E的时候已经将Qtopia的配置传递给了Qt/E,因此编译Qtopia时就非常容易了,如下所示:
cd Qtopia-free-1.7.0/src
./configure -xplatform linux-arm-g++
make

  这样,在bin目录下会生成一组应用程序集,在lib目录下产生了一系列的Qtopia库,给Konqueror/embedded的编译做准备。

Konqueror/ embedded的编译和安装
Konqueror/ embedded的编译

  在编译Konqueror/embedded之前,必须将Qt/E和Qtopia的路径指定给编译器。这样编译器才能找到相应的库,从而为Konqueror/embedded提供相应的库文件。
先设置一些必要的环境变量,然后再按照图2配置和编译Konqueror/embedded。在编译配置时,这些配置选项都是有各自含义的。有些配置选项如果搞错,编译就无法通过,甚至有时候连配置都不能完成。比如Qt/E路径指定不对就会在配置时出错,这些都需要在实际的移植过程中才能体验到。

Konqueror/embedded的安装

  在Konqueror/embedded 编译完成之后,目录下会生成相应的可执行文件。因此Konqueror/embedded的安装主要是指将可执行文件和一些其他的配置文件拷贝到嵌入式系统的文件系统中去。一般来说,Konqueror/embedded运行需要5个文件,图3描绘了这5个文件的原来所在路径和安装到目标板的路径,这些都要手动去拷贝。
在目标板上运行Konqueror/embedded之前,必须指定几个环境变量,否则Konqueror/embedded会因为找不到库文件而终止运行。预先设置好环境变量,再运行Konqueror/embedded。

  至此,Konqueror/embedded已经安装完毕。但是Konqueror/embedded缺省情况下是不支持中文网页的,而且界面是英文的。某些情况下为了满足特定的需要,其汉化也是非常必要的。

Konqueror/embedded的汉化

  Konqueror/embedded 的汉化可分为两个部分: 一个是Konqueror/embedded本身控制界面的汉化;另一个是Konqueror/embedded对中文网站的访问支持。和其他基于Qt的应用程序一样, Konqueror/embedded中对所有用户可见的文本使用tr()将文本标识出来,这样利用Qt 提供的翻译工具将很容易把这些文本转化成所需要的语言。
同时Qt 提供了两个宏QT_ TR_NOOP ( ) 和QT_ TRANSLATE_ NOOP ( ) ,可用它们标示出文本,以便于被lupdate 工具提取。具体操作步骤如下:在需要翻译源码的XXX. pro 中加入一项: TRANSLATIONS = XXX. t s;运行lupdate XXX. pro ,生成XXX. ts 文件;运行lrelease XXX. pro 将生成XXX. Qm,并将其改名为XXX_en.qm;启动Qt Linguist 将XXX. ts 文件导入,将需要翻译的内容翻译成中文;翻译完成之后, 点击File →Re2lease ,将文件保存为XXX_zh. Qm;翻译文件保存之后, 在程序源码中需要构建Qt ranslator 实例,利用Qt ranslator 将翻译文件加载到图形界面上。
在Konqueror/ embedded 中可以通过修改main. c 中的代码来实现UI 的汉化。由于Qt/E是可以支持Unicode编码的,因此Konqueror/embedded也可以支持中文。但是在编译Qt/E的缺省配置中是不支持Unicode的,因此要手动修改qconfig-qpe.h文件的配置:注释掉38行,#define Qt_NO_CODECS。

  修改完毕以后,重新开始编译Qt/E以及Qtopia和Konuqueror/E,Konqueror/embedded就能接受Unicode编码的汉字了。但是要在Konqueror页面上显示,就必须要有相应的字体。因此,对Konqueror/embedded源代码中/konq- embed/dropin/ kglobalsettings.cpp文件进行修改,即将"helvetica"改为"unifont"后重新编译 Konqueror/embedded,这样Konqueror/embedded中就能显示中文字体的页面了。

结语

  本文对嵌入式浏览器Konqueror/embedded技术核心做了简要分析,阐明了该浏览器的先进性与可扩展性,而且阐述了 Konqueror/embedded移植到实际使用系统中存在的一系列问题。本文结合了实际的移植经验,详细地说明了整个移植过程对嵌入式浏览器的移植有较好的指导意义。

参考文献:
1 张晓林,崔迎炜. 嵌入式系统设计与实践. 北京:北京航空航天大学出版社,2006
2 倪继利. Qt及Linux操作系统窗口设计. 北京:电子工业出版社, 2006

关键字:PDA  嵌入式  图形 引用地址:VxWorks体系下PowerPC860处理器串行总线设计

上一篇:PSoc的电容式非接触感应按键设计
下一篇:基于两步换相控制策略的SR电机直接数字控制系统设计

推荐阅读最新更新时间:2024-05-13 18:16

一文详解汽车嵌入式抬头显示器(HUD)发展趋势
“在2019年到2025年期间,全球HUD的复合增长率将达17%,总出货量可达1560万台。” 随着每年交通事故的增加,对于嵌入式抬头显示器( Head-up display,HUD,又称平视显示器)的需求也在日益增长。HUD能够让驾驶员安全有效地读取行车过程中的重要信息,包括车速、警示信号、导航指示牌以及剩余燃料情况。我们估计,在2019年到2025年期间,全球HUD的复合增长率将达17%,总出货量可达1560万台。 2025年,电动汽车中HUD的销量将占HUD总销量的16% 电动汽车(EVs)要比内燃(ICE)汽车拥有更先进的技术,对于购买电动汽车的顾客来说,他们也十分愿意为HUD等高级功能额外付费。 另外,“高级驾驶
[嵌入式]
一文详解汽车<font color='red'>嵌入式</font>抬头显示器(HUD)发展趋势
手机自动售货机的嵌入式系统设计
引 言   移动增值业务产品的核心特点是移动性、即时性和个人性。移动增值服务是在通信技术、计算机技术和互联网技术不断发展融合的基础上,在人们以信息为基础的各种应用需求快速增长的激励下,在社会信息化水平日益提高的前提下,迅速发展的一种全新的服务方式。由于移动通信自身所具有的可移动性、无时空限制性、专属性、安全性和时尚性的特点,加上基于这些特点之上的短信息、游戏、支付、定位、办公等丰富多彩的应用服务,使得我国的移动增值业务在短短数年里从无到有,迅速发展为欣欣向荣的产业。本系统采用的是以ATmegal28单片机为核心的自动售货机,通过BENQ的13SM/GPRS M22模块与服务器通信来实现以手机支付形式的移动增值服务系统。在实际设计
[嵌入式]
满足复杂DC-DC功率转换要求的解决方案
引言 在测试测量设备或嵌入式计算等工业应用中,嵌入式DC-DC转换器的系统架构可能相当复杂,在输出电压和电流、纹波、EMI及上电顺序等许多不同方面都有相关要求。本文主要探讨了DC-DC应用中转换器功率级选择的影响。 先进嵌入式DC-DC转换器的要求 许多工业系统,如测试测量设备,都需要嵌入式DC-DC转换器,是因为这些应用所需的计算能力日益增加。这种计算能力由DSP、FPGA、数字ASIC和微控制器提供,而得益于工艺几何尺寸的日益缩小,该类器件在不断的进步。另一方面,这也带来了三大要求:第一,电源电压越来越低 (当然,还有容许的电压纹波和负载变化);其次,电源电流逐渐变大;第三,这些IC通常需要为内核和I/O结构以准
[电源管理]
基于ARM的嵌入式RIFD读写器设计
  引言   RFID 利用了电磁波空间耦合、传播进行通信,以达到自动识别被标识对象,获取对象信息的目的。同其他一些识别技术相比,射频识别技术具有高效快捷、非接触、无污染、识别率高等突出优点。识别过程无需人工干预,可在恶劣环境下工作,能够应用到很多行业。   1.RIFD 读写器的硬件总体设计   图 1 读写器的硬件总体设计   RFID 系统主要由射频卡、读写器以及计算机系统组成。系统的工作原理如下:读写器通过天线发送出 13.56MHz 的射频信号,当射频卡进入读写器工作场时,天线产生感应电流,从而射频卡获得能量被激活并向读写器发送出自身编码等信息,读写器接收到来自射频卡的载波信号,对接收的信号进行解调和解码
[单片机]
基于ARM的<font color='red'>嵌入式</font>RIFD读写器设计
ARM推出第二代Mali-600图形处理器Mali T624、T628、T678
21ic讯 ARM日前宣布推出第二代ARM® Mali™-T600 图形处理器(GPU)系列产品,将为平板电脑、智能手机和智能电视提供非凡的用户体验。第二代ARM Mali-T600 GPU 全线产品不仅性能提升50%,而且是首次加入全调适纹理压缩技术(Adaptive Scalable Texture Compression,ASTC)的GPU系列产品。ASTC是源自ARM的纹理压缩技术,能显著地优化GPU性能和提升终端设备的电池续航能力,带来“永远连线、持续运作(always-on, always connected)”的体验。这项技术已被业界致力于开放标准发展的重要协会—Khronos™ 集团所采用。 基于Mali Mi
[单片机]
物联网引爆大量需求,芯片商攻嵌入式处理/安全方案
    嵌入式处理与安全晶片炙手可热。智慧家庭/城市、车联网、穿戴电子等物联网应用火热发展,带动嵌入式处理器和安全晶片庞大需求,因而吸引半导体厂商加紧研发新一代方案,以满足系统厂提升处理效率、安全性,并降低整体功耗的多重需求。 嵌入式处理/安全技术导入需求急速增温。近年整个电子科技产业围绕着物联网设计氛围,从前不须涉猎联网、感测和嵌入式安全应用,对功耗要求也没那么严格的汽车、家电或工业设备等系统开发商,亦受到这股风潮的感染,开始扩大寻求低功耗嵌入式处理、系统级资讯安全技术,并将其视为进军物联网领域的必备要素,因而吸引半导体供应商竞相布局相关解决方案。   安谋国际(ARM)投资人关系副总裁Ian Thornton表示,今年初国际
[手机便携]
天瞳威视获A2轮融资,发力嵌入式视觉产品
智能驾驶系统供应商天瞳威视(CalmCar)宣布完成亿元级 A2 轮融资,投资方包括上汽投资、上汽加州风投、北京车联网产业发展基金(千方科技与金沙江联合资本共同管理)。本次融资主要用于量产可支持L2+智能驾驶功能的环绕感知系统、深入与整车厂(OEM)和一级零部件供应商(Tier1)的合作。 CalmCar曾于2016年12月获得德联资本领投的千万级天使轮融资,在2018年获得国中创投和中国联通的数千万元Pre-A轮投资、以及北汽产投的数千万元A1轮战略投资。 CalmCar成立于2016年3月,主要开发基于深度学习技术的嵌入式视觉产品,为自动驾驶提供视觉感知系统,以及驾驶环境分析数据,成功运用于汽车主动安全、移动机器人、智慧交通与
[机器人]
嵌入式实时操作系统的RAM盘扩展
    摘要: 介绍了一种在嵌入式实时操作系统内核(以下简称实时内核)上实现RAM盘的方法,配合接受用户命令的Shell任务,可实现嵌入式系统的多任务动态加载和监控,扩展了实时内核的应用领域。实时内核采用目前十分流行的免费内核μC/OS-Ⅱ,硬件不台为通用现场总线控制器系统。     关键词: μC/OS-Ⅱ内核 嵌入式系统 通用现场总线控制器(GPFC) ColdFire 1 嵌入式RTOS 目前,嵌入式RTOS的应用领域越来越广泛。已经有80多个RTOS厂商生产面向8位、16位、32位、甚至64位微处理器的RTOS产品。商业的实时操作系统如VxWorks,pSOS,VRTX,WindowsCE等功能完
[嵌入式]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved