嵌入式视频点播系统的研究

上传人:仙*** 文档编号:34096592 上传时间:2021-10-20 格式:DOC 页数:50 大小:624.31KB
收藏 版权申诉 举报 下载
嵌入式视频点播系统的研究_第1页
第1页 / 共50页
嵌入式视频点播系统的研究_第2页
第2页 / 共50页
嵌入式视频点播系统的研究_第3页
第3页 / 共50页
资源描述:

《嵌入式视频点播系统的研究》由会员分享,可在线阅读,更多相关《嵌入式视频点播系统的研究(50页珍藏版)》请在装配图网上搜索。

1、基于基于 s3c2440 的嵌入式视频点播系统的研究的嵌入式视频点播系统的研究与实现与实现 摘摘 要要VOD 是 Video On Demand 的缩写,即视频点播的意思。顾名思义,它是一种可以按用户需要点播节目的交互式视频系统,或者更广义一点讲,它可以为用户提供各种交互式信息服务。交互式视频点播系统一般由 VOD 前端处理系统、传输网络、用户机顶盒三个部分组成。交互式 VOD 集互联网、多媒体、通讯等多种技术于一体,向用户提供包括数字电视在内的多种交互式服务的崭新技术。本论文实现了一款基于 ARM Linux 操作系统和 Qt/Embedded 图形系统的嵌入式视频点播系统。该系统提供美观、

2、友好的图形用户界面。用户可方便地进行播放、停止、暂停、选曲等操作。mplayer 播放器输出的音频视频品质优良。本设计将研究目标定位是设计一个网络机顶盒+液晶屏的视频点播系统。采用的硬件环境为国内外广泛使用的 ARM9 处理器 S3C2440,操作系统采用的是嵌入式 Linux 家族中的 ARM Linux,着重阐述了视频点播系统的原理、设计方案,硬件模块和软件模块的实现方法。关键字: VOD ,ARM,Linux,操作系统,嵌入式,视频点播系统ABSTRACT The project achieved an operating system based on ARM Linux and Qt

3、 / Embedded graphics system of the embedded video on demand system. The system provides beautiful, friendly graphical user interface. Users can easily play, stop, pause, song selection and other operations. mplayer video player, audio output quality. Video On Demand VOD is the acronym that means vid

4、eo on demand. As the name suggests, it is a need for on-demand programming can be users of the interactive video system, or a little more broadly speaking, it can provide users with a variety of interactive information services. Interactive video-on-demand systems are generally the front-end VOD sys

5、tem, transport network, the user set-top box composed of three parts. Internet VOD set of interactive, multimedia, communications and other technology, and to provide users, including a variety of interactive digital television services, including new technology. The design of the study is to design

6、 a network targeting set-top box + LCD screen video on demand system. Hardware environment used widely used at home and abroad ARM9 processor S3C2440, embedded Linux operating system is used by the family of ARM Linux, Focused on the VOD system theory, design, hardware modules and software modules I

7、mplementation.KEY WORDS: VOD, ARM, Linux, operating system, embedded, video on demand system目目 录录第一章 绪论.61.1 嵌入式系统概述 .71.3 项目内容和实现关键部分说明 .8第二章 系统总体设计.92.1 系统概述 .92.2 服务器端设计 .102.2.1 FTP 服务器.102.2.2 目录服务器.102.3 客户端设计框架 .102.4 ARM 微处理器.102.4.1 ARM 概述 .102.4.2 ARM 微处理器的特点 .102.4.3 ARM 微处理器系列 .112.5 嵌入式

8、操作系统 .122.5.1 嵌入式系统软件结构体系.122.5.2 嵌入式操作系统简介.122.5.3 Linux 操作系统简介.132.6 QT/EMBEDDED用户界面.15第三章 系统硬件设计.173.1 嵌入式系统硬件结构 .173.2 UTU2440 结构.173.3 UTU2440 硬件资源.193.4 S3C2440 简介 .19第四章 系统软件设计.214.1 搭建嵌入式 LINUX开发环境.214.1.1 建立交叉编译工具链.224.1.2 超级终端.234.1.3 NFS 配置.234.2 BOOTLOADER移植.234.3 LINUX内核配置移植.264.3.1 Lin

9、ux 内核结构.264.3.2 Linux 内核配置.274.3.3 Linux 内核编译.304.4 根文件系统制作 .314.4.1 文件系统结构.314.4.2 常见的嵌入式文件系统简介.324.4.3 建立根目录和拷贝动态链接库.334.4.4 交叉编译 busybox.334.4.5 交叉编译 bash.334.4.6 建立系统配置文件.344.5 MPLAYER播放器移植 .344.6 目录服务器 .34第五章 用户界面部分.365.1 建立 QT/EMBEDDED开发环境.365.1.1 编译基于 PC 的开发环境的程序.365.2 各响应函数流程图分析 .385.2.1 窗口

10、1 各响应函数流程图分析.385.2.2 窗口 2 各响应函数流程图分析.395.2.3 窗口 3 各响应函数流程图分析.415.2.4 窗口 5 各响应函数流程图分析.43|附录: 各用户界面操作概述.456前前 言言随着我国电子工业越来越发达,尤其是消费电子方面表现爆发式的发展,但又面临存储资源的制约,为了弥补这一资源缺口,工程师们都想出了各自的办法,往资源共享方面开发实用的项目,其中比较流行的是多媒体网络共享。利用网络载体,可以方便快捷的传输想要的信息和资源,比如利用网络教学,可以减轻师资、教材、实验设备等教学资源的压力,学生可以根据自己的实际情况安排学习计划和学习进度,做到个性化教育。

11、然而学校为了能使学生享受网络教学,就要建设多大型机房和购买大量的计算机,那将耗费一笔不少的费用,这对于普通的学校来说,是比较难于承受的。同时,学生在接受多媒体网络教学时,都要随身带着体积庞大的计算机,这样就难以达到随时随地学习的目的;还有就是手机点播功能人们就不用携带大容量的存储设备都可以随时随地的享受语言图像带来的视觉听觉享受,大量节省人们的费用。本文设计的嵌入式视频点播系统将有效地缓解消费电子存储资源的困难,本系统把嵌入式和流媒体技术结合在一起,具有体积小、操作方便、成本低、稳定性好等优点,能安装在图书馆、教学、手机视频播放等场合。7第一章第一章 绪论绪论1.1 嵌入式系统概述嵌入式系统概

12、述嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。当前先进的嵌入式系统,通常由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及嵌入式应用程序四个部分组成,实现对其它设备的控制、监视、管理等功能。在物理结构和外观上,可根据具体应用的特点,以箱体、单板、单片或者分布结点等形式嵌埋于应用系统或者设备中。狭义而言,人们一般将深埋在宿主设备中的、使用者不可见的微处理器系统,称为嵌入式系统,常见的单片机系统就是一种典型的初级嵌入式系统。广义而言,

13、若计算机作为某种技术过程的核心处理环节,直接与外界自然的接口和互动,按照环境事件的节拍主动、协调地做出响应,则可以认为该计算机被“嵌入”到这个具体的技术过程中,称为一种嵌入式计算机。根据应用所强调的属性的不同,可以将这种计算机基于 ARM Linux 和 Qt/Embedded 的嵌入式视频点播系统的研究和实现应用系统,称为嵌入式系统、实时系统或者嵌入式实时系统。包含嵌入式计算机,实现这种技术过程的系统,就可以看作为嵌入式系统。嵌入式计算机系统广泛地应用于办公自动化、消费、通信、汽车、工业和军事领域。典型应用包括:过程控制、网络通信、智能仪器、消费电子、计算机外设以及军事电子等。嵌入式系统的核

14、心是嵌入式微处理器。嵌入式微处理器一般就具备以下 4 个特点: 1)对实时任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。 2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 3)可扩展的处理器结构,以能最迅速地开发出满足应用的最高性能的嵌入式微处理器。 4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有 mW 甚至 W 级。 8嵌入式计算

15、机系统同通用型计算机系统相比具有以下特点: 1.嵌入式系统通常是面向特定应用的嵌入式 CPU 与通用型的最大不同就是嵌入式CPU 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,能够把通用 CPU 中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 2.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 3.嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样

16、的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。 4.嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 5.为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 6.嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。 7.目前,嵌入式系统多用于手机等操作系统的开发。具有巨大的市场潜力1.3 项目内容和项目内容和实现关键部分说明实现关键部分说明根据目前

17、国内外对嵌入式的研究和开发,结合实际的实验条件,本文用硬件平台为扬创科技有限公司开发的 utu2440 开发板作为目标机,使用安装 Windows XP 的 PC机作为宿主机,并在宿主机 Windows 平台上安装了一个虚拟机软件,虚拟机里安装的是操作系统 fedora 10 作为开发环境。主要实现工作包括:在宿主机上安装交叉编译工具,建立交叉编译环境,配置 FTP、超级终端以建立嵌入式软件平台。针对项目需求实现对驱动程序的完善和移植,制作适合此开发板的根文件系统,应用 qt creator 工具设计VOD-UI(视频点播系统的图形界面)。9第二章第二章 系统总体设计系统总体设计2.1 系统概

18、述系统概述交互式网络 VOD 构架如图 2.1 所示:ftp 服务器目录服务器Vod 客户端Mplayer 播放器启动索取影片信息返回影片信息播放网络点播客户端服务器连接图 2.1 交互式 VOD共有四个部分组成:(1)ftp 服务器,主要提供片源服务,流媒体服务,这里选择 fedora 10 自带 FTP服务器软件。此软件为一个 ftp 服务器软件,可将本机的指定文件夹对外提供 ftp 服务。(2)目录服务器软件,主要提供服务器上各个影片信息,主要包括片名,演员表,内容简介,影片大小以及完成片名和影片实际地址的转换。应与 ftp 服务器为同一台机器。(3)VOD 客户端,主要采用 QTE 图

19、形界面,用来显示服务器上的影片列表,和影片信息,取得各影片的实际地址。调用播放器播放影片。(4)Mplayer 播放器,由 VOD 客户端调用,播放影片。2.2 服务器端设计服务器端设计2.2.1 FTP 服务器本设计网络服务器的 FTP 服务器,采用的 FTP 服务器软件为 fedora 10 自带10FTP 服务器软件,fedora 10 自带 FTP 服务器软件应用起来方便快捷而且安全,支持 9x/ME/NT/2K 等全 Windows 系列。它设置简单,功能强大,性能稳定。FTP 服务器用户通过它用 FTP 协议能在 internet 上共享文件。它并不是简单地提供文件的下载,还为用户

20、的系统安全提供了相当全面的保护。2.2.2 目录服务器由于 FTP 服务器采用的软件是基于 Linux 操作系统的,对目标机的兼容性更好,而目录服务器和 FTP 服务器必须为同一个 IP 地址。2.3 客户端设计框架客户端设计框架网络机顶盒原型系统体系结构如图 2.2:应用程序QPE 桌面环境播放器浏览器C 库+QT 库内核驱动程序底层硬件图 2.2 机顶盒原型系统体系结构2.4 ARM 微处理器微处理器本设计选用的底层硬件为基于 ARM9 的硬件构架。现对 ARM 做简单介绍。2.4.1 ARMARM 概述ARM 即 Advanced RISC Machines 的缩写,既可以认为是一个公司

21、的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1985 年 4 月 26 日,第一个 ARM 原型在英国剑桥的 Acorn 计算机有限公司诞生,由美国加州 SanJoseVLSI 技术公司制造。20 世纪 80 年代后期,ARM 很快开发成 Acorn 的台式机产品,形成英国的计算机教育基础。111990 年成立了 Advanced RISC Machines Limited(后来简称为 ARM Limited,ARM公司)。20 世纪 90 年代,ARM 32 位嵌入式 RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,

22、占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM 公司既不生产芯片也不销售芯片,它只出售芯片技术授权。目前,采用 ARM 技术知识产权(IP)核的微处理器,即通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器的应用大约占据了 32 位 RISC 微处理器 75%以上的市场份额,ARM 技术正在逐步渗入到人们生活的各个方面。2.4.2 ARM 微处理器的特点采用 RISC 架构的 ARM 微处理器一般具有如下特点:(1)体积小、低功耗、低成本、高性能;(2)支持 Thumb(16 位)/ARM(

23、32 位)双指令集,能很好的兼容 8 位/16 位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。基于这一系列优点,ARM 处理器适用于多种领域,比如嵌入式控制、消费/教育类多媒体、DSP 和移动式应用等。2.4.3 ARM 微处理器系列ARM 微处理器目前包括下面几个系列,以及其它厂商基于 ARM 体系结构的处理器。除了具有 ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。(1)ARM7 系列(2)ARM9 系列本文所用的 ATMEL 公司的 AT91RM920

24、T 即属于该系列的处理器。(3)ARM9E 系列(4)ARM10E 系列(5)SecurCore 系列12(6)Intel 的 Xscale 处理器(7)Intel 的 StrongARM2.5 嵌入式操作系统嵌入式操作系统2.5.1 嵌入式系统软件结构体系现代嵌入式系统软件结构可以分为四个层次:设备驱动、操作系统、应用中间件和应用程序,如图 2.3 所示。应用程序API(引用程序开发库)嵌入式操作系统基本部分扩展部分电源管理GUI 管理器OS Core文件系统TCP/IPHTTP浏览器WAP数据库DDI(设备驱动接口)CPU 等外围硬件设备图 2.3 嵌入式系统软件结构体系2.5.2 嵌入式

25、操作系统简介嵌入式操作系统(Embedded Operating System,EOS),是操作系统的一种,是在传统操作系统基础上加入符合嵌入式应用的元素发展而来,它负责嵌入式系统的全部软、硬件资源的分配、调度、控制和协调。嵌入式操作系统必须体现它所在系统的特征,能够通过加载或卸载某些模块来达到系统所要求的功能。嵌入式操作系统除了具备一般操作系统最基本的功能(如任务调度、同步机制、中断处理、文件处理等)外,还有以下的特点:(1)强稳定性。13(2)较强的实时性:嵌入式操作系统一般实时性较强,可用于各种设备的控制中。(3)可伸缩性:开放、可伸缩的体系结构。(4)外设接口的统一性:提供各种设备驱动

26、接口。目前国际上用于信息电器的嵌入式操作系统有 40 种左右。国内常见的嵌入式操作系统有Linux、uClinux、WindowsCE、VxWorks、QNX、eCos、PalmOS、Symbian、uC/OS-等。其中嵌入式 Linux 和 WindowsCE 都是从台式机的操作系统演变而来。而VxWorks、QNX、eCos, 、PalmOS、和 Symbian 等则是专门根据嵌入式系统应用需求设计的操作系统。嵌入式操作系统又可按实时性要求分为两大类:(1)实时操作系统(Real-Time Operating System,RTOS):是指操作系统本身要能在一个固定时限内对程序调用(或外部

27、事件)做出正确的反应,也就是对时序与稳定性的要求十分严格。目前较为知名的实时操作系统有 VxWorks、Nucleus Plus、OS/9、VRTX、RT-Linux、BlueCat RT 等。(2)通用性操作系统:也叫非实时性操作系统,这类操作系统在执行性能和反应速度方面,比起实时操作系统没有那么严格。目前较知名的通用型操作系统有 Windows CE、Palm OS、TimeSys Linux/GPL 和 BlueCat Linux 等等2。2.5.3 Linux 操作系统简介Linux 是一种类 UNIX 操作系统。兼容 POSIX 1003.1 标准,并包含了 UNIX System

28、V 和 BSD 4.3 的大部分特征。它充分体现了操作系统的方展趋势,即开放、稳定、标准。Linux 具有如下的特征:(1)真正的多用户、多任务操作系统。(2)符合 POSIX(可移植操作系统接口)标准。(3)采用页式存储管理。(4)支持动态链接库。(5)提供具有内置安全措施的分层文件系统。(6)提供 Shell 命令解释程序和编程语言。(7)提供强大的管理功能,包括远程管理功能。14(8)提供内核编程接口。(9)具备图形用户接口。(10)具备大量的实用程序和通信、联网工具。(11)大量高级程序设计语言已经被移植到 Linux 系统上,因此它是理想的应用程序开发平台3。Linux 作为桌面操作

29、系统的应用正在不断增长。而在服务器市场,Linux 已经可以同各种传统的商业操作系统分庭抗礼,占据了相当大的市场份额。同时,在嵌入式领域 Linux 的应用也得到的飞速的发展,这与 Linux 本身的优良特性4密不可分:(1)开放源码,丰富的软件资源。Linux 遵循 GPL,保障用户可以免费获得内核源代码。由于嵌入式系统千差万别,往往需要针对具体应用修改和优化系统,此时能否获得源代码就至关重要。Linux 上的软件资源十分丰富。在 Linux 上开发应用程序可以借鉴已有的类似的自由软件,可以节省开发的工作量,缩短开发时间。(2)功能强大的内核,性能高效、稳定、多任务。并且 Linux 的内核

30、小巧灵活,易于裁减。使得 Linux 适合嵌入式系统的应用。(3)支持多种体系结构:X86、ARM、MIPS、SPARC 等。目前,Linux 已经被移植到数十种硬件平台之上。几乎所有流行的 CPU,Linux 都支持。(4)完善的网络通信、图形和文件管理机制。Linux 本身就是 Internet 的产物,网络是 Linux 的强项。另外,Linux 支持 ext2、fat16、fat32、romfs 等多种文件系统。在图形系统方面,Linux 上既有成熟的 X Window,也有 Qt/Embedded、MiniGUI 等嵌入式图形系统。(5)支持大量的周边硬件设备,驱动程序资源丰富。Li

31、nux 上的驱动已经非常丰富,支持各种主流硬件设备和最新的硬件技术。并且随着 Linux 的广泛应用,许多芯片厂商已经开始提供针对 Linux 的驱动程序。(6)易于针对具体应用定制。Linux 内核与用户界面完全独立,各部分的第 3 章嵌入式系统与嵌入式 Linux 可定制性都很强,能适合多种需求,特别是硬件资源有限的嵌入式系统。目前,世界上许多大学、研究机构和知名公司都加入到嵌入式 Linux 的开发工作中,较成熟的嵌入式 Linux 版本不断涌现,如 RT-Linux、Embedix、XLinux、uClinux以及本研究中使用的、运行在 ARM 平台上的 ARM Linux。152.6

32、 Qt/Embedded 用户界面用户界面当前嵌入式 Linux 在手机、PDA 等手持信息设备领域的应用十分广泛。各种手持设备是否拥有图形用户界面15(GUI)己经成为其人机交互技术的关键体现,所以一个十分友好的图形用户界面(GUI)是必不可少的。嵌入式 GUI 是嵌入式系统广泛应用的人机交互接口。嵌入式系统有限的硬件资源要求嵌入式 GUI 必须简单、直观、可靠、占用资源小且反应快速。由于嵌入式系统硬件本身的多样性,嵌入式 GUI 应具备高度可移植性与可裁减性。一个具备良好移植性的嵌入式 GUI 系统,其底层接口应该在很大程度上隐藏具体硬件的实现细节,抽象出以 GAL 与 IAL 层。GAL

33、 层完成系统对具体的显示硬件设备的操作,为程序开发人员提供统一的图形编程接口。IAL 层则需要实现对于各类不同输入设备的控制操作,提供统一的调用接口。一个典型的嵌入式 GUI 系统结构如图 2.4所示。图 2.4 嵌入式 GUI 系统结构Qt/Embedded 是著名的 Qt 库开发商 Trolltech 公司开发的面向嵌入式系统的 Qt 版本。因为 Qt 是 KDE 等项目使用的 GUI 支持库,许多基于 Qt 的 X Window 程序因此可以非常方便地移植到 Qt/Embedded 上。Qt/Embedded 采用 framebuffer(帧缓冲)作为底层图形接口。同时,将外部输入设备抽

34、象为 keyboard 和 mouse 输入事件。Qt/Embedded的应用程序可以直接写内核缓冲帧,这避免开发者使用繁琐的 XLIB/Server 系统。QT/Embedded 和 QT/X 的对比见图 2.5。应用程序编程接口(API)嵌入式 GUI 实现GAL 层IAL 层图形显示设备输入设备16QT 应用程序(如 Qtopia)QT 应用程序接口(API)帧缓冲(frambuffer)Linux 内核QT/X11X Windows serverQT/XLIBQT/Embedded 库图 2.5 QT/Embedded 和 QT/X 的对比Qt/Embedded 类完全采用 C+封装。

35、丰富的控件资源和较好的可移植性是Qt/Embedded 最为优秀的一方面。它的类库接口完全兼容于同版本的 Qt-X11,使用 X Window 下的开发工具可以直接开发基于 Qt/Embedded 的应用程序 GUI 界面。17第三章第三章 系统硬件设计系统硬件设计3.1 嵌入式系统硬件结构嵌入式系统硬件结构如图 3.1 所示,嵌入式系统的硬件部分可以分成三层:核心处理器、外围电路和外部设备。调试接口电源模块复位电路晶振电路扩展端口SRAMDRAMROMFlash时钟管理模块定时器DMA 控制器中断控制器I/O 端口A/DUSBLCD键盘IRDA触摸屏OthersCPU 核心S3C2440主芯

36、片外部设备外围电路图 3.1 嵌入式系统硬件结构核心处理器(CPU core)是嵌入式系统的核心部件,负责控制整个嵌入式系统的运作。外围电路包括嵌入式系统的内存、I/O 端口、复位和电源电路、对外设的接口电路等。随着,微电子技术的发展,许多常用的接口电路已经被集成到核心处理器中。外部设备:嵌入式系统与真实环境交互的各种设备,包括存储设备(如 Flash Card) 、I/O设备(如键盘、鼠标、LCD 等)和打印设备(打印机、扫描仪等) 。实际中,嵌入式设备的硬件配置非常灵活。除了 CPU 和基本的外围电路,其余部分都可以根据不用应用进行裁减。3.2 utu2410 结构结构本文使用硬件平台扬创

37、科技有限公司开发的 utu2410 开发板作为硬件平台,utu2440 是模仿广为流行的三星 smdk2440 开发板而设计的低价位开发板,下面对 utu2440 做一些简单介绍。18CPUS3C2440 微处理器以太网 PHYUSB 发送器RS232 驱动器DM9000USB 接口9 针串口SDRAM 64MB HY57V561620FLASH64MBK9F1208通用 IO 口扩展接口内部总线A/D 和 D/A 数据采样,数字口DC/DC电源模块LCD 接口图 3.2 GEC2410 开发板结构图Utu2440 的设计结构框架如图 3.2 所示。图中,虚线框所包含的模块组成核心电路,虚线框

38、以外的模块组成接口。以 ARM920T 为内核的三星 SC32440 是控制核心,负责控制所有辅助设备。存储器采用 SDRAM 和 FLASH 两种类型,能满足系统运行和调试的需要。基本端口包括以太网接口,USB 接口,还有两个 RS232 的串口。A/D 和 D/A 模块主要用于现场数据的采集与控制信号的输出。DC/DC 模块主要负责整个系统的供电。扩展接口考虑了系统的可扩展性。开发板外观布局如图 3.319图 3.3 utu2440 开发板外观图3.3 utu2440 硬件资源硬件资源utu2440 的具体资源如下:utu2440-S 三星 2440 开发板采用 6 层板单板设计形式外引总

39、线,地址线,GPIO,IIC,SPI 等接口,方便用户使用。400M 主频,64M bytes Flash,64M bytes SDRAM,尺寸:长长 132mm,宽,宽 100mm开发板资源:(1)S3C2440A:32bit ARM920T 内核,标称工作频率:400MHz(2)系统时钟:内部 PLL 产生 400MHz CPU 内核工作频率,外部总线频率:100133MHz (3)LCD 控制器:CPU 内置/CSTN/TFT LCD 控制器,支持 1024*768 分辨率以下的各种液晶 (4)触摸屏控制器:CPU 内置 4 线制电阻式触摸屏控制器 20(5)100MHz 以太网控制器(

40、6)1 通道 5 线制串口,2 通道 3 线制串口(7)1 通道 USB1.1 主机接口,可接 usb hub,扩充多个 usb 主口(8)1 通道 USB1.1 设备接口(9)SD/MMC 卡接口(10)音频输入输出接口(12)LCD 接口,可接 3.5 寸/7 寸/4.3 寸/2.8 寸/10 寸等等尺寸 TFT 真彩液晶屏(13)专用复位电路(16)触摸屏控制器(17)RTC 实时时钟及大容量后备锂电池(18)标准 20pin JTAG 调试接口(20)4 只自定义功能 LED 指示灯(21)电源指示灯(22)6 只自定义按键,用户可以组合为“上”“下”“左”“右”“确认”“取消”6 个

41、常见功能键(23)电源开关(24)复位按键(29)SPI 接口(31)标准配置 64MBytes Nand-Flash(32)标准配置 64MBtyes SDRAM(33)5V 电源(34)支持的操作系统:WINCE /Linux3.4 S3C2440 简介简介S3C2440 是 Samsung 公司推出基于 ARM920T 内核的 16/32 位 RISC 处理器,稳定主频400MHz,最高 466Mhz。该处理器最大的特点是低价格、低功耗、高性能小型微控制器。为了降低整个系统的成本,S3C2440 提供了以下丰富的内部设备:分开的 16KB 的指令 Cache和 16KB 数据 Cache

42、,MMU 虚拟存储器管理,LCD 控制器(支持 STN&TFT),支持 NAND Flash 系统引导,系统管理器(片选逻辑和 SDRAM 控制器),3 通道 UART,4 通道DMA,4 通道 PWM 定时器,I/O 端口,RTC,8 通道 10 位 ADC 和触摸屏接口,IIC-BUS 接口,IIC-BUS 接口,USB 主机,USB 设备,SD 主卡&MMC 卡接口,2 通道的 SPI 以及21内部 PLL 时钟倍频器。22第四章第四章 系统软件设计系统软件设计4.1 搭建嵌入式搭建嵌入式 Linux 开发环境开发环境嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编

43、写软件比较困难,有时候甚至是不可能的。解决办法:(1)首先在通用计算机上编写程序;(2)然后通过本地编译或者交叉编译生成目标平台上可以运行的二进制代码格式;(3)最后再下载到目标平台上的特定位置上运行。在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。在 PC 平台(X86 CPU)上编译出能运行在 arm 平台上的程序,编译得到的程序在 X86 CPU 平台上是不能运行的,必须放到 arm 平台上才能运行。需要交叉开发环境(Cross Development Env)的支持是嵌入式应用软件开发时的一个显著特点。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应

44、用软件的环境有所不同,通常采用宿主机目标机模式,如图 4.1。图 4.1 交叉编译环境宿主机(Host 是一台基于 Intel X86 架构的计算机,它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如 Windows和 Linux),而且还有各种各样优秀的开发工具(如 WindRiver 的 Tornado,Microsoft 的Embedded Visual C+等),能够大大提高嵌入式应用软件的开发速度和效率。目标机(Target)是嵌入式应用软件的实际运行环境,如 ARM、MIPS、PowerPC 平台等,也可以是能够替代实际运行环境的仿真系

45、统,软硬件资源通常都比较有限。嵌入式系统的交叉编译环境6一般包括交叉编译器、交叉调试器和系统仿真器。其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系23统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。在采用宿主机/目标机模式开发嵌入式应用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件。然后通过串口或者以太网将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试。最后目标机在特定环境下脱离宿主机单独运行。4.1.1 建立交叉编译工具链建立交叉编译环境是进行嵌入式软件开发的第一步,目前

46、常用的交叉编译环境主要有开放和商业两种类型。开放的交叉编译环境的典型代表是 GNU 工具链,目前已经能够支持 X86, ARM, MIPS, PowerPC 等多种处理器。商业的交叉开发环境则主要有Metroworks CodeWarrior, ARM Software Development Toolkit, SDS Cross compiler, WindRiver Tornado, Microsoft Embedded Visual C+等。本文采用 Red Hat Enterprise Linux 4 作为软件开发平台,用 GNU 工具链作为交叉编译器,这些工具链包括如下组件:(1)b

47、inutils: 用于操作二进制文件的实用程序集合,包括诸如ar、as、objdump、objcopy 这样的实用程序。(2)gcc: GNU C 编译器。(3)Glibc:所有用户应用程序都将链接使用到的 C 库。有两种方法可以用来建立工具链:一种方法是下载这些工具的软件包,自己编译这些源代码;另一种简单的方法就是直接从网上下载已经编译好的工具链。本文采用的第二种方法,具体步骤如下:(1)下载所需开源文件 cross-3.3.2.tar.bz2;(2)终端下使用 root 用户登陆# mkdir /usr/local/arm#cp cross-3.3.2.tar.bz2 /usr/local

48、/arm#tar jxvf cross-3.3.2.tar.bz2 -C /usr/local/arm(3)添加环境变量:export PATH=/usr/local/arm/3.3.2/bin:$PATH这样在该终端下就建立好交叉编译工具链了。也可以将添加环境变量这个命令放到配置文件/etc/bashrc 的最后,这样以后每个终端都能够使用该工具链。244.1.2 超级终端超级终端是 windows 自带的一个串口调试工具,其使用较为简单,被广泛使用在串口设备的初级调试上。通过点击开始程序附件通讯中的超级终端,可以打开一个新的终端。然后设置好名称,选择好端口(如 COM1) ,波特率(即每秒

49、位数) ,数据位(通常选择 8 位) ,奇偶校验(一般选择无) ,停止位,数据流控制(一般选择无) ,然后就可以开始使用超级终端了。用键盘直接在超级终端输入字符,就会通过串口发送出去,在没有设置回显时,输入的是看不到的。将串口的 2 脚(即数据接收端)跟 3 脚(即数据发送端)连接在一起,再敲键盘,就会发现按下的键显示在上面了,这样可以用来检测串口是否工作正常。将单片机的串口通过 232 电平转换后连接到 PC的串口上,就可以通过超级终端来显示信息和发送命令了。本设计使用超级终端是为了使其作为一个嵌入式 Linux 系统的一个终端。效果图如图 4.2。图 4.2 超级终端4.1.3 FTP 配

50、置FTP 服务,主配置文件名:vsftp.conf,包安装完成后,可以在/etc/vsftp/目录下找到该文件。Vsftpd.conf 为 vsftpd 服务的主要配置文件,也为核心配置文件。内容和格式简单明了,每一行语句即为一项设定,即可控制服务的一项功能。若是空白行或者是开头为#号的一行,将会被忽略,既不求任何作用。而内容的格式只有一种,语句选项=参数值 比如:option=alue。其中 option 为语句选项,value 为参数值,要注意的是等号两边加空格。25同时,vsftp 服务文件/etc/vsftpd/ftpusers 中记录的用户将禁止登录 vsftp 服务器。打开配置文件

51、命令:vi /etc/vsftpd/vsftpd.conf其中有:anonymous_enable=YES 为控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为 yes;local_enable=YES 为控制是否本地用户登入,YES 为允许本地用户登入,NO 为不允许登入,默认值为 YES;ftp_username=ftp 定义匿名用户登入的使用者名称。默认值为:ftp。设置好配置文件重启下 ftp 服务器命令为:service vsftpd restart。4.2 Bootloader 移植移植Bootloader 在专用的嵌入式板子运行 GNU/Linux 系统已

52、经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:1、 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和BootLoader 两大部分。 2、 Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 3、 文件系统。包括根文件系统和建立于 Flash 内存设备之上文件系统。通常用ramdisk 来作为 rootfs。 4、 用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows 和MiniGUI 懂。 引导加载程序是系统加电

53、后运行的第一段软件代码。PC 机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘 MBR 中的 OS BootLoader(比如,LILO 和GRUB 等)一起组成。BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的 BootLoader读到系统的 RAM 中,然后将控制权交给 OS BootLoader。BootLoader 的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。 而在嵌入式系统中,通常并没有像 BIOS 那样的固件程序(注,有的嵌入式 CPU 也会内嵌一段短小的启动程序) ,因此整个系统的加载启动任务

54、就完全由 BootLoader 来完成。比如在一个基于 ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址 0 x00000000 处开始执行,而在这个地址处安排的通常就是系统的26BootLoader 程序。 简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 通常,BootLoader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 BootLoader 几乎

55、是不可能的。尽管如此,我们仍然可以对 BootLoader 归纳出一些通用的概念来,以指导用户特定的 BootLoader 设计与实现。在嵌入式系统当中没有像 BIOS 这样的固件程序,不过也有一些嵌入式 CPU 会在芯片内部嵌入一小段程序,一般用来将 bootloader 装进 RAM 中,有点类似 BIOS,但是功能比 BIOS 弱很多。在一般的典型系统中,整个系统的加载启动任务全由bootloader 来完成。在 ARM 中,系统上电或复位时通常从地址 0 x00000000 处开始执行,而在这个位置,通常安排的就是系统的 Bootloader。通过这小段程序可以初始化硬件设备、建立内存

56、空间映射图,从而将系统的软硬件环境设置到一个合适的状态!以为最终调用操作系统内核准备好正确的环境。嵌入式 LINUX 系统从软件的角度可看成是 4 个层次,如图 4.3。Bootloader参数文件系统Kernel图 4.3 嵌入式 LINUX 系统的 4 个层次(1)引导加载程序,包括固化在固件中(firmware)中的启动代码(可选)和Bootloader 两大部分。(2)内核。特定于板子的定制内核以及控制内核引导系统的参数。(3)文件系统。包括根文件系统和建立与 FLASH 内存设备上的文件系统。(4)用户应用程序。特定于用户的应用程序,有时还包括一个 GUI。多数 Bootloader

57、 都包含两中模式,启动加载模式和下载模式BOOTLOADER 的启动流程大多数分为两个阶段,第一个阶段主要是包含依赖于CPU 的体系结构的硬件初始化代码,通常都是用汇编语言来实现的。这个阶段的任务有:(1)基本的硬件设备初始化(屏蔽所有中断、关闭处理器内部指令/数据 CACHE等)为第二阶段准备 RAM 空间;27(2)如果是从某个固态存储媒质中,则复制 BOOTLOADER 的第二阶段代码到RAM;(3)设置堆栈;(4)跳转到第二阶段的 C 程序入口点。第二阶段通常是由 C 语言实现的,这个阶段的主要任务有:(1)初始化本阶段所要用到的硬件设备;(2)检测系统的内存映射;(3)将内核映像和根

58、文件系统映像从 FLASH 读到 RAM;(4)为内核设置启动参数;(5)调用内核。Bootloader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处,即跳转MEM_START+0 x8000 地址处,在跳转的时候必须满足下面的条件:(1)CPU 寄存器:R0 为 0,R1 为机器类型 ID,R2 为启动参数,标记列表在RAM 中的起始基地址;(2)CPU 模式:必须禁止中断,CPU 设置为 SVC 模式;(3)Cache 和 MMU 设置:MMU 必须关闭,指令 CACHE 可以打开也可以关闭,数据 CACHE 必须关闭。常用的嵌入式 Linux Bootloader 有 U-

59、Boot,vivi,Blob,RedBoot,ARMboot 等。4.3 Linux 内核配置移植内核配置移植4.3.1 Linux 内核结构Linux 内核不是孤立的10,必须把它放在整个系统中去研究,如图 4.5 所示,显示了 Linux 内核在整个操作系统的位置。图 4.5 Linux 内核在整个操作系统中的位置用户进程系统调用接口Linux 内核硬件28进程调度处于系统的中心位置,内核中其他模块都依赖它,因为每个模块都需要挂起或恢复进程。内存管理的重要作用是控制多个进程安全地共享内存区域,当 CPU提供内存管理单元(MMU)时,Linux 内存管理完成为每个进程进行虚拟内存到物理内存的

60、转换。虚拟文件系统隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口。网络接口提供了对各种网络标准的存取和各种网络硬件的支持。进程通信协助多个进程、多资源的互斥访问、进程间同步和消息传递。Linux 内核由 5 个主要的子系统组成9,如图 4.6 所示。有关主要子系统的具体内容及各个子系统之间的依赖关系。内存管理硬件有关硬件无关进程调度网络硬件驱动程序网络协议虚拟文件系统硬件驱动系统逻辑文件系统进程间通讯图 4.6 Linux 内核子系统及其之间的关系移植(Porting)是指将一个软件从一个平台迁移到另外一个与其不同的平台上工作。本系统的移植是将基于 x86 体系的 Linux 移植到基

61、于 ARM 体系的 S3C2440 嵌入式系统中。首先是工具链的移植,因为基于 x86 体系的 gcc 不能用在基于 ARM 的体系中,所以在 PC 上编译时要建立交叉编译工具链,同时还要考虑 bimitils、glibc 等的移植。其次是内核移植,内核移植主要包括两方面的工作,一是 arch 目录下的体系结构的移植,二是移植 drivers 目录下的许多硬件驱动。最后是应用程序的移植,如 Qtopia 库的移植等。本系统移植的 Linux 内核版本是 Linux2.6.24。S3C2440 处理器已经被纳入了Linux2.6 内核,成为一个标准支持平台,因此移植的工作量相对于 Linux2.

62、4 要小。294.3.2 Linux 内核配置一、通用的 Linux 系统包括以下目录:(1)/arch 包含了所有硬件结构特定的内核代码。boot: 包括启动内核所使用的部分或全部平台特有代码。kernel: 存放高速体系结构特有的(如信号处理和 SMP)特征的实现。lib: 存放高速体系结构特有的(如 strlen 和 memcpy)通用函数的实现。mm: 存放体系结构特有的内存管理程序的实现。math-emu: 模拟 FPU 的代码。对于 ARM 处理器来说,此目录用 mach-xxx 代替。(2)/drivers 包含了内核中所有的设备驱动程序。(3)/fs 包含了 Linux 支持的

63、所有的文件系统。(4)/include 包含了建立内核代码时所需的大部分头文件,该目录也包含了不同平台需要的头文件。比如,asm-arm 是 ARM 平台需要的头文件。(5)/init 包含了内核的初始化代码及 main(),内核从此处工作。(6)/ipc 包含了内核进程间的通信代码。(7)/kernel 包含了主内核代码,如进程管理和调度。(8)/mm 包含了所有内存管理代码,即虚存管理。(9)/net 包含了各种不同网卡和网络规程的驱动代码。内核需要在 PC 上先编译好了才移植到板子上,即需要使用交叉编译器:代码在宿主机上编译,编译好的程序移植到目标机上运行。Utu2440 支持的内核是L

64、inux2.6.24,指定用的交叉编译器是 arm-linux-gcc.3.4.1.二、配置内核#make menuconfigmake menuconfig 命令运行后进入内核配置主菜单,如图 4.8,这时根据自己的硬件需求对内核进行配置,即选择合适的选项,在用 make menuconfig 命令来裁减内核时,都是选上所需的选项,不需要的去掉该选项。30图 4.8 内核菜单配置窗口根据开发板情况,在配置中主要考虑的有:(1)CPU 类型的选择,如图 4.9;图 4.9 CPU 选择(2)LCD 驱动和型号包括支持帧缓冲设备和支持 S3C2440 LCD(好多时候S3C24410 和 S3C

65、2440 是一样驱动的就没有为 S3C2440 另外给出)帧缓冲,3.5 尺的NEC LCD。31(3)选择支持触摸屏接口,事件接口及三星 S3C2440 触摸屏输入驱动。(4)USB 选择支持 USB 支持,支持主机 USB, OHCI HCD 支持,若选择 USB Human 接口设备(full HID)支持,和 HID 输入层支持的话,就等于配置了 USB 键盘和鼠标。U 盘选择(SCSI 支持)legacy/proc/scsi 支持和 scsi disk 支持以及 USB 支持里的USB Mass Storage Supporto。(5)网卡驱动选择 Networking 支持,及 N

66、etwork device support-Ethernet (10 or 100Mbit)-DM9000,这个对应的是 l 00Mbit 的以太网。(6)文件系统的支持,这就根据自己的需要来配置。4.3.3 Linux 内核编译配置完成后,会在内核目录下生产.config 文件!然后回到内核目录编译内核!具体操作如下:步骤 1:拷贝/spanlinux-2.6.24 内核压缩包到 embedded 目录中,并解压缩rootlocalhost embedded# tar xjvf linux-2.6.24.tar.bz2 步骤 2:进入/spanlinux-2.6.22.5 目录丿/spanrootlocalhost embedded# cd linux-2.6.22.5/步骤 3:修改/spanMakefile 文件rootlocalhost linux-2.6.22.5# vi Makefile#ARCH ?= $(SUBARCH) #注释该行#CROSS_COMPILE ?= #注释该行ARCH ?= arm #添加该行CROSS_COMPILE ?= /usr/local/ar

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!