通信网--中国通信行业门户网站 | 中国行业网站集群--通信行业电子商务唯一网站 设为首页 | 收藏本站
免费注册 商机无限 商务中心 行业展会 立即发布商机
网站首页 公司库 产品库 商机库 行业资讯 展会信息 招聘信息 招商加盟 下载中心 招标信息
关键词:
热门词汇: IP网络电话   语音识别   手机充电器   手机GPS   3G手机   传输设备   交换设备
  行业要闻 | 通信市场 | 通信技术 | 网络学院 | 5G前沿 | 4G前沿 | VoIP | IPTV | WiMAX | 呼叫中心 | IT制造 | IT就业  
  企业专栏 | 企业报道 | 通信标准 | 通信百科 | 分析预测 | 手机评测 | 增值通信 | 政策法规 | 专家观点 | 网商访谈 | 招标信息 | 物联网
网上展览:
综合厂商 | 手机 | IP电话 | 交换机 | 呼叫中心 | 网络 | 终端 | 电源 | 仪器 | 光纤 | 电缆 | 电脑 | 数码 | 软件 | 其他
中国通信网最新加盟企业: 
当前位置:网站首页 > 行业资讯 > 网络学院
【创心服务 联通你我】青春逢盛世,奋斗正当时
中国通信网 时间:2010-11-29 信息来源:微计算机信息

所谓嵌入式系统,即将应用程序和操作系统和计算机硬件集成在一起的系统。简而言之即软硬件一体化。这种系统具有小巧灵活﹑性价比高﹑自动化高﹑实时性强﹑专业性强等特点。嵌入式系统适合应用于人类工作与生活的各个领域,最为典型的应用有机顶盒﹑数字应用﹑WebTV﹑ATM/POS机﹑多媒体手机﹑袖珍电脑﹑车载导航器﹑航空电子等等。嵌入式技术已经深入人类生活和工作的方方面面,在娱乐,军事方面也有强大的应用潜力。

全球有四大操作系统:WinCE﹑Palm OS﹑EPoc和Linux以稳定﹑高效﹑易制定﹑易裁减﹑硬件支持广泛的特点,结合其免费﹑开源的特征在嵌入式操作系统中的地位越来越重要。越来越多的嵌入式,包括PDA﹑机顶盒﹑WAP手机等系统不仅仅要求高性能高可靠性的图形显示界面支持,而且要求提供全功能的Web浏览器。包括HTML支持,JavaScripe支持,甚至包括Java虚拟机的支持。本文所介绍的系统是一个拥有图形界面,支持嵌入式浏览器的ARM Linux系统。

2嵌入式系统结构

基于EP7312的嵌入式系统分为软件和硬件两大部分。硬件是自主开发的EB7312-B嵌入式开发系统。软件由ARM Linux﹑Microwindows和ViewML三部分组成。如图1。

图1 嵌入式系统结构

2.1 EB7312-B

EB7312-B所采用的CPU是Cirrus Logic公司出品的EP7312。EP7312由一个32位精简指令集微控制器及片上外围所组成,是专门用于PDA﹑Internet设备﹑移动电话和手持设备等设计成超低功耗和高性能的微处理器。EB7312-B的核心逻辑部是ARM720T处理器,由ARM7TCMI CPU核模块﹑内存管理单元﹑写缓冲器模块和8K独立的指令数据高速缓存组成。内存管理单元兼容WinCE和Linux。其他功能块有内存控制器;48KB的片上SRAM.(LCD控制器和一般应用共用); 内存32MB SDRAM,16MB Flash;两个全双工的UART(16550型);10M以太网卡CS8900A;彩色320X240 LCD,EP7312本身并不直接支持彩色LCD,它是通过微小的外部逻辑和对LCD驱动器的一个轻微的改动来实现对彩色的支持; 83键ASCII键盘。

图2 ViewML体系结构

2.2 ARM Linux

ARM Linux是一个将Linux内核移植到各种基于ARM处理器的目标系统的项目。由Russell Kingrmk@arm.linux.org.uk主持。已经为超过100多种不同的目标系统成功完成了移植工作。这里所移植的Linux内核是Linux-2.4.24,ARM Linux补丁是2004年2月发布的Linux-2.4.24-vrs1。在移植过程中,重点工作是启动程序的实现和ARM Linux下针对具体的硬件环境桢缓冲设备驱动程序的设计。

启动程序的主要步骤为:设置入口指针,设置中断向量,设置和初始化RAM,初始化至少一个窜行端口,检测CPU类型,初始化堆栈和寄存器,初始化存储器系统,设置内核相关列表,呼叫内核镜像。需要特别注意的是在设置CPU寄存器时,r¬0 为0,r2 为检测出的CPU型号号码,MMU关闭,指令Catch打开,数据Catch清空后关闭。

Framebuffer是一个提供显示内存和显示芯片寄存器从物理内存映射到进程地址空间中的设备,其驱动程序主要依靠三个数据结构:fb_info﹑fb_var_screeninfo﹑fb_fix_screeninfo。fb_info结构只能在内核空间访问,其内部定义了struct fb_ops,结构fb_ops的成员即framebuffer的一系列操作函数。帧缓冲设备的驱动主要就是编写这些接口函数。fb_var_screeninfo和fb_fix_screeninfo定义视频板卡的硬件特性。如显存大小﹑每行显示位数﹑分辨率等与特定硬件相关的特性。帧缓冲驱动程序首先调用register_framebuffer注册一个framebuffer设备,后在Linux/drivers/video/fbmem.c中登记初始化函数。所有帧缓冲驱动程序的ioctl调用由fbmem.c统一实现。

2.3 Microwindows

Microwindows 是专门设计用于在小型设备上开发具有高品质图形功能的开放式源码桌面系统,使用较少的RAM和文件存储空间(100K-600K),在运行的过程中仅需要50~250KB的内存空间。Microwindows不需要任何操作系统 和图形系统的支持,可以运行32位的内核支持Framebuffer机制的Linux系统上。Microwindows的主要目标之一就是把把图形视窗环境引入到运行Linux的小型设备和平台上,提供与X Window相似的功能。

Microwindows采用分层结构设计方法,在底层提供对屏幕,鼠标或触摸屏,键盘的驱动,是程序能够访问实际的硬件和其他用户订制设备;中间层实现了一个可以移植的图形引擎,这个图形引擎实现画线,填充,多边行,剪辑和多种颜色模式;最上层实现了多种API以适应不同的应用环境。每一层都可以根据不同的应用需求修改代码或重新编码。

系统中最底层针对显示屏,鼠标,触摸屏,键盘等各定义了一个数据结构供图形引擎使用,分别为struct _mwscreendevice ﹑struct _mousedevice 和struct _kbddevice , 包含了针对指定设备的硬件驱动代码接口。

在Microwindows中的图形引擎支持framebuffer ,因此只要修改src/中针对基于ARM平台的Linux的配置文件config.ads,指定使用framebuffer作为底层图形支持引擎即可。Microwindows下支持Linux的鼠标驱动为mou-gpm.c,键盘驱动为kbd_tty.c。在本系统中并没有从头开始编写鼠标键盘各数据结构的成员函数,只对原驱动中针对特定硬件部分作了相应改动。

2.4 ViewML

ViewML是第一个开放源代码的,专门面对嵌入式Linux系统的快速发展而开发的小型浏览器。其代码文件只有800KB,运行所需的内存空间约2MB,使用FLTK作为GUI平台开发,采用C++面向对象的设计。ViewML浏览器可以运行于X Windows 和Microwindows系统之上,所以可在Linux平台上进行调试和改进。这极大的方便了对浏览器的进一步完善。本系统中对ViewML 的改进是在基于X Windows 平台的Microwindows系统上完成的。

ViewML浏览器的体系结构如图2。其应用层很小,完全用C++ FLTK(Fast Light Tool Kit)应用框架编写,提供基本的图形用户界面布局,同时该层还处理网络和本地文件存取要求。其语法分析器和显示引擎选用了源码开放的KDE桌面的kfm文件管理器中的KDE 1.0 HTML窗口部件(即图1中的KHTML View和窗口部件模块)。该窗口管理部件工作稳定,支持全部的HTML 3.2功能及部分JavaScript 1.1。KDE的窗口部件采用的是QT窗口部件集合,为适应嵌入式系统的要求,ViewML采用了轻量级图形库FLTK。QT兼容层提供了HTML窗口部件和FLTK应用框架之间的接口。底层的网络协议采用万维网协会的WWWLib库执行所有的异步网络输入输出和HTTP获得功能。

ViewML是直接针对嵌入式Linux环境的一种高品质的网络浏览器。通过包含源代码开放的核心部件,能够在占用很少的RAM和ROM资源的条件下使用高质量的图形引擎。但在实际是移植使用中发现了一些该浏览器的欠缺之处,下面重点讨论本系统针对ViewML窗口界面的改进。

3 ViewML窗口界面的改进

Viewml的应用层很小,只提供了基本的图形用户界面布局。作为与用户交互的窗口,要求有美观性,实用性和可操作性。为了使用户界面更为完善,本系统主要的工作增加对HTML文件的打开﹑保存和关闭;Web页的刷新﹑前进﹑返回等。

编写界面部分主要应用FLTK窗口部件,FLTK提供了比较丰富的控件,如:按钮﹑滚动条﹑文本框﹑对话框﹑列表框等等。所有这些窗口部件的框架类都在FLNK(FLTK移植到Microwindows的Nano-X API上的版本)的文件夹FL中包含的100个头文件中定义。ViewML中窗口的实现是通过创建类VMLAppWindow来构建基本的图形用户界面 ,其中只包括三个函数:VMLAppWindow(int x, int y, int w, int h) : PARENT_WINDOW(x,y,w,h,"ViewML Browser") { },virtual void resize_noTIfy(int x, int y, int w, int h), virtual int handle(int event);}在图形界面上添加按钮save,open,reload,forword,backward等,需在类VMLAppWindow中定义的相应函数。

相关资讯
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-17)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-14)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-12)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-11)
· 【创心服务 联通你我】青春逢盛世,奋斗正当时 (2012-01-09)
发表评论
昵   称:   匿名发表
验证码: 
 
热门资讯
【创心服务 联通你我】青春逢盛... (2009-09-15)
【创心服务 联通你我】青春逢盛... (2011-04-28)
【创心服务 联通你我】青春逢盛... (2009-09-16)
【创心服务 联通你我】青春逢盛... (2008-07-15)
【创心服务 联通你我】青春逢盛... (2008-05-23)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2012-01-09)
【创心服务 联通你我】青春逢盛... (2011-01-30)
【创心服务 联通你我】青春逢盛... (2010-05-28)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2011-02-17)
【创心服务 联通你我】青春逢盛... (2009-08-13)
【创心服务 联通你我】青春逢盛... (2011-05-03)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2008-07-31)
【创心服务 联通你我】青春逢盛... (2010-07-20)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2010-08-27)
【创心服务 联通你我】青春逢盛... (2009-08-12)
【创心服务 联通你我】青春逢盛... (2009-10-11)
【创心服务 联通你我】青春逢盛... (2009-07-24)
国之鑫科技 | 泰尔网 | 中华网科技 | 信息产业网 | 通讯世界 | 数字通信世界 | 文传商讯 | 中华英才网 | 电话视频会议 | 凤凰科技 | 呼叫中心 | 新浪科技 | 新传媒网 | 和讯科技 | 中国科技网 | 通信英才网 | 江苏星光发电设备 | 中劳网 | 赛迪网 | MSCBSC移动通信网 | 中国软件网 | 新华网 | 腾讯科技 | 3G通信网 | 千龙网 | 光通信人才招聘网 | 通信人才网 | 中商顾问网
返回首页 | 网站简介 | 企业理念 | 免责声明 | 广告服务 | 代理政策 | 联系我们 | 铭万网 | 中国产品推广联盟
南京国之鑫科技有限公司版权所有©2008-2016 客户服务热线:025-83752991, 客户服务邮箱:gzx@gzxinfo.com
苏ICP备18005078号-1
本站图片及文字仅供功能演示,本站保留对本演示内容及功能的最终解释权

加入铭万联盟中国行业网站集群独家技术供应商