1前言

  随着以计算机和软件为核心的数字化技术的迅速发展,多媒体技术与Internet的应用迅速普及。计算机﹑通讯﹑消费电子一体化的趋势日趋明显。作为新型智能3C合一的嵌入式系统与技术进入智能化﹑网络化的发展阶段。


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


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


  2嵌入式系统结构

  基于EP7312的嵌入式系统分为软件和硬件两大部分。硬件是自主开发的EB7312-B嵌入式开发系统。软件由ARM Linux﹑Microwindows和ViewML三部分组成。如图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键盘。

  

  图1嵌入式系统结构

  

  图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窗口界面的改进。

关键字:EP7312  嵌入式系统  数字化技术 引用地址:基于EP7312的新型嵌入式系统的实现

上一篇:怎样在嵌入式Linux系统中使用摄像头
下一篇:智能终端续航瓶颈分析与解决方案

推荐阅读

从代工厂到工业互联网平台,富士康的这条路并不好走。 2018年6月8日,工业富联在深交所上市,发行价为13.77元/股。虽然首日走出了44%的涨幅,但在连续三个涨停板后,工业富联没能维持涨势,股价开板,其开板的速度之快令人咂舌。 就在昨日(10月8日),在经历了四个月的下挫后,工业富联股价首次跌破13.77元的发行价。  相比其科技公司较高的利润率,...
近日,据外媒报道,特斯拉在其最新公布的一份公示文件中,将加拿大动力电池企业Hibar Systems(下称“海霸”)列为子公司之一,这份公示文件并没有透露收购金额和具体细节信息,但考虑到在此前特斯拉的最后一次公示文件中,海霸尚未被列为特斯拉的子公司,媒体由此推测,这份并购应该是产生在7月至10月之间,这也是今年特斯拉公开收购的第二家动力电池企...
环境:主机:WIN8开发环境:MDK5.13mcu: stm32f407VGIGH6字库芯片:GT23L24M0140说明:GT23L24M0140是一款支持GB18030标准的字库芯片,有多种大小的字体可供选择。本文驱动了其中常用的字体。源代码:drv_font.h/********************************************************************** 字库芯片驱动层头文件* (c)copyright 2013,jdh* ...
全球芯片市场战火一触即发,晶圆代工领域竞争尤为激烈。本周四,三星电子公布其代工业务技术路线图,誓言要提高代工产能及先进工艺领域的行业地位。据韩媒报道,在“Samsung Foundry Forum 2021(晶圆代工论坛)上,该公司表示将在2022 年上半年推出 3 nm GAA工艺,同时将在2025年商用生产2 nm GAA制程芯片。业界高层指出说,台积电尚未公布2 nm量产...

史海拾趣

问答坊 | AI 解惑

【求助】单片机与PC机之间的串口通讯

采用查询的工作方式,编制一个串口通讯程序,实现单片机和PC机之间的串口通讯,其中PC机数据的发送和接收采用超级终端来执行。要求:超级终端发送16个字符给单片机,放在以30H开始的内存单元中;单片机接收成功后,将这16个字符回送给超级终端,每 ...…

查看全部问答∨

LINUX 内核学习

希望大家多多支持…

查看全部问答∨

2009论坛最辛苦管理员年终红包投票

2009年过去了,论坛在大家的努力中度过了,这个过程中管理员可是不分工作时间还是休息时间都在勤恳的为了论坛奉献自己的力量,我最先认识 的就是SOSO她的工作热情让我敬佩,对论坛来说她绝对是100%的努力,还有小志、小娜每天她们都工作台到很晚才 ...…

查看全部问答∨

一个很诡异的现象,在场的所有人包括电工都不能解释

前段时间去过一个工厂测试:一个车间就一台80KVA的变压器单独供电,三相四线由变压器配电房直接拉到车间,线路大约有120米,没有补偿。在车间总进线处测量得到的数据正常: A相:有功11.55KW,功率因素0.723,视在功率16.32KVA,无功11.30KW,电压2 ...…

查看全部问答∨

高薪 求反汇编的高手

说明:本人有一段程序是LIB库其中封存了几个函数,找有经验的人进行反汇编工作,要求反汇编成C源程序。 我电话 15210509180   有高手请与我联系啊…

查看全部问答∨

IssueVendorTransfer USB_DEVICE_REQUEST

IssueVendorTransfer执行对Device的写操作失败,GetLastError为31 我的USB_DEVICE_REQUEST是这样的          req.bmRequestType = USB_TYPE_VENDOR|USB_RECIP_DEVICE;//(0x02<<5)|0 设备到主机,命令为厂商提 ...…

查看全部问答∨

请教PC104下 中断的使用方法?

请高手给我详细讲下中断的使用方法例程.我想把我的DLL和相应的中断响应关联起来,不知道要怎么做.我现在只知道 先Oalintr.h里加一个中断定义.#define SYSINTR_TOUCH   (SYSINTR_FIRMWARE+20)然后就不清楚要做什么了? 希望高手给我提供 ...…

查看全部问答∨

p0口上拉电压接3.3V

如题,当p0口接上拉电阻,而且上拉电压接3.3v而不是5v的时候,那么p0口输出高电平时,p0口的电压是多少呢?…

查看全部问答∨

论坛里有兄弟能共享一下最新版StellarisWare吗

论坛里有兄弟能共享一下最新版StellarisWare吗,申请了好几天了,总没有反应不知道ti现在咋搞的,下载个开发包还得批准。…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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