基于TQ2440和Qt的Mp3设计 精品.docx

上传人:b****5 文档编号:14419751 上传时间:2023-06-23 格式:DOCX 页数:30 大小:2.27MB
下载 相关 举报
基于TQ2440和Qt的Mp3设计 精品.docx_第1页
第1页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第2页
第2页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第3页
第3页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第4页
第4页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第5页
第5页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第6页
第6页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第7页
第7页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第8页
第8页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第9页
第9页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第10页
第10页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第11页
第11页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第12页
第12页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第13页
第13页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第14页
第14页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第15页
第15页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第16页
第16页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第17页
第17页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第18页
第18页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第19页
第19页 / 共30页
基于TQ2440和Qt的Mp3设计 精品.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于TQ2440和Qt的Mp3设计 精品.docx

《基于TQ2440和Qt的Mp3设计 精品.docx》由会员分享,可在线阅读,更多相关《基于TQ2440和Qt的Mp3设计 精品.docx(30页珍藏版)》请在冰点文库上搜索。

基于TQ2440和Qt的Mp3设计 精品.docx

基于TQ2440和Qt的Mp3设计精品

CHAPTERIII

ON-LINEPATHSMOOTHINGUSINGPATHTEMPLATES

3.1Introduction

Guidanceandnavigationcontrolofmobileagentshasbeenanimportantresearchtopicforseveraldecades.Inparticular,forunmannedaerialvehicles(UAVs),theabilityoffullyautomatedguidanceandnavigationcontrolallowstheUAVstoaccomplishmissionsundervariouscircumstanceswithminimalhumanintervention.Asamatteroffact,becauseofthestringentoperationalrequirementsandtherestrictionsimposedonUAVsbyautonomy,safety,efficiency,etc.,acompletesolutiontofullyautomatedguidanceandnavigationcontrolofUAVsischallenging.Manyresearcherssuggestthatbreakingtheproblemintoseveralsubproblemssuchaspathplanning,trajectorysmoothing,trajectorytracking,andetc.,makesiteasytosolvebyahierarchicalcontrolstructure[93,10,94].

Itisassumedthataplannedpathisgivenbyaseriesofway-pointsfromthetoplevelpathplanner.Traditionally,asimpleimplementationoftheway-pointstrackingcontrolisusedforguidancepurpose.AbetterimplementationoftheguidanceandnavigationcontrolincorporatesasmoothpathbytakingintoaccountthedynamicconstraintsofUAVs.Theway-pointscanthenbeconnectedtogeneratesmoothpathsegments,whichpreservesthecontinuityofcurvaturebetweenlineandarcsegmentswhileminimizingthemaximumcurvatureonthecurve[61,122].InRef.[6],theauthorsproposedadynamictrajectorysmoothingalgorithmbywhichthepathsegmentsinstraight-linesaresmoothedtoyieldanextremaltrajectorywithexplicitconsiderationofthekinematicconstraintofafixed-wingUAV.

翻译:

第三章

使用路径模板的即时的轨迹平滑

3.1简介

制导与导航控制移动代理一直是近几十年一个重要的研究的主题。

尤其是,无人驾驶飞行器(无人机),

完全自动化的制导和导航控制能力允许无人机完成

在各种情况下用最少的人工干预的任务。

事实上,对无人机的自主性,安全性,效率等

由于严格的操作要求和限制,完整的解决方案强加给

完全自动化的制导和导航控制的无人机是一项挑战。

许多研究者

建议分成几个子问题,如路径规划问题,轨迹平滑,轨迹跟踪,等,使得它很容易解决分层控制结构。

假设,有计划的航迹是由一系列从顶层的航迹节点的

航迹规划。

传统上,航迹节点的目的是用于指导实现跟踪控制。

一个更好地的实施和导航控制采用应该考虑到动态的平滑过渡和

无人机的限制。

然后可以连接到生成平滑的航迹节点

航迹段,保留的曲率之间的直线和圆弧的连续性

段,同时尽量减少曲线上的最大曲率[61,122]。

文献。

[6]

作者提出一个动态的航迹平滑算法的路径

在平直的线路段平滑明确的产量与极值轨迹

固定翼无人机的运动约束的考虑。

 

第一章总体方案设计与论证

1.1系统硬件平台选择

方案:

采用2440开发板,2440是天嵌科技有限公司开发的嵌入式系统开发平台,本开发板采用ARM9系列芯片S3C2440作为主控芯片,搭配3.2英寸液晶触摸屏,以及自带音频解码芯片,配有丰富的硬件接口,是当今最热门的开发开发平台之一。

该开发板可以实现车载GPS,以及MP3音乐播放器,MP4视频播放器等高端消费电子产品。

用本开发板实现MP3播放器的整体思路是,在移植操作系统的基础上,只需添加SD卡相关驱动和液晶触摸屏的相关驱动,便可以轻松挂载SD卡外设,实现SD卡中文件的快速读取,并通过相关软件设计出又好的图形用户接口,用户只需通过触摸屏幕,便可实现和平台的交互。

并且,2440开发板自带音频解码芯片UDA1341,能够完全胜任MP3的解码工作,该方案的系统框图如图1.2所示。

图1.2方案二系统框图

方案论证:

方案一硬件成本低廉,实现简单,但是单片机处理能力有限,对于高码率的MP3歌曲以及视频播放就显得力不从心。

方案二硬件成本高,但是系统扩展性强,不只可以通过相关软件设计出友好的界面以实现MP3的歌曲播放,还可以进一步播放视频,甚至可以实现网页浏览等高端功能。

综合比较以上三种方案,却顶采用方案二。

1.2系统软件件平台论证与选择

方案一:

不带任何操作系统,在2440上直接开发基于硬件层的程序,程序中同时实现数据的读取、信息输出、指令输入、音频解码等工作。

该方案同选择单片机作为硬件平台类似,但是因为ARM9芯片S3C2440的性能远远高于高性能单片机,所以完全能够完成高码率音频解码,以及信息输出等功能。

软件系统结构如图1.3所示。

图1.3方案一无操作系统的结构框图

方案二:

采用MicroSoft公司的WindowsCE操作系统。

WindowsCE关于VC++5.0开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,以使OEMS能够对特定的硬件平台使WindowsCE标准定制。

在应用程序开发方面,使用标准Win32API子集,很多Windows程序可以方便的移植到CE上,还支持.net等语言。

在底层开发方面CE文档比较完善,MSDN提供了详细的参考资料,并且在应用程序开发方面,都有完善的IDE,开发难度低。

结构框图如图1.4所示。

图1.4WinCE系统结构框图

方案三:

采用开源的Linux系统。

Linux操作系统具有诸多优点,并且内核可裁剪,在满足系统要求的同时,具有高度的可移植性,由于嵌入式设备硬件平台的多样性,CPU芯片的快速更新,嵌入式操作系统要求支持常用的嵌入式CPU,如X86,ARM,MIPS,POWERPC等,并具有良好的可移植性。

另外还需要支持种类繁多的外部设备。

Linux支持以上几乎所有的主流芯片,并且还在不断的被移植到新的芯片上,嵌入式系统具有成本敏感性,处理器速度较低,存储器空间较少,这要求嵌入式OS体积小,速度快。

Linux体系结构比较灵活,易于裁减,可以小到2Mflash,4MRAM。

基于Linux的操作系统结构框图如图1.5所示。

图1.5Linux系统结构框图

方案论证:

方案一不需要移植系统,但是却要面对硬件层进行编程,必须了解所用硬件的所有接口信息和特性,所有控制程序必须自行编写,工作量大。

方案二中采用的WindowsCE系统,目前并没有免费版本,如需使用,则必须支付一定的费用,增加了系统开发成本。

方案三采用开源的Linux系统,不需要额外支付系统费用,并且具有高度可移植性与可裁剪性,综上所述,确定采用方案三。

第2章构建计算机开发平台

2.1计算机平台系统安装

Linux是一类Unix计算机操作系统的统称。

Linux操作系统的内核的名字也是“Linux”。

Linux操作系统也是自由软件和开放源代码发展中最著名的例子。

严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

Linux得名于计算机业余爱好者LinusTorvalds。

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于x86系列CPU的计算机上。

这个系统是由世界各地的成千上万的程序员设计和实现的。

其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

REDHAT创建于1993年,是目世界上最资深的Linux和开放源代码提供商,同时也是最获认可的Linux品牌。

RedHatLinux是商业上运作最成功的一个Linux发行套件,普及程度很高,由RedHat公司发行。

RedHatLinux有一个图形化的安装程序Anaconda,目的是为了令新手更容易使用。

同时,它有一个内建的防火墙设置工具Lokkit。

由RedHatLinux8.0开始,UTF-8成为了系统默认的字符编码设定。

这对于英语用户来说无甚影响,但当用到ISO/IEC8859-1字符集的较高位置字符时,编码方式则完全不同。

对于部分法语或瑞典语的用户来说,这是一个冒犯性的举动,因为他们的旧文件系统在这个设定下有可能变得不稳定。

这问题可以透过移除"LANG"设定中的".UTF-8"来解决。

2.2虚拟机的介绍与安装

由于Linux的兼容性差,目前很多常用软件并不支持在Linux平台上运行,这就导致如果直接安装Linux,那么在Linux环境中,将会有很多不便。

因此,我们在此采用虚拟机下安装Linux的方案。

虚拟机的工具我们选择VmwareWorkstation。

VMwareWorkstation允许操作系统(OS)和应用程序(Application)在一台虚拟机内部运行。

虚拟机是独立运行主机操作系统的离散环境。

在VMwareWorkstation中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。

你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机—这一切不会影响你的主机操作和任何操作系统或者它正在运行的应用程序。

VMwareWorkstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发测试部署新的应用程序的最佳解决方案。

VMwareWorkstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。

对于企业的IT开发人员和系统管理员而言,VMware在虚拟网路,实时快照,拖曳共享文件夹,支持PXE等方面的特点使它成为必不可少的工具。

2.3其它常用工具的介绍与安装

其它常用的软件包括Qt、Qtopia、Busybox等。

Qt是一个跨平台的C++图形用户界面应用程序框架。

它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。

Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。

Qt也是流行的Linux桌面环境KDE的基础,KDE是所有主要的Linux发行版的一个标准组件。

Qtopia是Trolltech公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台,Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。

Qtopia的特性如下所示:

窗口操作系统、游戏和多媒体、工作辅助应用程序、同步框架、PIM应用程序、Internet应用程序、开发环境输入法、Java集成、本地化支持、个性化选项、无线支持。

第三章开发板系统搭建

搭建Linux系统,首先需要在相关网站获得相应源码,下载得到的源码一般为通用源码,但是在一些个别方面仍不能完全匹配我们的硬件平台,所以得到源码后,首先要进行源码的修改,以做到与2440开发板的完全匹配。

源码修改完成后,就要对我们需要用到的硬件模块进行系统上的支持,也就是移植相应设备的驱动,详细过程下文一一给出。

3.1Linux源码修改

ftp//:

ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.8.tar.ba2下载内核源码,目前最新的是2.6.30.4这个版本(2009年7月30日)。

Linux移植的主要步骤有:

(1)解压系统源码;

(2)在系统中添加对ARM的支持;(3)修改平台输入时钟;(4)制作2440配置单;(5)修改机器码;详细过程如下所述。

(1)解压系统源码。

解压内核源码到PC中,使用解压命令:

#tarxvfjlinux-2.6.25.8.tar.bz2–C/opt/EmbedSky/,然后解压到PC的/opt/EmbedSky/目录下。

(2)在系统中添加对ARM的支持。

进到内核源码,修改“Makefile”文件,在第193行“ARCH?

=(SUBARCH)”和194行“CROSS_COMPILE?

=”,将其修改为“ARCH=arm”和“CROSS_COMPILE=arm-linux-”,然后保存。

也可以在第一次使用“makemenuconfig”命令时添加如下参数后代替前面这个步骤的:

“makeARCH=armCROSS_COMPILE=arm-linux-menuconfig”

(3)修改平台输入时钟。

修改平台的始终频率,以满足2440的工作频率。

修改内核源码“arch/arm/mach-s3c2440/mach-smdk2440.c”文件的162行,把16.9344MHZ改为12MHZ,因为2440使用的是12MHZ的外部时钟源输入,即把16934400改为12000000。

如下图所示:

图3.1修改系统晶振

然后保存刚刚设置好的参数,然后就可以开始尝试编译出镜像使其运行到开发板中输入:

#makemenuconfig,然后进入配置菜单界面,如下图所示:

图3.2配置单选项

(4)制作2440的配置单。

先调用自带的一个默认配置单,该配置单在内核源码的“arch/arm/configs”目录下面,名为:

“s3c2410_defconfig”,该配置文件里面选择了几乎所有的和S3C24XX系列CPU相关的配置选项,可以在该配置单的基础上进行配置。

在配置菜单中选择选项:

“LoadanAlternateConfigurationFile”,然后调用刚刚说到的那个配置文件,如下图:

图3.3储存配置单

然后进入到如下界面,输入刚刚提到的路径和配置文件名称,回车即可。

图3.4储存配置单

然后返回到配置界面,进入到“SystemType”选项下的配置单:

图3.5选择系统类型

然后配置各个平台。

然后对是否支持EABI进行选择,由于在Linux系统中使用的是4.3.3的编译器,所以要在“UsetheARMEABItocompilethekernel”和“AllowoldABIbinariestorunwiththiskernel(EXPERIMRNTAL)”两项选定。

然后选择选项:

“SaveanAlternateConfigurationFile”,将其保存为:

“.config”文件,因为编译系统时会调用该文件。

如下图所示:

图3.6保存配置单并退出

保存为“.config”文件后,退出配置单。

(5)修改机器码。

在2440使用的uboot中设定了机器码为168,所以内核这里需要修改机器码,否则会出现不能启动的情况。

机器码保存在内核源码的“arch/arm/tools/mach-types”文件中,在文件的379行,把原来的362改为168保存即可。

3.2相关驱动移植

3.2.1NandFlash驱动移植

Linux里面已经做好了NandFlash的驱动,只要进行简单的修改就可以了。

添加NAND分区表到内核。

(1)#vimarch/arm/plat-s3c24xx/common-smdk.c。

(2)修改结构smdk_default_nand_part,添加自己的分区表信息。

(3)在内核配置选项中,选择DeviceDrivers->MTDsupport->NANDDeviceSupport->NANDFlashsupportforSamsungS3CSoCs和SamsungS3CNANDHardwareECC;同时需要在MTDsupport中选择MTDpartitioningsupport(支持分区)、Commandlinepartitiontableparsing、DirectchardeviceaccesstoMTDdevices和CachingblockdeviceaccesstoMTDdevices。

MTDsupport选择项中只需要选择这些就可以了,别的都可以去掉。

3.2.2添加yaffs2文件系统到内核

(1)从相关网站上下载最新的yaffs源代码包。

(2)解开yaffs源码包后,有两个目录分别为yaffs和yaffs2。

之后进入yaffs2,执行如下命令:

#patch-ker.shc

(3)在内核配置选项中,选择FileSystems->Miscellaneousfilesystems->YAFF

S2filesystemsupport。

3.2.3网卡驱动移植

DM9000网卡驱动的移植。

2.6.31.5中自带的dm9000.c可以满足2440开发板上的DM9000网卡的要求,因此可以以2.6.31.5自带的dm9000为基础进行移植。

下面是具体的移植步骤:

(1)添加网卡驱动的平台数据信息,包括:

网卡的资源(地址资源、数据资源以及中断号等)、数据位数、网卡名称等。

(2)导出s3c_device_dm9k变量。

编辑arch/arm/plat-s3c/include/Plat/devs.h

文件,具体添加内容如下:

externstructplatform_devices3c_device_dm9k。

(3)添加s3c_device_dm9k到平台设备数组。

编辑arch/arm/mach-s3c2440/mach-

smdk2440.c文件,具体添加内容如下:

staticstructplatform_device*smdk2440_devices[]__initdata=

{

&s3c_device_usb,

&s3c_device_lcd,

&s3c_device_wdt,

&s3c_device_i2c0,

&s3c_device_iis,

&s3c_device_rtc

&s3c_device_dm9k, //添加dm9000到平台设备数组    

}        

(4)修改dm9000.c文件。

由于在common-smdk.c中设置了dm9000使用的系统资源是CS4,因此需要根据dm9000的芯片手册来设置BWSCON和BANKCON4寄存器。

另外由于dm9000网卡中断信号为上升沿,因此需要在网卡注册中断前设置中断信号为上升沿有效。

3.2.4SD卡驱动移植

SD卡移植。

2.6.31.5内核对SD卡的支持已经很好了,因此只需要简单的修改以及配置必要的内核选项即可。

(1)修改mmc驱动。

drivers/mmc/host/s3cmci.c文件的s3cmci_probe()函数中需要修改CardDetect中断号,根据开发板的设置此中断号为EINT16,对应s3c2440为GPG8引脚。

具体添加内容如下:

host->irq_cd=s3c2410_gpio_getirq(host->pdata->gpio_detect);   

//添加irq_cd的中断号为IRQ_EINT16且设置GPG8脚为16号中断的输入引脚

host->irq_cd=IRQ_EINT16; 

s3c2410_gpio_cfgpin(S3C2410_GPG(8),S3C2410_GPG8_EINT16); 

(2)修改系统初始化硬件设备列表。

arch/arm/plat-s3c24xx/common-smdk.c的smdk_devs数组中需要添加s3c_device_sdi设备。

使得MMC/SD设备在系统开机时能正确加载。

(3)在内核配置中添加对S3CMMC/SD的支持。

3.2.5USB驱动移植

(1)支持U盘。

2.6.31.6内核已经对USB设备进行了很好的支持,不需要修改任何代码,只需要在配置内核的时候注意选择必须的选项即可。

除了devicedriver中USB模块外还需要对SCSI和HID部分进行特殊处理。

具体设置如下:

    SCSI:

SCSIsupport、SCSIdisk和SCSICDROM

    HID:

fullHID和rawHID

 

(2)USB从设备。

2.6.31.6内核已经支持USB从设备,需要在配置内核时选择devicedriver->USBsupport->USBGadgetsupport(编译进内核),以及其下的USB片上外设控制器为S3C2410、USBGadgetdriver和File-backedStoragesupport(这两项编译成模块,需要动态加载)。

除了内核配置外,还需要对USBGadget平台设备进行必要的设置。

编辑arch/arm/mach-s3c2440/mach-smdk2440.c文件。

3.3编译镜像

完成以上配置后,在终端中输入“#makezImage”,就可以进行编译了,编译完毕后,会在内核源码的“arch/arm/boot/”目录下面生成名为“zImage”的镜像,然后将其烧写到开发板中。

3.4构建文件系统

3.4.1构建框架

在”/opt/EmbedSky/”目录下面建立一个“root_2.6.30.4”的目录,复制编译出来的busybox“bin”的目录、“sbin”目录、“usr”目录和“linuxrc”到“root_2.6.30.4”目录下,然后新建“dev”、“etc”、“home”、“lib”、“mnt”、“opt”、“

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2