- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux无线传感器网络引导程序设计
基于Linux无线传感器网络引导程序设计 摘 要:针对无线传感器网络的结构特点及对无线可移动终端的需求,分析了Linux操作系统的启动过程,提出了无线传感器网络可移动终端引导程序的设计方法,并对引导程序实现的4个关键环节的配置和设计进行了说明。实际调试结果表明:引导程序可成功地运行在自主设计的无线终端硬件平台上。 关键词:无线传感器网络;移动终端;引导程序;Linux 中图分类号:TP311 文献标识码:A 文章编号:2095-1302(2013)05-0035-03 0 引 言 对等网络(Peer-to-Peer,P2P)和自组织网络(Self-organization Network)是目前国际计算机网络技术领域的研究热点,有别于传统通信网络的Client/Server机制,对等网络节点之间不仅可以直接通信,而且每个节点都可作为中间节点为其他节点提供服务,使本不能相互覆盖的2个或多个网络节点之间实现通信与数据传输。 无线传感器网络作为新一代的传感器网络,充分借鉴了对等网络技术和自组织网络技术的特点。终端作为网络的实体和业务的承载体,节点芯片是整个无线传感器网络的基础,网络及其关键技术的研究应首先搭建网络和业务的承载平台,可移动终端则成为验证节点芯片移动性、数据传输、覆盖范围等性能的平台。在实际应用中,基于ARM处理器和嵌入式技术的无线传感器网络系统在环境监测、医疗监护等领域得到了广泛的应用。 适用于终端的嵌入式操作系统主要包括Symbian,Windows Mobile,PALM OS48和Linux。由于Linux具有源代码的开放性和内核的可配置性等特点,因此本设计选择内核版本2.4的Linux作为终端的操作系统。所设计的移动终端硬件平台主要由ARM9嵌入式处理器、射频单元(RF)、存储体、音频处理、触摸式液晶屏控制、键盘输入和电源管理等单元构成,并内置以太网和USB接口。其中,存储体部分包含CPU片内FLASH、片内SRAM、外置大页面Nand FLASH以及高速低功耗PSRAM(Pseudo SRAM)。 BootLoader是终端上电或复位之后先于操作系统内核运行的引导程序。BootLoader与硬件息息相关,硬件环境不同,BootLoader也不同,要建立一个通用的BootLoader几乎是不可能的。基于该思路,本文重点阐述了无线传感器网络移动终端引导程序(BootLoader)的设计实现。 1 引导程序设计流程 引导程序设计流程包括系统配置、初始化与参数配置、装载映像文件、内核的引导及系统初始化、Linux内核启动。程序设计采用汇编语言与C语言混合方式:其中,汇编部分实现CPU的初始化、存储空间初始化等;C语言部分则完成加载模式的判决、内核映像文件装载等,图1所示是其工作流程图。引导程序支持加载模式和下载模式两种工作模式,其中,启动加载为默认模式。 图1 引导程序工作流程 1.1 系统配置 系统配置包括终端硬件平台设计、节点芯片驱动程序、大页面Flash的驱动程序设计、系统启动方式选择、Linux内核和文件系统映像文件的编译、内核加载方式配置、存储空间配置等工作。编译完成的引导程序和映像文件可烧写至外部Nand Flash。重新上电后,根据配置管脚的状态,处理器自动将引导程序的启动代码从Nand Flash前4 KB空间拷贝到处理器Nand Flash控制器内置SRAM(Steppingstone)中运行,同时引导完成系统的初始化和镜像文件的加载[1]。 1.2 硬件系统初始化与参数配置阶段 该阶段工作是完成系统硬件部分的初始化,包括屏蔽所有的中断、设置CPU速度和时钟频率、存储体初始化、Nand Flash初始化、GPIO端口和UART初始化、关闭CPU内部指令/数据Cache(如CPU不具备内部的数据/指令Cache,其相关的函数返回值为0)、定义程序的入口地址等。 1.3 装载映像文件 在PSRAM中分配128 KB的单元作为Ramdisk系统,作为可读写数据段,建立一个内核的运行环境。然后将Flash中的映像文件装载到内存中,该内存单元作为Romdisk系统直接运行内核。同时需要将该单元保护起来,避免误操作或其他非法指令和地址修改内核部分的代码。 操作系统、文件系统和应用程序构成的映像文件有两种装载模式:Flash-resident Image和Flash-based Image。前一种是引导程序,仅仅把Image文件中的数据段(data+bss)复制到系统内存中,代码段(text)在Romdisk中直接运行;后一种则是引导程序把Image完全复制到系统内存中执行,包括Image中的代码段(text)和数据段(data+bss)。
原创力文档


文档评论(0)