当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:针对无线传感器网络的结构特点及对无线可移动终端的需求,分析了Linux操作系统的启动过程,提出了无线传 感器网络可移动终端引导程序的设计方法,并对引导程序实现的4个关键环节的配置和设计进行了说明。实际调试结果表明: 引导程序可成功地运行在自主设计的无线终端硬件平台上。

引言

对等网络(Peer-to-Peer, P2P)和自组织网络(Selforganization 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所示是其工作流 程图。引导程序支持加载模式和下载模式两种工作模式,其中,启动加载为默认模式。

基于Linux的无线传感器网络引导程序的设计

1.1 系统配置

系统配置包括终端硬件平台设计、节点芯片驱动程序、大页面Flash的驱动程序设计、系统启动方式选择、Linux内 核和文件系统映像文件的编译、内核加载方式配置、存储空 间配置等工作。编译完成的引导程序和映像文件可烧写至外 部Nand Flash。重新上电后,根据配置管脚的状态,处理器 自动将引导程序的启动代码从Nand Flash前4 KB空间拷贝到 处理器Nand Flash控制器内置SRAM(Steppingstone)中运行, 同时引导完成系统的初始化和镜像文件的加载。

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)。

1.4内核的引导及系统初始化

上述步骤完成之后,程序计数器指针(PC)跳转到内核起 始地址处,完成内核解压、安装及其环境参数配置。设置体 系结构环境,进行命令参数的解析,设置中断和异常向量表, 进行进程调度器、定时器、控制台的配置,Cache初始化、内 存页面初始化、设备初始化等。操作系统的初始化还包含文 件系统的安装,如Ext2文件系统、管理Nand Flash的JFFS2 文件系统。

1.5 Linux内核的启动

引导程序引导完成后释放对硬件系统的控制权,转交给 Linux操作系统,并释放清除使用过的临时内存,然后跳转到 操作系统内核(kernel)的第1条指令地址,启动Linux操作系 统,执行/etc目录下的用户系统配置信息,准备系统应用程序 的使用环境。

2引导程序设计实现

引导程序的实现包括4个关键环节的配置:内存规划, 堆栈分配,中断向量配置及Nand Flash读写操作。

2.1内存规划

内存规划包括两个方面:第一是内核映像所占用的内存 范围;第二是根文件系统所占用的内存范围以及应用程序和程 序申请的缓冲区所占用的内存。对于内核文件,将其拷贝到从 RAM_BASE(MEM_START+0x8000)这个基地址开始的大约 1 MB的内存范围内,以MEM_START为基址的前32 KB内 存需要空出,让Linux内核放置一些全局数据结构,如启动 参数和内核页表等信息。根文件系统映像文件则将其拷贝到以 MEM_START+0x100000为基址的内存中(采用Ramdisk作 为根文件的系统映像,其解压后的大小一般为1 MB)。

2.2堆栈分配

ARM有7种工作执行状态,每一种状态的堆栈配置都 是独立的,所以,对程序中需要用到的每一种模式都要为堆 栈指针SP(Stack Pointer)定义一个堆栈地址,使其指向该运行 模式的栈空间。这样,当程序的运行进入异常模式时,可以 将需要保护的寄存器放入SP所指向的堆栈,而当程序从异常 模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证 异常发生后程序的正常执行。改变程序状态寄存器(CPSR)内 的状态位(低5位)可使处理器切换到不同的工作状态,根据 系统使用中断和异常的情况,可能需要初始化部分或全部堆 栈指针寄存器。本文的堆栈配置包括外部中断模式、快速中 断模式、系统调试模式、未定义指令模式、系统模式和用户 模式。其中,外部中断模式栈配置程序如下:

InitStack

MOV R0,LR

MSR CPSR_c,#0xd2//设置外部中断模式堆栈

LDR SP,StackIrq

MOV PC,R0

StackSvc DCD SvcStackSpace+(SVC_STACK_ LEGTH-1)*4

StackIrq DCD IrqStackSpace+(IRQ_STACK_ LEGTH-1)*4

SvcStackSpace SPACE SVC_STACK_LEGTH*4// 管理模 式堆栈空间

IrqStackSpace SPACE IRQ_STACK_LEGTH*4// 中断模 式堆栈空间

对管理模式堆栈而言,SP的值由SvcStackSpace的地址 加上SVC_STACK_LEGTH的大小而定。系统所有的堆栈均 位于系统运行空间PSRAM中。可通过外部输入命令的方式 切换工作模式,并通过查看特殊寄存器的内容帮助诊断系统 运行状态。

3结语

本文提出无线传感器网络可移动终端引导程序的设计方 法,从实际调试看,Linux版本号、CPU识别信息、时钟配置、内存空间配置以及外设初始化信息等显示全部正确,表明了采 用该方法设计的引导程序能够成功地运行于自主设计的无线 移动终端硬件平台上,完成了映像文件的加载、解压,操作系 统能够开始正常运行。

20211021_61703da9ca7c6__基于Linux的无线传感器网络引导程序的设计

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭