0 前言
3G或第三代移动通信系统可以提供各类高品质的多媒体服务,它能够处理图像、音乐、视频流和其他形式的媒体,包括网页浏览,电话会议、电视电话、在线游戏,和其他信息服务。
1 OMAP5910处理器介绍
OMAP5910是针对高度集成的通用OMAP处理器的嵌入式应用的应用程序的第一个目标。它的应用是无线领域之外,能够互连计算、嵌入式计算、远程计算和新兴的计算一体化。不仅适合于2.5G/3G手机和PDA市场,也将OMAP平台固有的优势进一步扩大,可用于数字媒体、生物识别、定位服务、新类型游戏和电信、商业和工业应用领域。
2 硬件系统的设计
整个系统的硬件可以分为两个模块:处理器模块和外设模块。处理器模块运行嵌入式Linux的实时操作系统和应用程序,以及周边外设模块和通信,是完全控制整个系统的核心。外设模块是一组以上的外围设备,包括电源、音频和视频系统。
2.1 处理器模块
进一步细分为处理器、JTAG和内存模块。
处理器:OMAP5910处理器是整个系统中的仲裁者和决策者,是相机、手机(包括图像采集,像素插值的RGB转换和JPEG压缩),视频,MPEG-4压缩的灵魂。
JTAG接口:用于完成处理器的调试和诊断。
内存:内存模块完成多媒体数据(包括捕获静止图像,视频图像,音频和视频压缩流和解码帧,参考帧,显示帧等)和其他数据的存储。
2.2 嵌入式操作系统
后PC时代,越来越多的人接触到一个新的概念一嵌入式系统。嵌入式产品被发现在人们的日常生活,从手机、个人数字助理(_PDA)、家用空调、冰箱、波音飞机、小型车,甚至巡航导弹武库。数字化时代的标志不再是一个单一的PC,而是嵌入式系统的不同模式。
嵌入式Linux因为便宜、功能强大、易于移植等特点被被广泛采用,成为新兴的力量,在这个系统中使用的操作系统版本是PATCHVERSIO N21。
3 交叉编译环境的建立
交叉编译环境的作用是为OMAP5910编译程序可以识别的对象代码。建立的步骤:解压、安装、并设置环境变量。
服务器使用gcc linux交叉编译器,ARM-LINUX-glibc.tar.bz20到~Linux-glibc.tar.bz2的复杂设置根目录和提取焦油jxv路径上的交叉编译环境/ARM-linwc glibc.tar.bz2此命令在/usr目录安装的ANM交叉编译器的/usr/本地/bin目录的安装elfZcoff工具。然后在PATH变量中添加一个PATH=$PATHausrlarmlbin补充letclprofile文件的位置。这充分建立了良好的ARM-LINUX交叉编译环境。
4 内核的移植
移植必须先了解源代码的核心结构。
arch:包含多种架构CPU的代码,如archlarim目录下面包含的是专门针对arm的代码,比如说arch/axm/kernellhead-armv.S,我们的目标系统的内核启动就是从这个文件里面开始运行的。
documentation:与内核有关的各种文档,有一些是比较有用的,像device.txt是各种类型器件的设备描述文件。
drivers:这个目录是各种设备驱动程序。以后提到的LCD、camera、DSP、USB以及触摸屏的驱动程序都在该目录下。
fs:这个目录包含各种文件系统。
include:这个目录下面是各种头文件。
init:这个目录下主要是linux的主函数文件~.c文件,linux的主流程就在这个文件里面实现,main里的start-kernel是内核的入口。
ipc:这个目录下主要是进程间通信的一些实现代码。
kernel:这个目录下面是内核的一些核心文件。
Iib:这个目录下是一些通用的库函数。
mm:这个目录下主要是内存管理的代码。
net:这个目录下包含了liuux对网络的支持,各种协议的实现都在该目录下面。
scripts:这个目录下主要是一些脚本文件,通过与这些文件的交互对内核进行配置。
5 设备驱动程序介绍
设备驱动程序是内核的Linux操作系统和硬件系统,应用程序屏蔽硬件细节之间的接口。在此应用程序看来,硬件设备只是一个设备文件,应用程序可以在操作普通文件的硬件设备上操作。Linux操作系统,设备分为字符设备、块设备和网络设备三种。
5.1 字符型设备驱动的框架
嵌入式Linux设备管理和文件系统,再与以文档的形式存储在/dev目录中的各种设备紧密连接,称为设备文件。完成设备操作,运行定期的数据文件相同的设备文件。为了管理这些设备,系统设备数量,每个设备被分为主要设备数量和设备数量。主要设备用来区分不同类型的设备,从设备号用来区分同一类型的多个设备。
6 总结
设计完成了基于OMAP5910的3G无线终端的多媒体应用平台的硬件系统。绘制了硬件系统的原理图和印制电路板图;对各功能模块进行测试和调试;完成与CPLD相关的硬件语言设计和调试,在QuartusII软件下用VerilogHDL编写;在掌握linux操作系统及嵌入式操作系统的移植和开发及Linux下的驱动程序开发的基础上,完成DSP、Camera、触摸屏等底层驱动程序的开发:完成Microwindow下顶层用户界面和JPEG等应用程序的开发。