3.1 嵌入式Linux的移植
嵌入式Linux内核的版本很多,一般情况下版本越高,系统越稳定,驱动更完善,本系统选择了2.6.18的Linux内核。其实对于2.6以后版本的Linux内核,对S3C2410的支持都有了很好的支持,所以移植过程都比较简单[3]。Linux2.6.18移植到S3C2410的基本步骤如下:
(1)下载Linux2.6.18内核,并解压到相应目录。
(2)修改内核顶层目录下的Makefile文件,指明交叉编译器。进入Linux-2.6.18内核目录,输入命令vi Makefile,找到ARCH和CROSS_COMPILE两项,将其修改为ARCH = arm,CROSS_COMPILE = arm-linux-。
(3)设置PATH环境变量,使其可以找到交叉编译工具。输入su root,进入root,在输入vi/etc/bashrc,在结尾处加入以下行:export PATH=/usr/LOCal/arm/3.4.4/bin:$PATH,然后重启终端或重新登陆即可。
(4) 设置Flash分区。首先要在arch/arm/mach-s3c2410/devs.c文件中添加分区信息,其次在arch/arm/mach-s3c2410/mach-SMDk2410.c文件的smdk2410_devICes[]的成员中添加&s3c_device_nand。这样Linux内核启动时,就会对Flash分区的设置初始化。
(5)禁止Flash ECC校验。修改drivers/mtd/nand/s3c2410.c 文件,找到s3c2410_nand_init_Chip()函数,在该函数体最后加上一条语句:chip->eccmode = NAND_ECC_NONE。
(6)配置内核。通过make menuconfig命令配置内核。
(7)编译内核,make zImage命令,得到Linux内核的映像文件zImage。
(8)制作根文件系统。
3.2 Mplayer移植
Mplayer是Linux下的一个多媒体网络播放器。它的主要功能是对接收到的各种格式的流媒体数据进行解码,同时也完成对接收的网络电台的IP地址进行解析的任务。Mplayer支持MP3、ogg 和wma等多种格式的流媒体数据进行解码,是一个功能十分强大的开源应用软件。Mplayer的移植步骤如下:
(1)下载源代码MPlayer-current.tar.bz2,并解压。
(2)为了让mplayer支持在线播放,从而能够播放网络电台,还必须下载安装网络协议包(主要指RTSP、MMS等协议)。可从www.live555.com上下载live555协议包,解压后配置并编译。
(3)配置mplayer的命令格式如下:
./configure --cc=arm-linux-gcc --target=arm-armv4-linux --enable-static --dISAble-win32 --host-cc=gcc --disable-dvdread --enable-fbdev --disable-mencoder --disable-mp3lib --enable-mad --enable-libavCODEC --enable-live --with-livedir=/live555的目录/ --2>&1 | tee logfile。
其中,--host-cc=gcc是用来编译一些需要在host上执行的中间文件的,如codec-cfg。--cc=arm-linux-gcc 是用来指定交叉编译工具。关于 --target=arm-armv4l-linux这个参数要注意的是它被分为三部分,第一部分的arm是指arch,这里设定为arm;第二部分的armv4l是指具体的版本;第三部分是系统平台。--enable-static是设定静态连接。--2>&1 | tee logfile意思是将执行的情况在输出到屏幕的同时记录到logfile文件中,在控制台下编译比较有用。
(4)输入make命令开始编译,编译完成后在顶层目录生成mplayer可执行文件。
3.3软件主流程图
系统主流程图如图5所示。系统上电后,bootloader(U-boot)启动,完成硬件设备的初始化, 并引导系统内核启动。系统启动执行初始化任务后,首先配置网络连接,通过运行DHCP Clieant向DHCP Server申请获取本系统IP地址。然后系统自动访问默认的电台服务器,该服务器上有最近更新的世界各地的网络电台的URL地址,系统下载该列表,并更新上次保存的列表。然后系统判断有无按键按下,若有按键按下,系统根据按键选择相应网络电台,若在一定时间段内没有按键按下,系统自动连接电台列表的第一个电台地址,并开始播放该网络电台。同时,LCD将显示电台的有关信息和系统信息。在播放过程中,同样可以根据按键来中断、选择网络电台。
图5 系统主流程图
4 结束语
本设计基于ARM的嵌入式技术,通过软硬件等三层结构,实现了一个嵌入式网络收音机系统。该系统克服了PC机形式的网络收音机的诸多缺点,是一个极具创新思维的设计。随着网络技术和嵌入式技术的高速发展,该设计具有很好的市场应用前景和科研价值。