0引言
嵌入式系统开发已经进入32位时代,在当前数字信息技术和网络技术高速发展的后PC时代,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术等各个方面。
嵌入式系统通常由硬件和软件两个大部分组成。其硬件部分的核心部件就是各类嵌入式微处理器,并配置存储器、I/O设备、通信模块等必要的外设。目前市场上主流销售的32位嵌入式处理器有MOTOROLA、MIPS、ARM等系列,其中ARM以其体积小、成本低、功耗低、性能高等特点成为嵌入式系统设计的首选。
软件部分一般由嵌入式操作系统和应用软件组成。嵌入式操作系统是一种支持嵌入式应用的操作系统软件,它负责全部软硬件资源的分配和调度、控制协调等活动。从20世纪80年代末开始,陆续出现了很多典型的嵌入式操作系统,如Linux、μC/OS、WindowsCE等,其中使用最广泛、最受欢迎的是Linux,这是由于其源代码公开、可移植性好等优点。
1嵌入式视频处理平台和Linux系统移植
本文开发的嵌入式视频处理平台在达芬奇(Da-Vinci)数字媒体技术平台TMS320DM*6上进行的。此平台是以嵌入式处理器ARM为中心,由存储器、I/O设备、通信模块以及电源等必要的辅助接口组成。它的工作流程如图1所示。摄像头将视频信号传输进来后,再通过视频采集卡转换成数字信号然后送人TMS320DM*6,经过处理后通过视频输出接口在LCD(液晶显示器)上显示,在此过程中可以由USB口上所接的操纵杆进行控制,以及与存储设备进行存取操作。
此嵌入式视频处理平台主要应用于视频和图像的处理,如进行视频跟踪、图像的编解码等。
本文详细阐述如何在TMS320DM*6平台上进行Linux系统移植,形成了一个完整的Linux移植体系,为后续在此平台上的开发搭建了一个良好的平台,其移植流程如图2所示。
2交叉编译环境的建立
开发一个嵌入式Linux系统,首先要建立良好的交叉编译环境。所谓交叉编译环境,是由编译器、连接器和解释器组成的综合开发环境。交叉编译是嵌入式系统开发过程中的一项重要技术,它的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成。一般把前者称为目标机 (tar-get),后者称为宿主机(host)。在宿主机上编译好适合目标机运行的代码后,通过宿主机到目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试,其交叉编译开发模型如图3所示。
建立ARM的交叉编译环境主要用到的开发工具有:binutils、gcc、glibc。其中binutils是二进制文件的处理工具,它主要包含了一些辅助开发工具,例如obj-dump显示反汇编码、nm列出符号表、readelf显示elf文件信息及段信息等。这些工具在嵌入式开发初期,尤其是移植调试操作系统时非常有用;gcc是用来编译内核代码的工具,可以编译汇编语言和C语言的程序,生成ARM的代码;glibc是一个提供系统调用和基本函数的C语言库,所有动态链接的程序都要用到它。将这些开发工具包下载到宿主机上进行编译、安装,即可创建ARM的交叉编译环境。