根据无线传感器网络的结构特点和对无线移动终端的需求,分析了Linux操作系统的启动过程,并设计了无线传感器网络的移动终端启动程序的设计方法。
议,并实现了启动程序的四个关键环节。释了配置和设计。际调试结果表明,该启动程序可以在独立设计的无线终端硬件平台上成功运行。等(P2P)和自组织网络(Self-organization Network)是国际计算机网络技术领域的当前研究热点,与传统的客户端/服务器通信网络,网络节点不同对等网络不仅可以定向通信,而且每个节点都可以用作其他节点的中间节点,这样两个或多个彼此无法覆盖的网络节点可以进行通信和传输数据。为新一代传感器网络,无线传感器网络充分利用了对等网络技术和自组织网络技术的特征。端是业务的网络实体和骨干网,节点芯片是整个无线传感器网络的基础,对网络及其关键技术的研究应首先构建网络。
商业平台。动终端成为节点芯片的移动性和数据验证。输,覆盖和其他性能平台。实际应用中,基于ARM处理器和机载技术的无线传感器网络系统已广泛用于环境监控,医疗监控和其他领域。用于终端的嵌入式操作系统主要包括Symbian,Windows Mobile,PALM OS48和Linux。于Linux具有开源代码和内核可配置性的特性,因此本设计选择内核版本为2.4的Linux作为终端操作系统。计的移动终端的硬件平台主要由集成的ARM9处理器,射频(RF)单元,存储主体,音频处理,屏幕控制组成触摸屏LCD,键盘输入和电源管理等单元,以及集成的以太网和USB接口。

中,存储部分包括芯片上的FLASH CPU,芯片上的SRAM,大页面上的外部FLASH Nand和低速高速PSRAM(伪SRAM)。BootLoader是在启动或重置终端后在操作系统内核之前运行的引导程序。BootLoader与硬件紧密相关。同的硬件环境和不同的BootLoader,几乎不可能构建通用的BootLoader。于此思想,本文重点介绍无线传感器网络移动终端启动程序(BootLoader)的设计和实现。计引导过程的过程包括配置系统,初始化和配置参数,加载映像文件,引导内核,引导系统以及引导Linux内核。序设计使用了汇编语言和C语言的组合:其中,汇编部分执行CPU的初始化和存储空间的初始化; C语言部分完成对加载方式和内核映像文件的加载等的判断。导加载程序支持两种工作模式:加载模式和下载模式,其中引导加载为默认模式。统配置包括终端硬件平台设计,节点芯片驱动程序,大页面闪存驱动程序设计,系统启动模式选择,内核映像文件编译和Linux文件系统,配置内核加载模式,配置存储空间等。译后的启动程序和映像文件可以刻录到外部Nand闪存中。电后,处理器会根据Nand Flash控制器从Nand Flash之前的4K空间自动将启动程序的启动代码复制到Nand Flash控制器中处理器的内置SRAM(步进石)中。置引脚的状态,并同时完成系统初始化。
加载图像文件[1]。步骤的工作是完成系统硬件的初始化,包括屏蔽所有中断,调整处理器速度和时钟频率,初始化内存,初始化。Nand Flash,GPIO端口和UART初始化,并停止处理器的内部指令/数据缓存(如果处理器没有内部数据/指令缓存,则其关联功能的返回值为0),恒温阀芯设置程序输入地址等在PSRAM中将128 KB单元分配为Ramdisk系统,作为可读写的数据段,并建立了内核操作环境。后将Flash中的映像文件加载到内存中,并且内存单元直接将内核作为Romdisk系统运行。时,必须对单元进行保护,以避免故障或其他非法指令和地址,以修改内核部件的代码。操作系统,文件系统和应用程序组成的映像文件具有两种加载模式:Flash常驻映像和基于Flash的映像。一个是启动程序,它仅将数据段(数据 bss)复制到系统内存中的映像文件中,而代码段(文本)直接在Romdisk中运行。
二个是用于将映像完全复制到系统的启动程序。内存中执行,包括Image中的代码段(文本)和数据段(data bss)。成上述步骤后,程序计数器(PC)指针将跳转到内核引导地址,以完成内核的解压缩,安装和环境设置的配置。置架构环境,分析命令参数,定义中断和异常向量表,配置流程计划器,计时器,控制台,缓存初始化,内存页,设备初始化等操作系统的初始化还包括文件系统的安装,例如Ext2文件系统和管理Nand Flash的JFFS2文件系统。导程序完成后,它将释放对硬件系统的控制,将其转移到Linux操作系统,并释放所使用的临时内存,然后跳转到操作系统的第一个指令内核地址(内核)启动Linux操作系统。/ etc目录中运行用户系统配置信息,以准备使用系统应用程序的环境。
动程序的实现包括四个关键链接的配置:内存计划,电池分配,中断向量的配置以及Nand Flash的读写操作。
存计划有两个方面:第一是内核映像占用的内存范围;第二是内核映像占用的内存范围。二个是根文件系统占用的内存范围,以及应用程序和程序请求的缓冲区占用的内存。于内核文件,将其复制到距RAM_BASE基址(MEM_START 0x8000)大约1 MB的内存范围。须释放以MEM_START作为基地址的前32 KB内存,以允许Linux内核放置全局数据结构,例如引导参数和内核页表以及其他信息。根文件系统的映像文件以MEM_START 0x100000作为基地址复制到内存中(使用Ramdisk作为根文件的系统映像,其未压缩大小通常为1 MB)。ARM具有7个工作执行状态,并且每个状态的堆栈配置都是独立的。此,对于程序中必须使用的每种模式,必须为堆栈指针SP(堆栈指针)定义一个堆栈地址,以使其指向操作模式的堆栈空间。样,当程序进入异常模式时,可以将要保护的寄存器放在SP指向的堆栈上,而当程序从异常模式返回时,将从相应的堆栈中还原该寄存器。常程序执行后。

改程序状态寄存器(CPSR)中的状态位(低5位)可以将处理器切换到不同的操作状态。据使用中断和异常的系统,某些或所有堆栈指针寄存器可能需要初始化。文中的堆栈配置包括外部中断模式,快速中断模式,系统调试模式,未定义指令模式,系统模式和用户模式。于管理模式堆栈,SP的值由SvcStackSpace的地址加上SVC_STACK_LEGTH的大小确定。

有系统堆栈都位于PSRAM系统的执行区域中。可以通过外部输入命令更改操作模式,并通过查看特殊寄存器的内容来帮助诊断系统的操作状态。文介绍了为无线传感器网络的移动终端设计启动程序的方法。过实际调试,Linux版本号,处理器标识信息,时钟配置,内存空间配置和设备初始化信息均正确显示,表明此方法设计的方法启动程序可以在独立设计的无线手持设备的硬件平台上成功运行,图像文件已加载和解压缩,操作系统可以开始正常运行。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
