基于嵌入式linux下的madplay音频播放器设计论文(编辑修改稿)内容摘要:

性能稳定,源代码免费,将大大减少开发商的成本,更具市竟争力。 本文设计的播放器是基于嵌入式 Linux 操作系统进行设计。 嵌入式 Linux 是按照嵌入式操作系统的要求而设计的一种小型操作系统。 相对于 WinCE、 pSOS、 palm05 等商用实时操作系统 (RTOS)它具有源码开放、滁州职业技术学院计算机应用技术专业毕业论文 4 易移植、模块化、资源丰富等优势。 支持 多线程、多进程;支持多种平台,如 x8 PowerPC、ARM、 MIPS 等等。 如图 211 所示,它是由一个内核和一些可以定制系统模块组成,如文件模块,网络模块,各种驱动模块等。 针对本应用,对其进行了裁剪和配置,只包含了系统所需的模块支持 ext2\jffs2 等文件系统;内存驱动模块提供内存管理功能;网络接口模块支持以太网接口; GPIO 驱动模块主要是提供给键盘和触摸屏使用;图形驱动模块是图形用户界面( GUI)和图像显示的底层支撑模块;音频设备输出驱动模块支持音频数据的数模转换。 图 22 嵌入式 Linux 体系结构 引导装载程序 BootLoader 就是在操作系统内核运行之前运行的一段小程序。 通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 最终, bootloader 把操作系统内核映像加载到 RAM 中,并将系统控制权传递给它。 Bootloader 程序与硬件平台有很强相关性,不同开发板需要不同的 bootloader。 与Linux 一样,网上有很多开放源代码的 bootloader,在为自己的开发板写 bootloader 程序时,可以先找到与硬件平台相类似的 bootloader,然后只要做一些改动就可以在开发板上运行了。 Bootloader 的功能相当于一个通信控制器,有了它之后,才可以通过串口或网口完成内核的加载和应用程序的烧写。 当然,利用 JTAG 技术也可以完成上述任务,但是, JTAG烧写速度很慢 [12]。 本系统采用的是 Superboot, Superboot 在嵌入式系统中相当于 PC机的 BI0S 加上操作应用程序 文件系 统驱动模块 内存驱动模块 网络驱动模块 GPIO驱动模块 图形驱动模块 音频输出驱动模块 嵌入式 Linux 内核 硬件平台 滁州职业技术学院计算机应用技术专业毕业论文 5 系统引导头部的内容,并且引导操作系统进行装载和运行, Superboot 启动后有一系列的命令,使得我们能够方便地对 FLASH、 RAM进行操作,同时 Superboot 己经对系统的频率、定时器进行了设置,初始化了一个调试串口,这样可以通过串口或以太网进行数据的下载。 Superboot 的主要特点如下表所示 [13]: 宿主机开发环境配置 ( 1)安装 Linux 系统宿主开发环境,我们选用在 windows 下安装 VMware WorkStation虚拟机 + 的组合来组建 描述 支持 SD 卡脱机烧写 (根据配置文件 ),速度极快 ()  烧写 WinCE(50M)仅需 26秒  烧写 Android(80M)仅需 42 秒  烧写 Linux(220M)仅需不到 2分钟 支持 SD 卡脱机烧写 UBIFS 格式映像文件 (Android 系统专用 ) 支持 USB 一键烧写 支持任意大小的文件烧写,不受限于内存大小 支持 USB 下载裸机程序到内存运行,对调试十分有用 支持 MLC/SLC 等多种 Flash 类型,自动识别 烧写和运行均支持自动探测一线显示屏型号,即插即用 支持“拷贝到 SD 卡即可运行” (Linux/WinCE/裸机程序 /Ubuntu) 滁州职业技术学院计算机应用技术专业毕业论文 6 滁州职业技术学院计算机应用技术专业毕业论文 7 第三章交叉开发环境的建立过程 交叉开发环境 嵌入式系统通常是一个资源受限的系统,无法直接在嵌入式系统的硬 件平台上进行相关的软件开发工作,因此必须采用一种特殊的开发模式即 交叉开发。 ( 1) 交叉开发是指在一台通用计算机上进行软件的编辑、编译,然后下载到嵌入式设备中运行调试的开发方式。 用来开发的通用计算机可选用比较常见的PC,运行通用的 Windows、 Linux 等操作系统。 开发计算机一般称为宿主机,嵌入式设备被称为目标机。 ( 2)嵌入式系统软件不同于通用计算机的软件开发,需要建立一个交叉开发环境,属于跨平台的开发。 交叉开发采用的解决办法是:在宿主机上进行内核及文件系统的裁剪并编写应用程序,然后通过交叉编译,生成目标 机上可以运行的二进制代码格式,最后再下载到目标机上的特定位置上运行。 ( 3) 嵌入式系统开发分为软件开发部分和硬件开发部分。 嵌入式系统在开发过程一般都采用如图 所示的 “ 宿主机 /目标板 ” 开发模式,即利用宿主机 (PC机 )上丰富的软硬件资源及良好的开发环境和调试工具来开发目标板上的软件,然后通过交叉编译环境生成目标代码和可执行文件,通过串口 /USB/以太网等方式下载到目标板上,利用交叉调试器在监控程序运行,实时分析,最后,将程序下载固化到目标机上,完成整个开发过程。 嵌入式交叉开发环境的建立方法 Linux 下 gcc、 g++等编译器编译完成的可执行程序,能够在 PC 机内执行,但不一定能够在 ARM 目标机上执行,因此需要通过交叉编译的方式进行软件开发,把在 PC 机上编译的程序,放到目标机上执行,所以采用交叉编译器, Tiny6410开发板提供了 版本的交叉编译器。 方法: 滁州职业技术学院计算机应用技术专业毕业论文 8 (1) 在 linux下把 夹下,进行解压, tar zxvf – C / 即把 解压到根目录下,解压完成后在根目录下有 opt 目录,即交叉编译链所在的目录:/opt/FriendlyARM/toolschain// (2)配置环境变量: sudo Vi /root/.bashrc 打开 /root/.bashrc 文件后,在最后一行添加如下路径: export PATH=$PATH:/opt/FriendlyARM/toolschain/路径一定写绝对路径 保存,并退出。 (3)重新启动环境变量: sudo source /root/.bashrc滁州职业技术学院计算机应用技术专业毕业论文 9 (4)查看交叉编译器的版本号: 第 四 章 硬件开发平台的介绍 本设计使用的硬件开发平台是友善之臂的 mini6410 开发板,此平台由核心板和外设板组成,下面分别对这两部分进行介绍。 核心板 核心板如图 21 所示,板上集成 Samsung S3C6410 处理器, 1G 的 FLASH 和256M 的 DDR RAM,它能为我们的研发、应用提供足够的空间。 滁州职业技术学院计算机应用技术专业毕业论文 10 图 21 核心板 Tiny6410 是一款以 ARM11 芯片 (三星 S3C6410)作为主处理器的嵌入式核心板,该 CPU 基于 ARM1176JZFS 核设计,内部集成了强大的多媒体处理单元,支持 Mpeg4, ,可同时输出至 LCD 和TV显示;它还。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。