(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf_第1页
(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf_第2页
(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf_第3页
(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf_第4页
(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机系统结构专业论文)基于嵌入式linux的网络视频服务器设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要 近年来,随着多媒体压缩编码技术、网络通讯技术、嵌入式技术和高性能处理 芯片的迅速发展,网络视频服务业务不断涌现,基于网络的视频需求急剧膨胀。嵌 入式系统以其体积小、实时性高、稳定性好、支持以太网等优点,成为视频服务领 域的新热点。课题设计实现了一种基于嵌入式 linux 系统的网络视频服务器,采用 了 mcf5249 处理器和专用 mpeg- 4 压缩芯片,实现了模拟音视频数字化实时采集、 mpeg- 4 压缩编码,音视频数据与控制信号封装成符合 tcp/ip 协议的数据流进行网 络传输,同时系统支持 ide(integrated drive electronic)接口硬盘存储和 web 访问。 该嵌入式视频服务器的主要特点是支持四路音视频压缩编码,带有 ide 接口硬盘存 储功能,客户端远程登陆查看实时流和查询回放历史视频文件。设备可与流媒体中 心发布服务器软件搭建成远程监控系统、多媒体远程同步教学系统、多媒体远程视 频会议系统,也可单独作为编码器用于远程监控。系统具有较高的灵活性和可扩展 性。 针对嵌入式系统开发的特殊性,介绍了嵌入式 linux 软件开发环境的构建,研 究了嵌入式存储系统和文件系统理论,设计实现了嵌入式系统的存储空间和文件系 统,在介绍嵌入式网络视频服务器系统软件的总体设计的基础上,着重研究了网络 视频服务器核心模块视频发布与本地存储功能的设计与实现,包括视频服务器 的系统结构和工作原理、视频压缩编码、视频数据的网络传输及 ide 接口硬盘存储 软件设计。在嵌入式系统中实现 ide 接口硬盘的本地存储使远程网络视频监控的数 据管理和用户管理集中在一个嵌入式视频服务器上进行,避免了为保存视频数据而 专门设立一个视频数据存储服务器及分散式用户管理,有效的降低了整个系统的成 本。 嵌入式网络视频服务器样机实现了音视频数据的 mpeg- 4 压缩编码、视频流的 网络传输、本地存储、查询回放等功能,测试显示系统具有较好的实用性和稳定性。 关键词:嵌入式系统,linux操作系统,视频服务器,日志文件系统,ide接口硬盘 华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract in resent years, with the rapid development of multimedia coding technology, network communication, embedded technology and process chip with high performance, network video service is becoming more and more popular. with the advantage of small size, high real time, stability and supporting network, the embedded system become the new research area in video server system. a network video server based on embedded linux system is designed in this research, it s build on mcf5249 micro- processor and special mpeg- 4 encoding chip. this video server realize the video source data gathering, mpeg- 4 encoding, tcp/ip protocol transfer of packed video/audio and control signal, supporting the ide local storing and web accessing. the primary character of the video server is four channels video/audio encoding supported, with the ide local storage, clients can log in the video server to view the real time video stream or the history video storing file. this embedded video server can serve as remote monitor, multi- media remote teaching, multi- media remote video conference with the central server software, or remote monitor as an encoder alone, the system has high flexibility and extendibility. the embedded linux software development environment is built, the embedded storage system and file system theory is studied, the storage device and file system of embedded system is designed and implemented for the particular embedded system. following the introducing of the whole software design of system, the core software module is introduced: video transmission and local storage, including the architecture and work principle of video server, video encoding, video transfer and ide local storing. a chieve the ide hard disk local storage in embedded system make the data management and user management of network video monitoring concentrate in one embedded video server, avoiding the special video storage sever and decentralization of user manage, reducing the system cost effectively. video/audio mpeg- 4 encoding, stream network transfer, local ide storing and query history review functions are implemented in this embedded network video server, and the system has practicability and stability. key words: embedded system, linux operating system, video server, journaling file system, integrated drive electronic hard disk 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_年解密后适用本授权书。 不保密。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 日 本论文属于 华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪论 1.1 课题的来源和意义 1.1.1 课题来源 本课题来源于横向课题项目。 快速发展的嵌入式系统技术与网络技术相结合, 产生了众多的应用。目前, 视频 监控系统正向着数字化、网络化发展,即从模拟系统发展到应用数字技术的模拟系 统, 再到全数字的基于网络的监控系统1。 网络视频监控系统是使用现有的网络系统, 采用嵌入式的“网络视频服务器”,实现前端监控点、监控中心、监控客户端的数 字化处理,是监控系统发展的必然趋势。新的视频监控技术将带来更好的易用性、 更高的灵活性以及远程监控、硬盘存储等新功能。本课题设计实现一种嵌入式网络 视频服务器,它是一种以嵌入式系统为依托、以多媒体视频数据压缩技术及网络技 术相结合,具有专一功能的适用于各种 ip 网络环境的视频服务器。视频服务器采用 基于 mcf5249 微处理器及专用 mpeg- 4 压缩芯片的嵌入式开发平台, 实现实时音视 频流的数字化采集、压缩编码、网络传输及本地存储。该视频服务器采用了一种专 为嵌入式 nommu( 没有内存管理单元) 微处理器定制的操作系统:uclinux。uclinux 完成系统的基本功能, 如设备驱动和网络接入等。系统的主要功能, 即音视频数据的 采集压缩和传输处理, 由网络视频服务器的应用程序完成。本课题的主要任务是网络 视频服务器应用程序的设计与实现。 1.1.2 课题意义 视频监控系统是日常生产生活中的重要辅助设备,随着互联网的迅猛发展,通 过互联网实现远程数字式视频监控也已得到广泛应用。同时由于数字式网络视频监 控充分利用了网络优势,具有传输不受距离限制、信号不易被干扰、图像品质及稳 定性高、便于集中控制、可以采用数字化存储方式、系统操作维护方便等,使得基 于计算机网络和多媒体压缩算法的视频监控系统已成为整个行业技术发展的主要方 向之一2。 嵌入式系统以其体积小、实时性高、稳定性好、支持以太网等优点,成为多媒 体应用领域的新热点。和基于pc的网络视频服务器相比,基于嵌入式技术的视频服 务器具有:体积小、成本较低、稳定性高、实时性好、便于安装、使用方便等特点。 因此基于嵌入式技术的网络视频服务器必将有良好的应用和发展前景,特别是在视 频远程监控、视频会议、远程教学等领域。 华 中 科 技 大 学 硕 士 学 位 论 文 2 嵌入式网络视频服务器将先进的嵌入式技术、视频压缩编码技术和网络技术相 结合,利用多媒体压缩芯片对视频数据进行压缩编码,采用嵌入式微处理器对视频 数据进行处理,将视频数据进行网络传输和本地存储,监控终端利用监控软件实现 对视频压缩数据的解压回放。放置在监控现场的嵌入式系统把视频压缩、网络传输 和本地存储功能集成到一个体积很小的设备中,可以直接连入以太网使用,即插即 用,安装方便,无需专人值守。系统具有小型化、低功耗、高性能、低成本、稳定 可靠、网络化等显著优点,具有较好的使用价值。开发嵌入式网络视频服务器既具 有一定的技术价值,更有很高的现实意义。 在嵌入式系统中实现ide硬盘的本地存储避免为了保存数据而专门设立一个视 频数据存储服务器及分散式用户管理,有效的降低了整个系统的成本。系统采用了 标准的ext3文件系统,出现异常情况时,通过将硬盘直接挂接在pc机上就可以提取 系统所存放的历史视频数据,减少了数据丢失的风险。 1.2 嵌入式 linux 操作系统概述 1.2.1 嵌入式系统 嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁减、 适应于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式系统与通用计算机相比,具有以下特征: 1. 面向特定应用 嵌入式系统与通用计算机系统的最大不同点就是嵌入式系统大多工作在为特定 应用设计的系统中,通常都具有低功耗、体积小、集成度高等特点,能够把通用 cpu 中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化, 移动能力大大增强。 2. 高度密集 嵌入式系统是将先进的计算机技术、半导体技术和微电子技术以及各行业的具 体应用相结合的产物,这就决定了它必然是一个技术密集、资金密集、高度分散但 管理集中、不断创新的知识集成系统。 3. 生命周期长 嵌入式系统和具体应用相结合,它的升级换代也是和具体产品同步进行,因此 嵌入式系统产品一旦进入市场,具有较长的生命周期。 4. 程序可固化 为了提高程序执行速度,增强系统的可靠性,嵌入式系统的软件一般都固化在 华 中 科 技 大 学 硕 士 学 位 论 文 3 存储器芯片中,而不是存储于磁盘等载体中,这点与通用计算机系统有本质的区别。 1.2.2 嵌入式linux操作系统 八十年代末以来,陆续出现了一些嵌入式操作系统,比较著名的有 vxwork、 psos、nucleus 和 windows ce3。但这些专用操作系统都是商业化产品,其价格昂 贵;而且,其源代码的封闭性也大大限制了系统开发的灵活性。嵌入式 linux 操作 系统以价格低廉、功能强大又易于移植而被广泛采用,成为新兴的力量,其巨大的 市场潜力与酝酿的无限商机吸引了众多的厂商进入这一领域。linux 已经被移植到 多种硬件平台,其开放和免费的特点既节省了项目开发的开销和时间,又增强了项 目开发的灵活性,嵌入式 linux成为大势所趋4。 嵌入式linux也是近年来国际上的一个开发热点:韩国三星公司率先推出了采用 嵌入式linux的掌上计算机; 由美国新墨西哥理工学院开发的基于linux的嵌入式操作 系统rtlinux,已成功地应用于航天飞机的空间数据采集、科学仪器测控、电影特技 图像处理等领域; 由嵌入式linux行业的厂商lineo推出的embedix, 提供了超过25种的 linux系统服务;嵌入式l i n u x 操作系统已经广泛应用于个人pda(personal digital assistant), wap(wireless application protocol)手机、机顶盒等智能信息产品;红旗 linux把工控信息家电作为主要的发展领域。可见,无论国内外,嵌入式linux的研究 都是比较热的,而且取得的效益也是可观的。 嵌入式linux系统的优势有:充分满足硬件设备的实时性要求;具有很高的 适应性和可靠性;具有成熟的开发工具;具有小巧的功能完善的内核。 嵌入式系统开发选择linux系统具有如下理由: 1. 可应用于多种硬件平台。linux已经被成功移植到多种硬件平台,这对受开 销、时间限制的研究与开发项目是很具有吸引力的。原型可以在标准平台上开发, 然后移植到具体的硬件上,加快了软件与硬件的开发过程。 2. l i n u x 可以随意地配置,不需要任何的许可或商家的合作关系。唯一的限制 是开发者必须做出对linux社区有益的改动。 3. 它是免费的,源代码可以得到,这将节省大量的开发费用。 4. 微内核直接提供网络支持,而不必像其他操作系统要外挂tcp/ip协议包。 5. linux的高度模块化使添加部件非常容易。 6. linux在台式机上的成功,也保证了linux在嵌入式系统中的辉煌前景。 1.3 网络视频监控系统的发展 1.3.1 视频压缩标准的发展 华 中 科 技 大 学 硕 士 学 位 论 文 4 视频压缩标准的发展历程中并行存在两个国际组织:一是h标准,由itu(国际电 信联盟)所开发的标准;二是mpeg标准,由mpeg委员会及iso(国际标准组织)所批 准的标准。h标准是针对会议电视发展的,以dct(离散余弦变换)和运动补偿为基础 的,可把数字视频速率压缩到64kb/s2.048mb/s。目前h标准包括h.261,h.263, h.264等。mpeg是动态图像专家组(moving pictures experts group)的英文缩写,它是 iso(international standard organization)与iec(international electronic committee)于 1988年联合成立的一个工作组,致力于运动图像及其伴音编码的标准化工作。自成 立以来,mpeg专家组发布了一系列的多媒体压缩标准:1993年公布了活动图像的编 码压缩便准mpeg- 1;1994年发表了mpeg- 2标准,该标准向下兼容mpeg- 1,向上兼 容hdtv的图像标准;1999年公布了mpeg- 4标准;2001年发表了mpeg- 7标准。这 些多媒体标准为不同的应用领域制定,提供了不同的多媒体质量,它们对多媒体通 信的发展起到了革命性地推动作用。 本嵌入式网络视频服务器采用的是mpeg- 4视频压缩标准。iso/iec国际标准组 织的动态图像专家组mpeg于1998年发布了mpeg- 4标准草案,于1999年1月正式公 布了mpeg- 4 v1.0版本,1999年12月又公布了mpeg- 4 v2.0版本56。mpeg- 4是一种 崭新的低码率、高压缩比的视频编码标准,传输速率为4.864kbit/s,使用时占用的 存储空间比较小。mpeg- 4是根据对图像的空间和时间特征来调整压缩方法,从而可 以获得比mpeg- 1更大的压缩比、更低的压缩码率和更佳的图像质量。它的应用目标 是针对窄带宽传输、高画质压缩、交互式操作以及将自然物体与人造物体相融合的 表达方式,同时还特别强调广泛的适应性和可扩展性。因此,mpeg- 4基于场景描述 和面向带宽设计的特点,使得它非常适合用于视频监控领域,主要体现在以下几个 方面: 1. 存储空间得到节省:采用mpeg- 4所需要的空间是mpeg- 1或m- jpeg的1/10。 此外,mpeg- 4因能根据场景变化自动调整压缩方法,故能对静止图像、一般运动场 景、剧烈活动场景均能保证图像质量不会劣化,是更有效的视频编码方式。 2. 图像质量高:mpeg- 4的最高图像分辨率为720*576,接近dvd的画面效果。 mpeg- 4基于av对图像压缩的模式决定了它对运动物体可以保证有良好的清晰度, 空间、时间、画质具有可调性。 3. 对网络传输带宽要求不高:由于mpeg- 4的压缩比是同质量mpeg- 1和 m- jpeg的10倍多,所以网络传输时占用的带宽仅是同质量mpeg- 1和m- jpeg的1/10 左右。在相同画质的要求下,mpeg- 4只需要更窄的带宽。 1.3.2 视频监控服务器系统 华 中 科 技 大 学 硕 士 学 位 论 文 5 为了能够实时处理音视频数据流,实现音视频流的压缩、编码、网络传输、存 储等,视频监控服务器主要有以下几种实现方案78: 1. 采用 pentium 四代处理器实现。此方案的优点是利用当前最新的 pc 资源以 及较强的软件工具。其缺点是单位成本高、体积大、通用性不强。 2. 采用多媒体专用芯片。此方案优点是系统具有强大的多媒体流水线操作以及 多媒体接口、开发包等。缺点是成本较高、功耗较大。 3. 采用直接硬件 asic 压缩或通用 dsp 实现。此方案优点是方便集成、利于应 用、开发周期短、系统功耗小、体积小、速度快、性能稳定,尤其适用于网络视频 远程监控等领域。 随着嵌入式技术及高性能处理芯片的迅速发展,基于直接硬件asic压缩或通用 dsp实现的网络视频服务器逐渐成为视频监控系统的发展趋势。 前端一体化、视频数 字化、监控网络化、系统集成小型化是视频监控系统公认的发展方向9。 视频监控系统的数字化首先应该是系统中信息流( 包括视频、音频、控制等) 从 模拟状态转为数字状态,这从根本上改变了视频监控系统从信息采集、数据处理、 传输、系统控制的方式和结构形式。 视频监控系统的网络化将意味着系统的结构将由集总式向集散式系统过渡,集 散式系统采用多层分级的结构形式,系统的网络化在某种程度上打破了布控区域和 设备扩展的地域和数量界限。系统网络化将实现整个网络系统硬件和软件资源的共 享以及任务和负载的共享,为系统集成提供了基础。 视频监控系统的小型化主要针对视频服务器而言,在目前应用的三种实现方案 中,asic 压缩和通用 dsp 设计具有集成度高、体积小等优点,音视频数据的编码、 压缩及数据处理集中在一个嵌入式设备上进行,同时系统具有开发周期短、功耗低、 速度快、性能稳定等特点。小型化的视频服务器具有更广泛的应用领域,是视频监 控发展的方向。 1.4 本文主要研究内容与结构安排 本文立足于嵌入式 linux 网络视频服务器的设计与实现,介绍了嵌入式 linux 软件开发环境的构建,研究了嵌入式存储系统和文件系统理论,设计实现了嵌入式 系统的存储空间和文件系统,在介绍嵌入式网络视频服务器系统软件的总体设计的 基础上着重论述了网络视频服务器核心模块视频发布与本地存储功能的设计与 实现,包括视频服务器的系统结构和工作原理、视频压缩编码、视频数据的网络传 输及 ide 接口硬盘存储软件设计。 本文根据嵌入式 linux 网络视频服务器的开发流程安排研究工作与文章结构, 华 中 科 技 大 学 硕 士 学 位 论 文 6 具体如下: 第二章:根据嵌入式系统的特点,介绍嵌入式 linux软件开发及其环境的构建; 第三章:研究嵌入式存储系统和文件系统理论,设计和实现嵌入式系统的存储 空间和文件系统; 第四章:介绍嵌入式网络视频服务器软件的总体设计,包括服务器的系统结构、 各个模块及其功能等; 第五章:介绍视频发布与本地存储功能的设计与实现,实现视频压缩编码控制、 视频数据网络传输及 ide 接口硬盘存储,最后对系统进行了功能测试; 第六章:总结与展望。 华 中 科 技 大 学 硕 士 学 位 论 文 7 2 嵌入式 linux 软件开发环境 构建嵌入式开发环境是进行嵌入式开发的基础,嵌入式开发环境的基本框架是 宿主机与目标板的构成和连接方式,根据系统特点和开发需求建立宿主机与目标板 的构架,为嵌入式视频服务器开发提供编译、调试和程序上载的开发环境。 2.1 嵌入式 uclinux 系统概述 uclinux1012是嵌入式linux的一个分支,在uclinux这个英文单词中u表示micro, 小的意思,c表示control,控制的意思,所以uclinux就是micro- control- linux,字面 上的理解就是“针对微控制领域而设计的linux系统”。同标准的linux相比,uclinux 不支持mmu,uclinux内核的二进制代码和源代码都经过了重新编写,紧缩和裁剪了 基本的代码,这就使得uclinux的内核同标准的linux内核相比非常之小,但是它仍保 持了linux操作系统的主要的优点,如稳定性、强大的网络功能和出色的文件系统支 持等。 uclinux包含linux常用的api(application programming interface)和相关的工具, 内核小于512kb,操作系统所有的代码加起来小于900kb。 uclinux有一个完整的tcp/ip协议栈,同时也支持许多其他的网络协议。网络协 议在uclinux上得到了很好的实现,uclinux可以称作是一个针对嵌入式系统的优秀网 络操作系统。 uclinux所支持的文件系统有多种,其中包括了最常用的nfs( 网络文件系统) 、 ext2、ext3、romfs、ms- dos及fat16/32等。 因此,在选择支持没有mmu的cpu的嵌入式操作系统时,uclinux理所当然地成 为嵌入式操作系统的首选。实践证明,它的实用性、经济性都显示了它强大的优越 性79。 2.2 交叉编译环境及开发流程 绝大多数的 linux 软件开发都是以 native 方式进行的,即本机(host)开发、调 试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,嵌入式系统 没有足够的资源在本机(即板子上系统)运行开发工具和调试工具, 通常的嵌入式系统 软件开发采用一种交叉编译调试的方式。嵌入式硬件系统环境主要包括宿主机和目 标板及其它外部设备和连接电缆13,宿主机为一台运行 linux的 pc 机,目标板即对 应的开发板,开发配置连接如图 2.1 所示。 交叉编译调试环境建立在宿主机(即一台 pc 机)上,开发时使用宿主机上的交叉 编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上 华 中 科 技 大 学 硕 士 学 位 论 文 8 执行,而只能在目标板上执行),然后将可执行文件下载到目标机上运行。程序调试 的方式很多,例如使用串口、以太网口等,具体使用哪种调试方式根据目标机处理 器所提供的支持选择。宿主机和目标板的处理器一般都不相同,本系统中宿主机为 intel处理器,而目标板 mcf5249 为 motorola 处理器,gnu编译器提供这样 的功能,在编译编译器时可以选择开发所需的宿主机和目标板从而建立开发环境。 因此进行嵌入式开发前第一步工作就是要安装一台装有指定操作系统的 pc 机作宿 主开发机,对于嵌入式 linux 系统而言,宿主机上的操作系统一般为 redhat linux。嵌入式开发要求宿主机配置有网络,支持 nfs(为交叉开发时 mount 所用), 支持 tftp 服务器(为下载烧写程序所用),然后在宿主机上建立交叉编译调试的开发 环境。 图 2.1 标准开发配置连接图 宿主机系统嵌入式软件环境构建流程: 1. 系统安装 在 pc 上安装 redhat9.0。安装时选择完全安装,即选择 custom 定制安装;选 择软件 package 时选择最后一项:everything;配置 firewall 时选择 no firewall。 2. 在宿主机上配置 tftp 服务器,用来从主机向目标板上载文件。 在宿主机上执行 setup,选择 system services,将其中的 tftp 一项选中(出现*表 示选中),并去掉 ipchains 和 iptables 两项服务(即去掉它们前面的*号)。然后选择 firewall configuration, 选中 no firewall。 最后, 退出 setup, 执行如下命令以启动 tftp 服务: $service xinetd restart 查看 tftp 服务是否开通: $netstat - a|grep tftp 网线 hub 运行 linux的 pc(宿主机) (tftp 服务器) 网线 串口线 基于 mcf5249 的开发板(目标板) 华 中 科 技 大 学 硕 士 学 位 论 文 9 3. 配置宿主机 nfs 服务器,使用户可以通过目标板直接 mount 运行宿主机上 的程序,提供在线调试。 修改 nfs 配置文件/etc/exports,添加系统导出目录,保存代调试应用程序的目 录,如:/prj_mcf5249/debug。 启动 nfs 服务器: $service nfs start 配置完成后, 可通过在宿主机上 mount 自己的方法简单测试 nfs 是否配置正确。 4. 配置虚拟终端 本嵌入式系统的终端仿真通过串口实现。在目标板执行的 uclinux 内核中编译 并执行 coldfire 串口驱动程序;打开 telnet 服务程序。在宿主机执行 minicom或超级 终端等串口终端软件,设置输入设备为响应 com 口,设置串口波特率为 19200,无 奇偶校验,无硬件流控制, 8 个数据位, 1 个停止位;通过串口线即可实现终端仿真。 宿主机上执行的串口终端为仿真屏幕,宿主机键盘即为仿真终端的输入设备。 5. 配置 b d m ( b a c k g r o u n d d e b u g m i c r o p r o c e s s o r ) 调试环境14 下载 bdm 并口驱动到/prj_mcf5249/bdm,添加 bdm 并口设备,加载 bdm 驱 动模块。bdm并口设备只需添加一次即可,但 bdm 驱动模块的加载需要在每次系 统启动时自动运行,需要将 bdm 驱动模块加载命令添加到系统启动自动执行文件 中,如在/etc/rc.d/rc.local 文件中添加如下命令: $cd / prj_mcf5249/bdm $insmod linux- bdm.o 2.3 应用软件开发模式及调试方法 与主流软件开发类似,嵌入式系统开发者也需要用到编译器、链接器、解释程 序、集成开发环境以及诸如此类的开发工具。然而,嵌入式开发工具有所不同,因 为用来执行应用程序的平台与用来建立应用程序的平台并不相同,因此这些工具常 被称为跨平台开发工具或简称为交叉开发工具1516。 交叉开发工具主要包括:跨平台工具链、c链接库、集成开发环境、终端仿真程 序,如果需要使用其他程序语言则还必须加载相应的工具套件。 构建跨平台工具链toolchain,建立交叉编译器环境。本地编译器编译与本机同 类的处理器的指令。交叉编译器运行在某一种处理器上,却可以编译另一种处理器 的指令。设置交叉编译器工具链不是一项简单的任务:它包括下载源代码、修补补 丁、配置、编译、设置头文件、安装等操作。另外,这样一个彻底的构建过程对内 存和硬盘的需求是巨大的,如果系统没有足够的内存和硬盘空间,在构建阶段由于 华 中 科 技 大 学 硕 士 学 位 论 文 10 相关性、配置或头文件设置等问题会突然出现许多问题。 跨平台工具链由一套用于编译、汇编和链接内核及应用程序的组件组成。 这些 组件包括:二进制工具binutils、c语言编译器gcc、链接器ld、程序调试工具gdb、汇 编编译器as等。对于不同嵌入式处理器架构需要相应的跨平台工具链,常根据处理器 架构标识为xxx- elf- xxx。mcf5249采用的coldfire架构下跨平台工具链包括c语言 编译器m68k- elf- gcc、链接器m68k- elf- ld、程序调试工具m68k- elf- gdb、汇编编译器 m68k- elf- as、静态库生成器m68k- elf- ar等。 除以上提到的gnu toolchain,本课题还需要额外的交叉开发工具:elf2flt、 genromfs、cksum。elf2flt:将编译生成的elf格式的可执行文件转换成uclinux支持的 flat格式可执行文件(uclinux唯一支持的可执行文件格式就是flat格式,其他都不支 持,所有要在uclinux上运行的应用程序都必须转换为flat格式);genromfs:将映象 文件image转换成romfs格式二进制映像文件,也就是我们常说的romfs文件系统的 映像文件;cksum:将映像文件打上crc校验和。 coldfire架构可采用uclinux开发套件提供uclibc或uc- libc作为c语言应用程序 库。他们都是在标准glibc基础上改写精简得到的,本课题嵌入式系统使用的是uclibc 库。uclibc接近于glibc,能很好地支持函数库和其它的应用库(例如线程库),另外, 要支持system v的ipc机制,就一定要选择uclibc。 $make menuconfig kernel/library/defaults selection - - - (uclibc) libc version ( ) none ( ) glibc ( ) uc- libc (x) uclibc coldfire架构嵌入式处理器可使用基于coldfire架构的codewarrior development studio(开发套件),但由于该ide(集成开发环境)可选种类较少而且几乎没有免费版, 所以进行coldfire架构下的嵌入式uclinux开发通常不使用专用集成开发环境,而是 将程序写入相应目录,然后重新编译整个uclinux系统时一起编译,或者根据系统与 程序的不同编写相应的makefile进行程序编译,这样虽然makefile文件比较复杂,但 便于程序开发与维护。 嵌入式软件调试方法包括以下几种: 1. 串口终端打印:嵌入式系统下最简单有效的调试方法还是使用打印函数 (printk用于内核和驱动程序调试,printf用于应用程序的调试)。由于嵌入式系统不具 华 中 科 技 大 学 硕 士 学 位 论 文 11 有通用的i/o设备,uclinux中将i/o终端重定向为mcf5249的串口0,所以打印函数是 通过打印串口完成的。 2. bdm工具软件的调试:coldfire系列处理器支持bdm调试模块,支持断点设 置、单步执行等。可用于调试最底层的启动代码,如linux的crt0_rom.s、colilo的 boot.s以及sysinit.c等。 3. gdb调试:对于内核或应用程序,编制gdb脚本,并使用gdb命令target bdm /dev/bdmcf0指定bdm口将ram版linux内核或者是bootloader映像下载到目标板 ram中,程序启动后,就可以使用gdb命令来设置断点、单步执行等进行调试了。调 试软件应用程序时,可以在目标板子移植gdbserver,宿主机端通过以太网或串口进 行远程gdb调试。 4. 使用log记录文件或proc文件系统:使用syslog将应用程序运行过程中的中间 信息全部记录在/var/log/syslog下;使用proc文件系统记录中断次数、加载设备、文件 系统等内核信息,帮助调试内核或驱动程序。 2.4 本章小结 本章在介绍嵌入式uclinux操作系统的基础上,构建了嵌入式系统软件平台和系 统开发环境,介绍了交叉编译环境及应用软件开发,为嵌入式网络视频服务器的软 件设计与实现奠定了基础。 华 中 科 技 大 学 硕 士 学 位 论 文 12 3 嵌入式存储空间与文件系统 嵌入式系统存储空间与文件系统设计是系统功能实现的最关键的环节之一,本 嵌入式视频服务器选用了 flash存储设备和 ide 接口硬盘存储设备, 前者用于存储系 统文件,采用了 jffs2 日志文件系统,后者用于存储视频文件数据,采用了 ext3 文 件系统。 3.1 嵌入式系统存储设备 3.1.1 flash闪存 flash闪存是一种可以按存储单元块进行擦写和再编程的非易失性存储器,具有 抗振荡、低功耗、高密度和非易失性等优点,作为首选的存储设备被广泛应用于电 子与嵌入式行业1718。近年来,flash闪存技术迅速发展,闪存容量不断增加,而体 积不断缩小,同时,新型闪存不断涌现,如renesas的ag- nand,samsung的 onenand。 nor 和 nand 是现在市场上两种主要的非易失闪存技术。nor 的特点是芯片 内执行(xip, execute in place),应用程序可以直接在 flash闪存运行,不必把代码读 到系统 ram 中运行。nor 的传输效率很高,在 116mb 的小容量时具有很高的成 本效益,但是很低的写入和擦除速度大大影响了它的性能。nand 结构能提供极高 的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用 nand的 困难在于 flash的管理和需要特殊的系统接口。 由于嵌入式网络视频服务终端只需必要的操作系统和简单的应用程序,基本的 软件系统所占空间较小(小于 2mb),所以系统 rom采用了 4mb 的 nor flash。 3.1.2 ide接口硬盘 随着嵌入式系统在消费类电子产品、数据采集系统以及工业控制系统中的广泛 应用,嵌入式系统对于数据存储容量的需求日益提高,嵌入式系统中最常用的存储 设备是闪速存储器(如 flash),闪速存储器具有存储密度高、速度快而得到广泛应用, 但在某些需要大容量数据存储的应用中闪速存储器无法满足要求,因此具有大容量 的 ide 接口硬盘在嵌入式微处理器中的应用日益增多。 ide(integrated drive electronic)是所有采用 ata 接口技术的硬盘的总称,因为 ide接口硬盘的制造成本底,而且 ata规范所使用的并行数据线的价格便宜,所以 ide 接口硬盘应用非常广泛,通过在嵌入式网络视频服务器系统中加载 ide 接口硬 盘的方式来增加数据存储容量是一种最为可行和经济的选择。 ide接口硬盘的传输模式分为 pio(programmed i/o)模式和 dma(direct memory 华 中 科 技 大 学 硕 士 学 位 论 文 13 access)模式1920。pio 模式是可编程 i/o 模式,对控制器的访问和数据传输都是通 过cpu控制i/o完成, 以pio模式运行的ide接口, 数据传输率为3.3mb/秒(pio mode 0)至 16.6mb/秒(pio mode 4)。dma 模式是直接存储访问模式,它在 cpu 完成对驱 动器 dma 控制器的初始化,并执行相应 ata 指令后把数据传输的控制权限交给 dma 控制器, 由 dma 控制器控制数据的传输, 从而 cpu 可以执行其他的任务。图 3.1 描述了 pio 和 dma 数据传送模式的区别。 图3.1 pio方式和dma方式示意图 3.2 嵌入式 linux 日志文件系统 3.2.1 linux 的文件系统 文件系统是操作系统的重要组成部分,它是系统中数据信息的管理组织形式。 文件系统中的文件主要包含两部分的内容,一部分是文件自身所包含的数据,另外 一部分是关于文件的描述,称为文件属性,也成为元数据,包括创建日期、文件长 度、文件权限、文件在磁盘上的物理位置等。 linux的文件系统引入了虚拟文件系统 vfs(virtual file systems)机制21, 它采用 面向对象的思想,提供了统一的抽象文件系统接口层。实际的文件系统在 vfs 注册 后,通过 vfs 提供的统一接口和操作系统核心管理模块交互。对于操作系统的核心 管理模块来说,它不关心实际文件系统的实现细节,对应用层来说,也只是通过 vfs 接口来访问具体文件系统中的数据,它也不关心实际的文件系统中的具体的数据组 织形式。 vfs 在系统启动时建立,在系统关闭时消亡。vfs 的功能包括: 1. 对具体文件系统的数据结构进行抽象,以一种统一的数据结构进行管理; 2. 将设备同对应的文件系统联系起来,接受内核其他子系统的操作请求; 3. 支持多种具体文件系统之间的相互访问; 4. 涉及到针对文件系统的操作时,vfs 把他们映射到与控制文件、目录、以及 dma方式数据传输 pio 方式数据传输 cpu ram dma 硬盘 ide 接口控制 华 中 科 技 大 学 硕 士 学 位 论 文 14 inode 相关的物理文件系统。 vfs 只是一个虚拟的文件系统,需要和实际的磁盘设备联系上,还需要将磁盘 上的文件系统 mount 到 vfs 上,它是一种机制,存在于内存而不是磁盘中。当某个 进程发布了一个面向文件的系统调用时,系统内核将调用 vfs 中相应的函数,这个 函数处理一些与物理结构无关的操作,并且把它重定向为真实文件系统中相应的函 数调用,而这些函数调用则用来处理那些与物理结构相关的操作。图 3.2 显示了 vfs 与各具体文件系统之间的关系。 图3.2 vfs与具体文件系统关系图 有了 vfs 后,实际的文件系统对操作系统的核心管理模块及应用层来说都是透 明的。具体的文件系统对于操作系统核心来说是独立的模块,在设计具体文件系统 模块时, 只要保证它能够按照 vfs 提供的结构与 vfs 进行交互, 它就能够成为 linux 核心支持的文件系统的一份子。vfs 实现了 linux对多种具体文件系统的支持。 3.2.2 日志文件系统 日志文件系统是为系统崩溃后文件系统快速恢复,提高系统可用性而设计的。 与早期的文件系统(例如 ffs 和 ext2)相比,日志文件系统在磁盘上以日志的形式记 录一些额外的信息,系统崩溃后利用日志快速恢复文件系统到以前的一致状态,避 免了扫描整个文件系统这种费时的数据完整性检查。在日志文件系统中,每提交一 用户进程 虚拟文件系统 vfs jffs2 ext2/ext3 vfat 文件系统缓冲区 diskdriver diskdevices nor/nand flash driver nor/nand flash devices mtd 层 华 中 科 技 大 学 硕 士 学 位 论 文 15 checkpoint write journal writeback 个数据写操作都会先写进日志,只有这些写操作成功地提交到日志文件,写操作才 会写进最终指定的磁盘区域。把日志中记录的写数据块传送到指定的磁盘区域的过 程称为检查点执行(checkpointing)2223。如果检查点执行过程中发生故障,文件系统 可以通过日志文件来恢复数据到指定磁盘区域。日志文件系统通过周期性地更新一 个叫做日志超级块的特殊块来标记日志文件的大小和检查点执行的中止。 日志文件系统具有不同的日志模式,它们在磁盘更新操作时有些细微的不同。 以下介绍 3 种不同的模式:data journaling、ordered journaling、writeback journaling。 这些不同的模式通过写不同类型的日志数据以及不同的数据写入顺序,从而提供不 同的数据完整性。不同日志模式的选

温馨提示

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

评论

0/150

提交评论