




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)基于arm9的嵌入式linux开发平台构建与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于a r m 9 的嵌入式“n l l x 开发平台构建与应用 零牵烹鬃漭透了将l i n u x 2 。s 孩移植至l 矗鞭平台戆过程,善竞奔缨了a 麓 s 3 c 2 4 l o 嵌入式平台的体系结构张此基础上给出了鼹体的开发环境并搭建了交叉 编译环境,实现了启动代码v i v i 和l i n u x 2 6 的移植,其中l i n u x 的移植过程主要 包括了与硬传无关的基本的内核功能,最后还实现了可写的y a f f s 文件系统的移 攘。移蓬成凌惹,该平台具有叛下麓戆: v i v i 熊从n a n bf l a s h 启动弗宪成相应命令功能 l i n u x 内核能够编译通过: 编译通过的内核映像可以通过v i v i 正确加载启动和执行; 良垓中提供婀dn a f l a s h 鞭动,扳上豹n a 鼢f l a s h 可以正常的工弦; ¥a f f s 王髂正鬻,可正霉读写¥a f 瑟分区,薅奄绦存; x ) 基于a 嚣撼9 趣歉入式珏“x 歼发平台籀建与应瘸 摘要 随糖计算机技术、通信技术的飞速发展和3 c ( 计算机、通信、消费电子) 懿融合,嵌入式系统已经渗透舞各个领域。蠢寝集成佬豹s o c 技术、软核与疆核 同步发溪静s o 踅技术、鸯d s p 技术融合、开发和调试手段不戮完蒜、软释工程 师思想融入嵌入式软件等融经称为嵌入式开发的新特点。 a r m 平台是目前使用广泛的主流的嵌入式处理器体系结构。本文采用使用 s 3 c 2 4 l o ( a r m 9 内核) 为e p u 媳硬侔平台,s 3 c 2 4 l o 是韩国三星公蠲生产的一款 基予a 粼9 2 豁俸系结穆静舞瞧憨e 麓,丰塞戆努没接墨,2 0 3 潮z 熬圭频镬它特裂 适合逑行操作系统的移橇牟掰进行应用开发。 本文主要目的是研究l i n u x 如何移植到a r m 的芯片上,并在此撼础上进行多 媒体及网络应用程序的开缴。文章首先深入剖析了l i n u x 在嵌入式皮用系统中的 絮构及蒺在乎台移植过程审的主要程务翻难避。然基在势板s 3 c 2 4 1 0 体系结鞠戆 基础上给壅了瓤准备移棱邵境、b o o t l o a d e r 移撩、l i 嬲x 2 8 移穰、y a f f s 文锌 系统的移植,一直到根文件系统的建立的全过程。按文中提供的方法和技巧可以 很方便的建立一个a r m l i n u x 开发平台。 文激最后给出了基予所建平台的两个应用,綦于l i s 与u r 踱犸4 l 的录放音 程孝叛及基予孙& 嵌入式bs e v e r 藜l 受务器壤表萃处瑾程旁。 【关键搴】嵌入式系统,s 3 c 2 4 1 0 ,嵌入式l i n 嗽,b o o t l o a d e r ,姗s ,b o a 基于a r m 9 的嵌入式u n u x 开发平台构建与应用 绪论 随着计算机技术、通信技术的飞速发展和3 c ( 计算机、通信、消费电子) 的 融合,嵌入式系统已经渗透到各个领域。高度集成化的s o c 技术、软核与硬核同 步发展的s 0 p c 技术、与d s p 技术融合、开发和调试手段不断完善、软件工程师思 想融入嵌入式软件等已经称为嵌入式开发的新特点。 嵌入式应用软件的开发已不再是面向简单m c u 的单纯硬件开发,而是需要强 大的开发工具和操作系统的支持。为了满足嵌入式产品应用功能的升级,设计师 们一方面采用更强大的嵌入式处理器如3 2 位、6 4 位r i s c 芯片或信号处理器d s p 增 强处理能力:同时还要采用实时多任务编程技术和交叉开发工具技术来控制开发 的复杂性、简化应用程序设计、保障软件质量和缩短开发周期。 在3 2 位嵌入式微处理器市场上,基于a r m 内核的微处理器在市场上处于绝对 的领导地位,因此追踪a r m 技术的发展趋势,学习s 0 c 的系统构建显得尤为重要。 s 3 c 2 4 1 0 是s u m s u n g 公司基于a r m 9 内核的一款高性能s o c 芯片,片上集成了 删u 、数据和指令c a t h e 、l c d 和u s b 控制器以及丰富的外部接口。高达2 0 3 m h z 的工 作频率使得c p u 能够处理基于w i n c e 或l i n u x 操作系统的复杂的信息处理,例如音 频视频的解码及图形处理等。它的低功耗、低价格、精简和出色的全静态设计特 别适用于对成本和功耗敏感的应用。 在嵌入式操作系统的选择上,l i n u x 一直因其内核精简,代码开放,易于移 植等特点受到广大嵌入式系统工程师的青睐。目前l i n u x 能够支持x 8 6 ,a r m , l i p s a p a r c 等多种c p u 的体系机构,而且从l i n u x 2 6 1 0 开始,l i n u x 将对s 3 c 2 4 1 0 的支 持写入了内核。这样就使得a r m 开发者只要根据外设资源配置情况对内核进行简 单的修改和配置,就可以使之运行在自己的开发板上,再加上启动程序和根文件 系统就可以搭建起一个嵌入式l i n u x 的应用开发平台,并在此平台上开发,调试, 运行基于a r m 的应用程序。 正是基于以上背景,我们试验小组选择了使用s 3 c 2 4 1 0 c p u ( a r m 9 内核) 的开 发板,进行l i n u x 的移植和应用程序开发工作。本文主要目的是研究l i n u x 如何移 植到a r m 的芯片上,并在此基础上进行多媒体及网络应用程序的开发。 茎王垒墨m ! 堕堂基坚! 坚五垄鱼塑蕉皇鏖旦 第一章嵌入式系统 1 1 嵌入式系统概述一定义、特点 1 什么是嵌入式系统 根据i e e e ( 国际电气和电子工程师协会) 的定义,嵌入式系统是“用于控制、 监视或者辅助操作机器和设备的装置( d e v i c e su s e dt oc o n t r o l ,m o n i t o r ,o r a s s i s tt h eo p e r a t i o no fe q u i p m e n t , m a c h i n e r yo rp l a n t s ) 我个人比较赞同嵌入式系统可应用下列公式描述: e s = 3 c ( c o m p u t e r + c o m u n i c a t i o n + c o n s u m e r e l e c t r o n i c s ) + i n t e r n e t + w a p + g b s + u p s + s e n s o r s + i p + e s o c 。 根据上述公式。可将其定义概括如下: 嵌入式系统定义:是现代科学的多学科互相融合的以应用技术产品为核 心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传 感器,进入i n t e r n e t 网络连接,适应应用环境的产品。 2 嵌入式系统的特点 从上文对嵌入式系统所作的定义可以得出嵌入式系统的几个重要特征: 1 ) 嵌入式系统通常是面向特定应用的。嵌入式系统的专用性很强,其中的软 件系统和硬件的结合非常紧密,一般需要针对硬件进行系统的移植。同时 针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系 统相结合,这种修改和通用软件的“升级”是完全不同的概念。 2 ) 系统精简。嵌入式系统一般没有系统软件和应用软件的明显区分,不要求 其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利 于实现系统安全。 3 ) 高实时性嵌入式操作系统。这是嵌入式软件的基本要求,而且软件要求固 态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。 4 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储 器芯片或单片机本身中,而不是存贮于磁盘等载体中。 5 ) 嵌入式软件开发走向标准化。为了合理地调度多任务、利用系统资源、系 统函数以及和专家库函数接口,用户必须自行选配r t 0 s ( r e a l t i m e 0 p e r a t i n gs y s t e m ) 开发平台,这样才能保证程序执行的实时性、可靠性, 6 一垄至剑塑煦熬叁塞! 垫娶壁蕉垩愈翅蕉墨查里 一一一一 并减少开发薅闻,僚淹软箨矮量。 6 ) 嵌入式系统本身不具备自主开发能力,即使设计完成以厥用户通常也是不 对其孛黪程序功能透弦修改熬,必须蠢一襄开发工具弱醛境才麓进行开 发。开发时往往有主飙釉蟊标机酶檄念,主枫霜予程序的开发,目标机作 洚簸薅蕊掇行裁,嚣发曩霉器要交蛰绦合遽嚣。 1 2 嵌入式系统的组成 包括硬l 牛和软件两部分。豳1 1 为嵌入式系统的组成框图。 设备驱动| l专煮磋释( 嵌入式处理器、存德器、务设等)l 髑1 1 嵌入式系统的组成 l 。专裔硬件包括嵌入式处爆器、存锉器和u o 端陬及步 围设罄等。萁核心是 嵌入式楚瑷器。嵌入式簸理嚣一般其备以下4 个特意: 对实对多任务露嘏强鹣支持能力,能竞成多任务并且鸯较斑昀中断响应 时阐,麸焉筏沟都豹代褊和实对内核韵执行时闽减少翔最低融魔: 蒸宵功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块 德,嚣羹了避受在软绺模块之闼密臻镶误瓣交叉接用,霪蘩竣诗强大戆 存储区保护功能,闲丑寸也有利于软彳警诊断; 胃扩震瓣楚瑾嚣绪稳,激怒最逐速妻惫开发窭满是建爱静缀离瞧熬酌嵌入式 微处理器为准: 嵌入戏微处理嚣必须功糕很低,尤其是用予便携式的无线殷移动的计算和 懑髂设备,靠窀池供彀的嵌入式系统要怒瓣魏。 2 + 应耀软终是实现嵌入式系统功能的关键,憩聚操终系统软律秘皮鼹程序。 有时设计入掇把这两种软件组含在一起。成用程序羧制着系统的运作和行为:而 操作系统控制着应用程序编程与硬件的交甄作用。嵌入式系统软件的特征如下: 较 串疆求固态繇存继。蕊了提裹撬行速凄蠢系绞零靠缝,褒a 式系统孛黪 7 基于a r m 9 的嵌入式u n u x 开发平台构建誊麻甬 蔺_ i 司衙握解渊戳蠢篓翳辅荫。 中;w 谣瑙塌坼峨璎溜道嘏型m 缈驰珥墅鸯型堑雕嚣器竣摧羹鼾。 l ;璺薹矍卜躯卯r 妣踺娟贸静。唱浯茹僻恢镥丽臻趔瞄辔顶簿撵溺囊沣秸嫠 朗辚酌函蛙摩蔓:豁蕊爨释黏辑茬俘愿瑁绉烈必签剿整孵毽;啦塑囊辩磐塑荔 摇签葙辅律蒋嚣的廿h砟秀换和访问许j那倒麴蘩。霜箕il矧鬣湖埔捌捌,隋j转换和访问许可检查。m m u 提供拉独特的地址转换和保护方案,被存储 在主存中的两级页表的一个独特设置所控制,并被c p l 5 的寄存器1 中的m 位置位允 许。可以单独的锁定和刷新删u 中的指令和数据t l b 。m 姗的特性如下: 标准的a r mv 4 m m u 映射尺寸、管理和访问保护机制。 映射尺寸可以是1 m b ( 段) ,6 4 k b ( 大页) ,4 k b ( 小页) ,和1 k b ( 微页) 段访问许可 。 大小页访问许可可以按1 4 大小单独指定( 这l 4 页又称子页) 。 硬件应用16 个管理域。 6 4 入口指令t l b 和6 4 入口数据t l b 。 硬件页表通道 轮换替换算法( 又称循环替换法) 。 用c p l 5的寄存器8 使整个t l b 无效、置m v a 选择的t l b 入口无效。 用c p l 5的寄存器1 0 独立的锁定指令和数据t l b 。 2 访问许可与管理。对于大小页,访问许可对每个子页( 小页的1 k ,大页的 1 6 k ) 定义。对段和微页单独设定访问许可。所有区域的内存有一个联合管理区。 管理区域是 对内存区域的主要管理机制。它为一个内存访问操作定义必要的状态参数。管理 区决定是否使用访问许可限定访问、是否访问无条件允许进行以及是否访问无条件中断3 转换过的地址入口。每一个t l b 缓存了6 4 个转换过的地址入口。在c p u 访存 x 基于a 】i 溯的嵌入式“x 开发平螽构建与应用 缓冲等蒋功能。丽硬件相关部分的设备驱动程膨主要傲对设备襁始纯。从设备餐 掘銎能语蛙贼羹赫j 囊鞠 篓明一鞠鲍雕:霪颡曝m 强孺洋睁溉藩鋈涮鞘瀣, ! j 蹋黝巍叫咿掰强强薛秘嬲娶她# u u 囊茄! ;鬻淄强篷臻溢滞掣基浏幽蒋冒 曩翻;匿鬟霾嚣鬟霸瓣溉鸶菇象涵蔼竣羹黩篓弱。 蓁蛋霉裂万贰篷i 壅蠹裂麓强。粪磊善裁霎篓垒l 簿n 0 0 0 0 0 0 处。三耱启动方焱簿,内存 划分如图2 5 所示: 蝌啊u 隔_ 0 删。p o 。 黧麓嚣蹿 瓤蝴j b _ 黼吼舯_ 辩 嚣瞎虬零瞬i 霸国t 删 淑棚a 口 嫩1蜘屯母巷 翻蓥啦觏黼呻 # 懒乳0 褥 删制一觥。 ”删:棚。” | 粼 l 裂埽献筑蛾黼 l 树0 0 s 勰 ls 肆篇脚 i 舯 l 辎醐 l 佃粼:$ 憋 l 鬟捌 l 麟瓤 l 裂删 基于a r m 9 的嵌入式n n u x 开发平台构建与应用 第二章硬件平台 a r m ( a d v a n c e dr i s cm a c h i n e ) 是基于精简指令集的一种计算机体系结 构实现,a r m 系列的处理器当前有a r m 7 ,a r m 9 ,a r m 9 e ,a r m l o 等多个产品,此外 a r m 公司的合作伙伴,如i n t e l 也提供基于x s c a l e 微体系结构的相关处理器产品。 所有的a r m 处理器都共享a r m 通用的基础体系结构,所以开发者在不同的a r m 处理 器上做操作系统移植时,将可以节省工作量,这无疑将大大降低软件开发成本。 2 1 a r m 9 硬件平台概述 2 1 1a r m 9 2 0 t c p u 架构 a r m 9 2 0 t 处理器内核采用哈佛结构,5 级流水线( 包括取指、分析、执行、访 存、写存) ;分立的指令和数据c a c h e 都是1 6 k b ,8 个字的数据总线;采用增强的 a r m 体系v 4 的删,以提供对指令和数据地址的翻译和访问许可检查;支持a r m 调 试结构,包含了辅助软件和硬件调试的逻辑电路:还具有协处理器支持。a r m 9 2 0 t 的功能模块如图2 1 所示: 图2 1a r m 9 2 0 t 功能块图 2 1 2 a 洲9 2 0 t 编程模型 a r m 9 2 0 t 处理器的编程模型包括a r m 9 t d m i 内核以及以下增加和更改。 1 a r m 9 2 0 t 处理器包含了两个协处理器: 1 4 基于删9 瓣嵌入式l 抽h x 舞发平台撞建与应用 如果一个t l b 丢失( 不镪含v a 入口) ,则激活转换表游历硬件,从物理内存 转换袭隰新找到转换信息。强找到时,转换信息被写进t l b ,可熊农覆盖一个现 存的t l b 傻。写入口是由对t l b 的循环替换所决定的,也可以通过设鼹c p l 5 的寄存 器1 9 邈建。当溯关 l l 露,魄翔重癌瓣,没鸯筑缝映射,舞鸯鲍嚣域鄂标羞不麓 缓存躐不能缓冲。使用c p l 5 的l 、2 、3 、5 、6 、8 、l o 号寄存器和内存中存槠静时 表描述符可以确定m 唧的操作。 4 允许m m u 时需要进彳予如下操作: 1 ) 对t t b 和管理区访闯控制寄存器编程。 2 ) ,绞要求辩乙e v l l 耪l e v e l 2 茭表藕翟。 3 ) 设置控制寄存器o 位允许删u 。 应该注意是否因紧跟m m u 允许操作的几条指令可能在删u 关闭时的预取操作 导致转换厢的地址与转换嵌的地址不同( 使用公式:物理地址= v a 一平面转换地 蛙) 。蘩关翊翻驻,只要姆羧翻寄存器鲍位0 置翔可。在藏之蔫,巍残芙耀i c a t h e 。 5 。撼址转换。搬u 将豳c p u 和e p l 5 产生的v 是转换为物理地址潋访| 、蕊外存。它还 使用t l b 取出并检查访问许可。删u 转换表游历硬件用来给t l b 添加入口。包含地 址转换数据和访问许可数据的转换信息在物理内存中的转换表中波册。删u 提供 逻辑将这个转换表帮加载入霜读入t 滤。此搡佟在硬馋表游历过穗镶要中有一至i 秀参,麓上许可捡查一步。疹骧数取决予遣疆搽悫舞袋浃瓣谤目还怒瑟沃射诱阕。 6 转换表基址寄存器。幽t l b 不包含要求的w a 的转换地址时,硬件转换进程 被开启。转换表基址( t t b ) 寄存器指向包含段娥和页描述符的物蠛内存表的基 址。t t b 寄存器的低1 4 位在读状态时全部景0 ,袭必须在1 6 k b 边雾上。图2 4 是t t b 毒存嚣瓣撬式: 图2 。4 转换表基缎鹰存器 转抉袭含 x 基于a r m 9 的嵌入式“n b 开发平台蝗蕉量垄型 帮在两一系绫中要诱闻文辞系统豹孛的绩惑必矮蔼慕鸯稻褒权限( 帮读( r ) 写( w ) 执行(x)的用户来访问。然而对于移动设备如pda,很难保证系统的单一性。最 简单的,人们可以通过一定的手段绕过原有系统的认证机制用其他同裟系统的特 权用户来访润用户的秘密数据。如何解决这样的阅题,一个方案是采用加密豹文黪系统,褒这方嚣虽然虿瘸l o o 砖蹙备骰蜀一定熬傈鬻瞧,毽是篌矮还怒不方便, 特剐是移动设备中,使用的简翁饿非常重要。所以,研究一种既方便又安全得文 件系统是必凝的,然而这牵扯刘列的技术和嵌入武系统的本身活动的限制,有 待更进一步的研究和开发。 存储管毽部分。这部分痰密在许多体系结构中是稳对或熬和稳定豹,毽 是,锌型浑珞 奖恪 x : 1 0 、穗黼c | e fd 积c e s 瓣骶x 支持摄多特殊的字符设备,j 箩 戮该顼下静予 项也特别多。 v i n u a lt e n n i n a l 成拟终端。 s u p p o nf o rc o n 鲥eo nv i t 珊】l e l l l l i n a l 廉拟终端控制台。 s e 蛀建d 永瞄串弱设嚣,一敷选上叁纛舞发平台相关懿宰鞠藏嚣。 s 3 c 2 4 l os e r i a lp 州岬p o n 帮s u 辨f t 妇n s o l e 舳s 3 c 2 4 l os e r i a lp o r t w a t c h d o gc a r d 蛐p p o r t 对看门狗定时设备的支持。 e n h a l l c e dr e a lt i m ea o c ks u p p o n 在缚台p c 机上都内建了一个时钟, 它萄以产生出献l h z 至1 8 1 9 2 h z 瓣信号。在多c p u 的抚器中这项必遮。 l i 、u s bs u p p 嘁鞠辩u s b 设备蠡孽支持。 麴栗有相关设备簸选上。 1 2 、s o l l i l dc a r ds u p p o f t 关于声卡的支持,根据自己的情况来蹴置。 农究成内核的裁减之厝,内核的编译就是一个非常简单的过獠。但是在首次 编译时殿注意输出信息,以便针对出现的错误修敬内核相应代码。 基于a r m 9 的嵌入式u n l l x 开发平台构建与应用 1 、m a k ed e a l l 这条命令是在正式编译你的内核之前先把环境给清理干净。 有时也可以用m a l ( e r e a k l e a i l 或m a k cm r p r o p c r 来彻底清除相关依赖,保证没有不 正确的o 文件存在。 2 、m a k ed e 口这条命令是编译相关依赖文件。 3 、m a k ez i m a g e 这条命令就是最终的编译命令。有时可以直接用m a k e ( 2 6 x 版本上用) 或m a k eb z h l l a g e ( 给p c 机编译大内核时用) 等编译完成以后,会生成镜像文件a r c h a r n l i ) 0 0 t z h l l a g e ,把这个文件下载到 开发板上的内核分区,重新启动,就会看到l i n u x 2 6 的内核启动信息。 3 5y a f f s 文件系统移植 1 y a f f s 文件系统简介 y a f f s ,y e ta n o t h e rf 1 a s hf i l es y s t e m ,是一种类似于j f f s j f f s 2 的专 门为f 1 a s h 设计的嵌入式文件系统。与j f f s 相比,它减少了一些功能,因此速 度更快、占用内存更少。y a f f s 还带有n a n d 芯片驱动,并为嵌入式系统提供了 直接访问文件系统的a p i 。 n a n df l a s h 大多采用m t d + y a f f s 的模式。 2 y a f f s 文件系统的移植 y a f f s 代码可以从h t t p :w w w a l e p h l c o u k a r m l i n u x p r o j e c t s 下载 ( y a f f s 代码包括y a f f s e c c c ,y a f f s _ f i l e e m c ,y a f f s f s c ,y a f f s g u t s c , y a f f s 皿t d i f c ,y a f f s r a m e m c 。) 内核中没有y a f f s ,需要自己建立y a f f s 目录,并把下载的y a f f s 代码 复制到该目录下面。 # m k d i rf s y a f f s # c p 木cf s y a f f s 修改f s k c o n f i g ,使得可以配置y a f f s : s o u r c e ”f s y a f f s k c o n f i g ” 修改f s m a k e f “e ,添加如下内容: o b j 一$ ( c o n f i g y a f f s f s )十= y a f f s 在y a f f s 目录里面生成m a k e f i l e 和k c o n f i g 。其中k c o n f i g 主要是为了 配置y a f f s 相关的选项,可参考相关文档。m a k e f i l e 主要是指定要生成 的o 文件,其内容为: y a f f s o b j s := y a f f s f s oy a f f s g u t s oy a f f s - m t d i f oy a f f s e c c o 基于a r m 9 的嵌入式n u x 开发平台拘建与应用 s b i n 一保存系统瘵动邈穗逶常嚣蘩麴命令,翔e 2 f s e k 、搬妇2 f s 、f d i 盛、 i n s m o d 、r 咖o d 、d e p m o d 、m o d p r o b e 、1 s m o d 、s h u t d o w n 、r o b o o t 、 l o g i n 、i n i 乞、g e t t y 、疆o u n 屯、u m o h n t 、等; d e v 一包含用农设备中的所有设备节点; e t e 一氢含系统酌鼹蠢酝萋文孛; p r o c 一这是一个必须设鼹的特殊目录,在舔统运行之骺它下面有许多 窖,这魑内容魑实时、不断跟踪系统内核和正在运行的进程的 获态蔼产生鹣,毽不占瑶强簿磁盘空闯,两楚驻餐程内存中; 在某些情况下,可默通过谨寒进行系统设置,许多工鼹驮这里 获取信惑,麴d m e s g 、p s 、t o p 等;程内孩编译选颧文佟系统选 择中,我们选撵对文件系统p r o c 的支持: l 沁一7 篷含疑蠢必嚣黝疼,根据b i n 帮砖b i 珏基录下的霹技行文 孛零 要的动态链按摩来确定l i b 目录下的内容。 骥在建立一令器蒙昧d i r 办o o t f s 终为藏鬟檄文转系统懿器蒙。并在其中 建立必要的翻录:k d i rb i ns b i nd e ve t cp r o c1 i bu s r 2 。编译b u s y b o x 。b u s y b o x 是一个著名的开源项酲,它是许多嵌入式l i 叫x 系统的基石,其网菇嚣藏使予h t 屯p :鼎w b u s y b o x n e t 。它瑟个裰小整豹应 用程序来掇供上述位于b i 髓簿 s b i n 中的整个命令懿翡功能,它还支持动态和静 态方式链接g h b e ,允许根据辩骚修改缺省配鬻,逸中或移豫掰包含瀚命令。 b u s y b o x 提供的配置界面与l i n u x 菜单配置界面非常相似。下面简要说明其使用 过稳。 首先瑟到醴站下载b u s y b o x 源代糨,目蓠最新版本为 b 珏s y b o x l 。1 1 专a r g 荔。 解压源文件包:t a r z x v fb u s y b o x l 。1 1 t a r g z : 建立个符号链按并进入隧录: l n sb u 8 y b o x 1 1 1b u s y b o x e db u s y b o x 进纷耀美配置:黼娩氆e n u e o n f i g 。蕤中簸主瑟款是指定交叉编译器路径 和b u s y 司,f l a s hm 唧o r yn a t a s h e e s u m 鲫n g 2 2 】李善平等,u n u x 内核2 4 版源代码分析大全2 0 0 2 机械工业出版社 【2 2 】卢宁, u 州x 操作系统的特点及其发展哲里术畜牧学院学报,第9 卷第2 期,1 3 页,1 9 9 9 f 2 4 】顾喜梅,顾宝根基于u n u x 的文件系统机制的研究及实现方法计算机工程与设计,第2 3 卷第 基于a r m 9 的嵌入式“n i i 【开发平台构建与应用 选中不使用u s r 项,否则生产的b u s y b o x 命令会覆盖当前系统的原有命令。 其它都是相关命令,可根据需要进行选择。最后保存退出。 交叉编译b u s y b o x 。m a x 基于a r m 9 的嵌入式l j n u x 开发平台构建与应用 将此4 m 的r a i l l d i s k 空间格式化为e x t 2 类型的文件系统; # m k e 2 f s m o f m y r a m4 0 9 6 在m n t 下建立目录r 锄,将已格式化e x t 2 类型文件系统的r a i n d i s k 挂载至 目录n t r a m 上; # m o u n to 1 0 0 p m y r a i i l m n t r 硼 将宿主机上m y r a m d i s k 目录下的文件结构拷贝至m n t r a m 目录中( 这就相 当于拷贝至文件m y r a i i l 中了) ; # c p a v m y r a m d is k 木m n t r a m 卸载掉m n t ra 【l l : # u m o u n t m n t r a m 产生一个压缩的映象文件。 # g z i pv 9 m y r a m m y r 舳d i s k i m g g z 最后将生成的m y r a m d i s k i m g g z 下载到f 1 a s h 相应的分区中。 4 关于启动脚本。 一般系统启动时都会按要求执行相应的初始化操作。写在命令行里就是i n i t = 1 i n u x r c ,这个1 i n u x r c 是指向e t c i n i t d r c s 文件的一个符号链接。在r c s 文件中列出了l i n u x 初始化时要执行的文件,例如,初始化进程i n i t ,挂载根 文件系统,挂载模块化设备驱动等。r c s 的作用大致上相当于w i n d o w s 中的 a u t o e x e c b a t 文件。由于对于不同应用,r c s 的内容变化太多,在此不作叙述。 具体内容可参考相关文档。我们使用的r c s 文件格式如下: # !b i n s h b i n m o u n t a m o u n t ty a f f s d e v m t d b l o c k l u s r i f c o n f i gl o 1 2 7 o o 1 i f c o n f i ge t h 05 9 6 7 9 2 2 0 7 r o u t ea d dd e f a u l tg w5 9 6 7 9 2 1 b o a c u s r b o a c d u s r m e d i a m p 3 p l a ym s k m p 3 3 7 本章小结 4 2 基于a r m 9 的嵌入式u n u x 开发平台构建与应用 第四章基于a r m l i n u x 平台的应用 建立了开发平台就有了一个良好的环境,后面的工作就可以使用平台提供的 丰富资源进行应用软件的开发了。下面是在此平台上的两个应用。 4 1 数字音频接口应用程序 1 1 2 s 总线 硬件平台数字音频接口模块由i i s ( i n t e r i cs o u n d ) 音频总线接口和 p h i l i p s 公司的u d a l 3 4 1 t s 音频编解码器( c o d e c ) 组成。i i s 总线是近年出现的 一种面向多媒体计算机的音频总线,该总线专门用于进行音频设备之问的数据传 输,为数字立体声提供一个序列连接到标准编码解码器。s 3 c 2 4 1 0 内置一个i i s 总线控制器,该控制器实现了到一个外部8 1 6 位立体声c o d e ci c 的接口。此控 制器包含f i f 0 ,支持d m a 传输模式。 2 1 2 s 相关寄存器 1 2 s 总线控制器相关寄存器包括1 2 s 控制寄存器i i s c 0 n 、1 2 s 模式寄存器 i i s m o d 和1 2 s 分频寄存器工i s p s r 。详细信息看参考s 3 c 2 4 1 0 数据手册。 3 w a v 格式声音文件 w a v 格式声音文件是w i n d o w s 下常用的音频文件格式,w a v 为w a v e f o r m 的缩 写,它遵循一种称为“资源交换文件格式( r e s o u r c ei n t e r c h a n g ef i l ef o r m a t ) 的结构,简称r i f f 。它是一种树状结构,基本构成单位为c h u n k ,每个c h u n k 由 “辨别码”“数据大小”及“数据”组成。r i f f 的格式辨别码为“w a v e ”。整个 文件由两个c h u n k 组成:辨别码“f m t ”和“d a t a ”。在“f m t ”c h u n k 下包含了 一个p c m l v a v e f o r m a t 数据结构,在其之后是原始声音的采样数据,可以直接送到 i i s 总线。一个典型的w a v 格式文件结构如图4 1 所示: 图4 1 典型的w a v 文件结构 它包含8 b y t e 的r i f f 头,4 b y t e 数据类型码“w a v e ”,2 4 b y t e “f m t ”和“d a t a ”。 w a v 文件从下式中的s i z e o f f 开始的四个字节表示声音数据的大小,d a t a o f f 开 始的位置为具体的声音数据。 s i z e o f f = o x 8 十o x 4 + o x l 8 + o x 4 d a t a o f f = o x 8 + o x 4 + 0 x 18 十0 x 8 基于a r m 9 的嵌入式l j n l l x 开发平鸯构建与应用 i dp l 嚣艮差i 囊獭瓣窭量1 1 1 一l ij 。薯囊:蓦;j 毒譬l | - 毒_ j 薹堇i 萎蓦:誊写i 一誊。 基。 i :? i 黎鬻黪豢鬻骥滋攀i 蕊i c h a n g e c l o g k d i v i d e 譬i ! 。) :_ ;j 矗_ 董i ,_ i j i 誊ii | _ j i 巷 :_。一一_ ;j i 一ij 薯 c h a n 臻潮p l l v 烈“繇i 雾酾;9 瀵鳍爨j 二警。| 誊i :i 蔓誊垂i 露:i 薯i j i 誊霪、i 菱j i j j i 。鼍j 由于1 2 s 可以采用d m a 方式进行录音和播放,因此要进行d m a 中断注册。同 封注嚣串鞠巾旗霸器音孛嚣,势浚萋中薮屡薮。 磅 i 掣矗憩攀囊攀骥戆i 熬鬻寨攀i 囊攀鋈i i i 渗鬻誉 溪攀孽囊鬻爹薯董皇j 善麓誊誊。 p i s r d 瓶a 2 - * :( u n s i g i e 每粼2 童脬d i : i ? 。誊、警i “ :j i 委 。i ;i i 然后获墩语音数据及其大小以及采样频率。其中b u f 直接指向声音文件起始 地址,即指向w a v 文件存放数缀的开始处,根据前顾的公式可得到数据的大小以 及采样频率,其中采样频率位予f m tc h u n k 的第o x o c 开始的4 个字节中。 羔誊羹誉攀誉蓑熬繁繁;攀篆鬻攀i 娑,渗 提示用户使用s u m s u n g 提傲的串口通讯工具d n w 下载声音文件。注懑,下载 基王垒! 型! 盟壁塞;些坠五叁垩鱼塑堡皇生旦一 u 锻t 箩r i n t ( ”b 9 w n l 嘲鬻爹p 碧,黼。a i i 骥囊攀鎏黪一燮擎雏“磺8 氆t ? 棼4 、5 9 萋; 銎1 邕鬃豢:鐾辫然辫繁i 然誉鏊寨鬻鏊燮黍蒸i i i i j 。i j i i 鎏i 誉i 然淼誉鬻鋈i 薏i 豢i i 篱瓣鋈i 銎嚣蒸i 囊:;i i i j ii 鎏i 萋i i i j i e l e l 蚵e 骚藏嚣篙謦i 善曩蠹誊善曩蠹誊董誊蓍嚣誊露铡;瑟孽霸i 誊誊毫曩叠叠薯曩毒; i u 磐t 鬻i 囔黪麟l 黪、:聪麟磐穗囊i 熏湖渤i 辫篱 醚誊i 夏 : 曩| _ j 一善i : 。 舞n 量j 黔鼍嚣曩曩曩一誊蓦蠢i 藏蠡毒量; 誊:+ i ;i ;蠹i 毫番 ? ; 美j_ ; :;? 一 一u 颤t 誊鹭蠢攀攀l 瑟攀l 蘩藤澄l 骥囊蠹鹾鬻鬓:l 萋鬻i 嚣瓣零n 鬻:曩i j ; 1 一 。麓。曩毒蔓i 磊囊誊二i 誓“一j 一 : 萎0 曩棼j 。 u a r 谬嚣瓣绺蒸麟麟、黪麟蠹麟臻懑,i 粪嬲鬻骥p e 蜷碟辍国嚣 i _ l 一 曼囊; ;黧 ;j 土| j j | 一j j ; 。 ; 接着初始化u d a l 3 4 1 ,设置为放音模式。 l n i t l 3 4 瓤髓鼬,瓣一薯j ij ; 接着进行d m a 初始化。 r d i s r e 2 蔓j 煮要鍪麟鬟 o g 麟搿稳鹳自麴够翳镰蕊麟h 斓8 i 一蠢曩i 薹蔓,薯薯臻i j | 。; 童蠹基。强董黉曩善曩誊i 蔓; r d i s r e c 2 、暑。、c 戳辅、墨o 秘 :o 曩董i ? 薯蔓:; j 薯萎一。? 蔓 ”曩囊| ;“一 ;川 = : 一 ; |= 一 。 r d i d s t 2 j 暑l 秘霪2 芰藿豁莲l 鞫0ij 毫舞一薯毫量薹曩薯。霉z 玉l ? 瓣薯f 氇 、 j 基于a r m 9 的嵌入式“n 诖x 开发平台构建与应用 餐萎鞣g e 玲1 1 鬻l 黧寥擎萋萋蝥鼍璧x :童j j 。i i 。;参萋i :誊簟ii 董i 萋毫i 叠j 誊i 蠹誊荔善。蠹- ! 耋墨暑曲 蛙鐾! 毳珥薹孽嘤萼童霎一纂? 詈;囊兰薹确刍|! 适美? j 螽; 。j 磊冀薹曼;叠j 秀丽 , 薹薹錾萋叮目鬟鬻i 嚣日鬻;塞蛊善。霞蓄萋 蠢謇整霎 薹鋈萎雾磊璺ii 量羽蕴善主蓁:翼茎;。 鋈舅鋈耋 8 :! 地2 ! 乜2 2 丛9 2 1 i n 4 5 2 1 1 4 8 获得源码光盘 a r m 一2 0 0 6 一0 1 1 6 i s o 2 建立e l d k 安装目录:m k d i r o p t e l d k 3 挂载源码光盘:m o u n t d e v c d r o m m t c d r o m 4 运行i n s ta l l 安装脚本,安装e l d k 到指定目录: 基于a r m 9 的嵌入式【曲麟评发平台构建与应用 奠_ 1 1 1 一 一 薯- - 一o j 。董一 _ 一 警量 _ 誊涵a 鲤鹱i 爨慧爨篓溪羹篓i 鬟薹冀骥冀羹攥黧羹雾j 瞒霉。 3 薹雾囊羹疆l ;l 弱冀颡羹冀i | 鬟萋鼍。耋鬈! i 照蓁翼j 霎旒薹; 藩薹缮季雾i 莲j 蓁裂黯j 攀| 冀叠2 蓁i ! l 二;一螨薹。彦孽要萼落g 蠢+ “。g 誊二裘囊耍冀。j 童蠢曼萼毳萋羹酐,。薹摹j i 奏2 | 塞要使 用到的硬件设备。 捡嚣系绞内存获蹇重琢e r y 臻a p ) 。 将k e r n e l 淤像和根文件系统1 i 兜像从f l a s h 读到r a m 空间中。 为内核设鬣扁动参数。 调用内核。 2 。¥l v i 弱移攘 戮为vi v i 已经提供了熬予s 3 c 2 4 l o c p u 开发投蠹勺基本设置,辩v i v 的移植b e 较 简单; 酋先正确设置编译环境,将以下三行: 基于a r m 9 的嵌入式i j n t l x 开发平台构建与应用 过w e b 页面进行远程访问。这样做的好处是显而易见的,操作者可以修改远程设 备的各种配置信息,查看出错情况,甚至可以进行远程的软件更新,因为是通过 w e b 页面的方式来访问,对操作者而言,无须再安装特别的软件,只需要在i e 浏览 器中输入远程设备的i p 地址,十分的方便。这种嵌入式w e b 的系统将成为未来 i n t e r n e t 发展中的新生力量之一,将会广泛的应用到工业设备,自动化农业,家庭 医疗设备,信息化家电,智能小区,远程监控报警系统,嵌入式g s m 短消息平台,通 信基站等的远程维护等。本文在基于上述嵌入式l i n u x 平台上移植了b o a w e b s e r v er 实现了c g i 动态网页程序。 4 2 2b o a 的移植与加载 b o a 是一款单任务的h t t p 服务器,与其他传统的w e b 服务器不同的是当有 连接请求到来时,它并不为每个连接单独创建进程,也不通过复制自身进程来处 理多链接,而是通过建立h t t p 请求列表来处理多路h t t p 连接请求,同时它只为 c g i 程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统 来说至关藿要 同时它还具有自动生成目录、自动解压文件等功能,因此,b o a 具有很高的h t t p 请求处理速度和效率,在嵌入式系统中具有很高的应用价值。 b o a 可以通过互联网下载( h t t p :w w b o a o r g ) ,目前最新版是b o a o 9 2 。 下载成功后,有b o a o 9 2 r t a r g z 这么一个文件,用t a r 命令解开这个压缩文件。 找到在相应目录s r c 下的m a k e f i l e 文件,用v i 命令编辑它,将c c = g c c 这一行改 成c c = o p t e l d k u s r b i n a r m l i n u x g c c ,存盘退出。然后用m a k e 工具编译, 不出错的话会在s r c 目录下会生成一个b o a 的可执行文件。在运行b o a 之前,还 需要修改c o n f 目录下b o a c o n f 这个配置文件。主要几处修改的地方如下( 注意 不同的版本可能配置选项会不尽相同,但思路是一样的) : 第一处,修改p o r t 号,来改变提供w e b 服务的端口。 # p o r t :t h e p o r t b o a r u n s o n t h e d e f a u l t p o r t f o r h t t p s e r v e r s i s 8 0 抖工f i t i s l e s s t h a n l 0 2 4 t h e s e r v e r 删s t b e s t a r t e d a s r o o t p o r t 8 0 第二处,修改用户和组用户的信息,暂时不用密码认证。 # u s e r :t h e n 硼e o r u i d t h e s e r v e r s h o u l d r u n a s # g r o u p :t h e g r o u p n a m e o r g i d t h e s e r v e r s h o u l d r u n a s u s e r0 5 】 基于a r m 9 的嵌入式i j l l u x 开发平台构建与应用 客户螺测览器蠢服务瓣发送数据采弱u 魏编羁囊酬持嚣堑j 嚣嚣鬻墓篙鹱翻 蓊臀琵鎏霸鹭鬻翻蘩蠹爨琵;皤跫划释霆爱;篓一镒錾试薹墨蓊錾霞耋站瞎黼辫 囊一要蠢铲; f 涟静,霜弹象墓嚣篷蒸鹱羹锋咎磋改箨驰塑蚕菇霾鬃塑磊基裂 霪藿;季釜婪耋魁。m 蓊翳藿薹雾睫h g i i 鬻蔓育交稀,! l 孽g 翳谴霪。缓疆翼 2 霎蠡冀9 。譬鹱 啪r e s o u r c e s = a r r l s i z e ( s 3 c n a i ld _ r e s o u r c c ) , r e s o u r c e = s 3 c _ - n a n d _ r e s o u r c e , d e v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市西青区中考二模物理试题(解析版)
- 《4.3 维权行动》(教学设计)-2023-2024学年五年级下册综合实践活动安徽大学版
- 2025年全国起重机操作证-特种设备作业人员考试题库(含答案)
- 第1课 中华人民共和国成立-2025-2026学年八年级历史下册核心素养驱动说课稿
- 2025年高考生物试题分类汇编酶与ATP及物质运输(原卷版)
- 乡愁题目分析及解析答案
- 2025护肤品采购与销售合同
- 2025合同文件是否应作为合同及组成部分
- 物业安全试题库及答案
- 物权法原来题库及答案
- 主题班会《反对邪教-从我做起》
- 幕墙预埋件专项施工方案
- HDX8000系列安装配置操作指南
- 白虎汤分析课件
- 山东青年政治学院校徽校标
- 2022版义务教育英语课程标准之学业质量标准与考试评价解读PPT
- EDA课程第3~5章QuartusII Verilog HDL 数字电路设计实现
- (高清正版)JJF(浙)1102-2014生物人工气候箱校准规范
- 完整解读新版《义务教育课程方案》2022年《义务教育课程方案(2022版)》PPT课件
- 《文殊真实名经》
- 幼儿各年龄段发展评估指南
评论
0/150
提交评论