基于S3C2440的多媒体控制器设计
软件系统由μCLinux 操作系统、 嵌入式图形用户界面支持系统 MiniGUI构成。 μCLinux操作系统包括引导装载程序、 嵌入式Linux 内核、 必要的设备驱动程序、 文件系统J FFS2 等,具有高度模块化、 易于定制、 可移植性好等优点。引导装载程序Boot Loader 是系统加电后运行的第一段软件代码。通过这段小程序,可以初始化硬件设备、 建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。每种不同的 CPU 体系结构都有不同的 Boot Loader ,Boot Loader 是严重依赖于硬件而实现的。本系统采用基于ARM920T核的Boot Loader ,且根据系统硬件设备的实际配置修改了Boot Loader 的源程序,使他能够运行到我们的系统上。所设计的系统提供了最大128 M可选的 SDRAM和最大128 M可选的 FLASH存储器,系统运行小型的,经过裁剪的Linux 微内核。微内核由内存管理、 进程管理和事务处理构成,包括了所有核心的操作系统功能在内。μCLinux 操作系统本身的微内核体系结构相当简单,系统要求的网络协议和文件系统以模块形式置于微内核的上层,驱动程序和其他部件可在运行时作为可加载模块编译或是添加到内核,这为构造定制的可嵌入系统提供了高度模块化的构件方法。用户可以结合定制的驱动程序和应用程序来实现自己的附加功能,大大减小了内核的体积,便于维护和移植。其中,采用J FFS2 日志闪存文件系统管理非易失性存储中的结构化文件数据,J FFS2 是专门为像闪存芯片那样的嵌入式设备创建的,所以他的整个设计提供了更好的闪存管理,为掉电或系统崩溃等突发事件提供了很好的数据保护机制。
MiniGUI 是一种面向嵌入式系统或实时系统的图形用户界面支持系统,是遵循 L GPL 条款的纯自由软件,提供了完备的多窗口机制,多字符集和多字体支持,BMP , GIF ,J PEG,PCX,TGA 等常见图像文件的支持等。他是建立在比较成熟的图形引擎之上的,比如 SVGALib 和 LibGGI ,系统开发的重点在于窗口系统、 图形接口之上,MiniGUI提供了大量的图形应用编程接口,包含全部功能的库文件大小仅为 300 k左右,特别适合用在嵌入式系统上开发控制台图形用户界面的应用程序。同时,由于图形抽象层( GAL)和输入抽象层( IAL)概念的引入,将底层图形硬件和上层的图形操作和输入处理分离开来,大大提高了 MiniGUI 的可移植性。利用 GAL 和 IAL ,MiniGUI可以在许多图形引擎上运行,可以很方便地移植到基于ARM920T核的S3C2440系统上。
3 、多媒体娱乐应用软件的方案设计
基于 MiniGUI的嵌入式娱乐系统软件,应该最大限度满足视听娱乐的要求。能提供视频播放、 音频播放等多媒体处理软件,个人信息管理软件及无线网络服务。其中,音频应能支持 MP3 ,WMA , WAV 等格式,视频支持 AVI(XviD DivX4. 0 5. 0)格式。个人信息管理程序提供备忘录、 记事本、 名片夹等多种功能。无线网络服务提供全功能的 Web 浏览器。用户通过触摸屏与应用软件进行交互,提供了友好的人机界面。
图2 基于 MiniGUI的多媒体处理软件架构
基于 MiniGUI的多媒体处理软件架构该系统中的所有应用程序都以J FFS2 进程的形式执行,MiniGUI提供应用程序管理功能。所有的应用程序都运行在同一个地址空间,这样大大提高了程序之间的通讯效率。当应用程序之间需要通讯时,可以通过 MiniGUI 提供的 request/ response 接口实现。我们使用消息驱动作为应用程序的创建构架,触摸屏的按击由 MiniGUI支持系统,窗口管理器收集,将其以事先约定的格式翻译为特定消息,每一个多媒体处理应用程序都包含有自己的消息队列,支持系统将消息发送到应用程序的消息队列中,应用程序建立一个消息循环,在这个循环中读取消息,应用程序同时提供一个处理消息的标准函数,在消息循环中,系统调用此函数,在此函数中处理相应的消息,完成用户的请求。
图3 基于消息驱动的应用程序框架
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)