现在大多数嵌入式设备都要求实现音视频的播放功能。ARM9+Linux在嵌入式系统中应用广泛,因此,这里提出一种嵌入式Linux下基于ARM9的多媒体播放系统。
1 播放器系统平台
播放器的嵌入式Linux系统的层次结构如图1所示。硬件上电后,CPU的程序指针首先指向一个特定的存储器地址,该地址一般存放Boot-loader,Bootloader在CPU和内存初始化后,把Linux内核从ROM设备中解压到内存,然后程序指针跳转到内核在内存的起始位,由Linux内核继续完成剩下的系统引导。内核在重新初始化系统后,就加载根文件系统,运行用户应用程序。图2为开发系统硬件设计框图。
系统硬件平台的核心处理器为S3C2410X,微处理器是一款由Samsung公司为手持设备设计的低功耗、高度集成的基于ARM7TDMI核的微处理器。为了降低系统总成本和减少外围器件,这款芯片中还集成有:16 KB指令Cache、16 KB数据Cache、MMU、外部存储器控制器、LCD控制器(STN和TFT)、NAND Flash控制器、4个DMA通道、3通道UART、1个12C总线控制器、1个I2S总线控制器,以及4通道PWM定时器和1个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、UsB主、USB从、SD/MMC卡接口等。该处理器广泛应用于PDA、移动通信、路由器和工业控制等领域。
软件系统设计必须与硬件平台紧密结合。S3C2410采用NAND Flash作为整个系统的程序存储区域,在系统启动时通过片上ROM的Bootload-er程序,从NAND Flash加载并执行外部引导程序来实现整个系统的启动步骤,整个软件系统采取图3所示的设计结构。
2 madplay MP3播放器的移植
2.1 系统部分代码
madplay主程序头文件信息数据结构如下:
[page]
2.2 安装及编译
本系统需要madplay源代码以及libid3tag库和libmad库,这里采用madplay-0.15.1b.tar.gz、libid3tag-0.15.1b.tar.gz和
libmad-0.15.1b.tar.gz,另外libid3tag库编译时需要zlib库。将文件拷贝到/home/cvteeh/jx2410/examples。其安装后的目录为:
其中,install目录是libid3tag和libmad库安装后的安装目录,madplay编译时必须正确指定该目录下的include和lib子目录为其inclu-de搜索目录和库文件搜索目录;libid3tag-0.15.1b为libid3tag库的源代码目录;libmad-0.15.1b为libmad库的源代码目录;libz为li-bz库安装目录,libid3tag库编译时使用;madplay-0.15.1b为madplay源程序目录;mkall为编译脚本。
在该目录下直接执行以下语句:
[root@localhost madplay]#./mkall
该脚本将编译libid3tag库、libmad库以及madplay。编译成功后在madplay-0.15.1b目录下生成madplay文件即为MP3播放器程序。
[page]
编译成功后将在madplay目录下生成mplayer文件,该文件为mplayer媒体播放程序:
[root@localhost madplay-0.15.1b]#cp madplay/tftpboot
下载运行。启动ARM9+Linux平台,用U盘中的MP3音频文件zgl.mp3,系统使用该文件进行测试:
将耳机插入SPK座,如果正常的话将听到歌声。
3 mplayer媒体播放器的移植
mplayer只支持16 bpp以上图形显示,而不支持8 bpp图形显示,因此,当mplayer程序运行在LCD配置为STN的教学系统时,只能播放声音,不能显示图形,而在LCD配置为TFT的教学系统时,既可以播放声音,又能显示图形。
以下为音视频同步代码
安装及编译结果如下:
在MPlayer-0.93目录下有一个脚本文件:mkall,这个文件为编译脚本。在该目录下直接执行:
[root@localhost MPlayer-0.93]#./mkall
该脚本将配置并编译mplayer,下面是该脚本所进行的配置和编译命令:
编译成功后将在MPlayer-0.93目录下生成mplayer文件,该文件为mplayer媒体播放程序。
[root@localhost MPlayer-0.93]# cp mplayer/tftpboot
下载运行。启动ARM9+Linux平台,用U盘中的mpeg视频测试。
将耳机插入SPK座,观察LCD显示器。测试系统是否有音视频输出。
4 结束语
本系统设计具有很好的移植性,其实现过程和核心的代码对同类应用有很好的通用性,只需要较小的修改就能移植到不同的操作系统和平台上,可以广泛使用在各种嵌入式系统中,如PDA,智能手机等方面,并具有较高的经济价值。该设计方案具有低耦合、高内聚、可扩展、可移植等良好特点,支持编码格式为MPEG-1、MPEG-2、MPEG-3和MPEG-4等多媒体文件。
关键字:嵌入式Linux ARM9 媒体播放
引用地址:
嵌入式Linux下基于ARM9的媒体播放的设计
推荐阅读最新更新时间:2024-03-16 12:36
基于s3c2410和嵌入式Linux的D/A转换的实现
1 引言 在嵌入式应用系统中,特别是智能仪器、仪表、机电设备及装置控制中,需要使用A/D转换将模拟的电量信号转换为数字信号进行处理,而后再将处理的结果通过D/A转换为模拟量实现对被控过程和对象的控制 。 基于ARM920T内核的s3c2410是一款低功耗,高性价比的处理器 。这款处理器内部集成了多种控制接口,自带8路10位的A/D转换器 ,用于支持对于触摸屏输入的控制,而且足以满足外部模拟量采集的需要,但是s3c2410内部没有集成D/A转换器,因此在上述应用中,就需要采用独立的D /A转换芯片与s3c2410配合,满足应用的需要。而MAX504一款通用的10位串行D/A转换器,可以满足一般应用对于分辨率和精度的要求,并且采用
[单片机]
基于嵌入式Linux与S3C2440双USB接口的视频存储
针对长途客车“三超”(中途超载上人,超时,超速)以及在非正常停靠站私自停车上人导致的客车超载,同时目前市面上视频监控设备由于体积大、成本高等,使其难以推广应用在车辆中等问题,整合USB摄像头低成本、USB存储介质较SD(Secure Digital Memory Card)卡存储速度更快、支持更大容量等优点,提出了基于嵌入式。Linux及S3C2440平台的双USB接口车载视频存储方案。本方案主要利用单片机判别模块采集车辆行驶过程中运动状态信息(是否超速,存在急刹车、中途停车超时等),并结合车门在车速为零时的开闭对长途客车在非正常停靠点超载上人进行主动视频监控,便于以后的责任追究和认定,为监控中心的管理提供辅助。
1
[嵌入式]
基于ARM9的机电设备检测终端研究与设计
机电设备检测终端系统集微处理器、数据采集、控制执行、通信接口、人机接口等模块于一体,达到实时监测机电设备状态的目的。 随着生产自动化水平的提高,机电设备在很多大型设备中处于核心地位,渐趋复杂,对其维护的要求越来越高,若机电设备的故障得不到及时的发现,整个大型装备的正常运行将会受到影响。根据设备实时检测数据和故障诊断为基础的维修具有针对性强,实时性高的优点。从而达到降低生产成本、提高企业效益的目的,极具研究前景。 1 机电设备检测终端系统硬件设计 机电设备检测终端控制结构框图如图1所示。主控模块是机电设备检测终端的核心,主要负责从信号采集模块获取机电设备的运行参数,对获得的数据进行相关分析与处理,显示机电设备的运行参数,定时
[单片机]
ARM9(S3C2440) LED控制
下面为TQ2440开发板的硬件LED接口: LED控制思想 1、将相应的引脚设置为输出 2、再将相应的引脚设置为低电平 代码实现 src: inc: 2440init.s为开发板开启首先运行的代码。目的:初始化C语言环境。 ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables 。。。。。。 。。。。。。 IMPORT MMU_SetAsyncBusMode IMPORT MMU_SetF
[单片机]
基于ARM9的音频系统设计
1 引言
随着 Internet技术和多媒体技术的快速发展,语音通信技术的应用越来越广泛,也越来越受到重视 。如今的嵌人式设备日益复杂化,功能比以前更加丰富,性能也越来越高。在多种嵌人式终端产品中,音频处理功能已成为不可缺少的重要组成部分,高质量的音效是当前发展的重要趋势。
本文利用 ATMEL公司 的 AT91RM9200型微处理器 和 Philips公司的 UDA1341型立体声音频编解码器设计了一种嵌入式音频系统。该嵌入式音频系统硬件部分采用基于IIS总线的音频系统体系结构,其主要硬件电路后文作了详细的介绍。软件上,笔者以嵌入式Linux操作系统作为平台,重点介绍该音频系统在此平台下的驱动程序的实现。
[嵌入式]
基于ARM9处理器的ZigBee工业以太网网关设计
引言 目前多标准多协议共存的场合应用增多,而充当协议转换桥梁作用的网关起到了关键作用当前比较流行的两个本地无线技术无疑是Wi-Fi 和蓝牙,但是,对于低功耗、低带宽的控制类应用,诸如工厂内的传感器网络,ZigBee 或许是个更好的选择。配备一个功能强大的处理器后,ZigBee 可以在低功耗、低带宽的限制下高效完成很多复杂的应用。 ZigBee 因其低成本、低功耗、组网灵活等众多优势,成为工业无线通信技术中备受关注的技术之一。ZigBee 是一种低速网络,传输速度为10KB/S~250KB/S,多样的互联方式使得组网方式灵活而稳健。 文章介绍一种基于AT91SAM9260 的ZigBee 工业以太网网关设计,
[单片机]
基于ARM9的伪指令汇总
伪指令 注意:不同的IDE,伪指令也会有很大差别;但是汇编指令是一样的; 伪操作标识符: 功能:为汇编程序完成各种准备工作; 特点:特殊的指令助记符但与指令系统的助记符不同,没有对应的源操作码; 伪操作:伪操作符所完成的操作; 特点:只在汇编(编译)的时候伪操作发生作用,计算机运行的时候并没有位操作的参与,一旦汇编(编译)结束,伪操作的使命就完成了; 常用伪操作的分类 符号定义伪操作 功能:用来定义ARM汇编中的变量,对变量赋值以及定义寄存器的别名等操作。常用的有以下4种: 定义全局变量:GBLA,GBLL,GBLS 定义局部变量:LCLA,LCLL,LCLS 对变量赋值:SETA,SETL,SETS 为通用寄存器列表定义名称RL
[单片机]
基于ARM9处理器的嵌入式指纹识别系统设计
0 引言 指纹鉴定是人身识别最重要的手段之一, 指纹自动识别系统给指纹鉴定工作提供了一个新的平台, 并使指纹自动识别系统在身份认证方面具有更广阔的前景。目前, 自动指纹识别系统一般都是联机的, 大多数系统都选用指纹传感器来采集, 并以计算机(PC) 作为主机来处理, 从而对指纹进行匹配。而本文提出的基于ARM9的嵌入式指纹识别系统则是把采集和处理集于一身的独立系统, 因而可以做得很小, 比较适合用于高档汽车门、防盗门以及公*勤系统等场合。嵌入式系统是指以应用为中心, 以计算机技术为基础, 软硬件可裁剪, 其应用系统对功能、可靠性、成本、体积和功耗等要求都比较严格的专用计算机系统。本文选用SAMSUNG的S3C2440A作为嵌入式指
[单片机]