基于数字电视系统的嵌入式linux操作系统实现
5.系统构建
为了移植linux操作系统,我们首先在主机端安装一个交叉开发环境,然后在供测试的目标板上安装一个测试环境,测试好后,再移植到数字电视系统上。
5.1安装交叉开发环境
在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常需要在强大的pc机上建立一个用于目标机的交叉编译环境。这是一套编译器、连接器和libc库等组成的开发环境。图6描述了交叉开发环境的安装过程。
要制作二进制linux映像文件,首先应制作二进制连接器、汇编器和其它目标工具。然后,用 make menuconfig配置内核,此时在内核目录中将生成include/linux/version.h 和 include/linux/autoconf.h 文件。注意,由于数字电视系统的MCU只支持大端存储器格式,所以,应在内核库中做相应修改。第三步是制作交叉编译器(gcc)和c库(glibc)。由于两者是相互依赖的关系,可以先制作一个不带glibc的gcc,然后用交叉编译器创建一个glibc,再重新编译这个带glibc的gcc。第四步,由于移植好的linux运行在只读存储器中,所以需要安装用于制作二进制文件系统映像的工具(genromfs),和一个用于将elf格式(通用文件格式)转换为flt格式(扁平格式)的工具。
5.2开发环境
系统开发环境包括测试板的SNDS100TM(Samsung)、用于远程调试的JEENITM (Jtag EmbeddedICE Ethernet Interface)、数字电视机主板等。表1列出了开发环境的各个部分。
表1 开发环境
组成部分功能
测试板
三星 s3c4510B (ARM 7TDMI),16M字节的SDRAM, 1M字节的flashROM, LED, RJ45连接器.网络应用开发板
数字电视主板三星s3c4500(ARM 7TDMI),16M字节的SDRAM, 8M字节的flashROM, pcf8584, SPU (LG electronics),32M字节SDRAM.数字处理模块
JEENITMEPI, 两个硬件断点,以太网主机接口,内部的ARM 710A高速缓冲存储器远端调试环境
软件
gcc-2.95.3, glibc-2.1.3, binutils-2.12, genromfs-0.5.1, elf2flt, gdb-5.0, ADS(ARMTM Developer Suite),evaluation ver. 1.1交叉开发和调试的工具
在主机中制作一个二进制的linux内核映像,将其通过串口线传送到开发板上。利用JEENI来安装远端调试环境。由于flash ROM中的boot块被保护,不能修改,因此我们需要将它与数字电视主板分开,在flash ROM中烧入一个bootloader后再安装到主板上。
通过这一实验,可以通过PCF8584控制音频输出。也就是说,I2C总线的从设备将数字信号转换为音频输出信号。最终,我们可以听到蜂鸣声,也可以通过数字示波器来检测I2C总线信号。
参考文献:
[1].PCF8584datasheethttp://www.dzsc.com/datasheet/PCF8584_318668.html.
[2].fltdatasheethttp://www.dzsc.com/datasheet/flt_329018.html.
评论