CN101277265B - 一种无线传感网络中加速加载elf文件的方法 - Google Patents

一种无线传感网络中加速加载elf文件的方法 Download PDF

Info

Publication number
CN101277265B
CN101277265B CN2008100615778A CN200810061577A CN101277265B CN 101277265 B CN101277265 B CN 101277265B CN 2008100615778 A CN2008100615778 A CN 2008100615778A CN 200810061577 A CN200810061577 A CN 200810061577A CN 101277265 B CN101277265 B CN 101277265B
Authority
CN
China
Prior art keywords
address
base station
node
elf file
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008100615778A
Other languages
English (en)
Other versions
CN101277265A (zh
Inventor
陈纯
卜佳俊
董玮
孟硕培
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INSIGMA GROUP CO., LTD.
Zhejiang University ZJU
Original Assignee
INSIGMA GROUP CO Ltd
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INSIGMA GROUP CO Ltd, Zhejiang University ZJU filed Critical INSIGMA GROUP CO Ltd
Priority to CN2008100615778A priority Critical patent/CN101277265B/zh
Publication of CN101277265A publication Critical patent/CN101277265A/zh
Application granted granted Critical
Publication of CN101277265B publication Critical patent/CN101277265B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种无线传感网络中加速加载ELF文件的方法。本发明方法通过预先获得节点端的内存地址信息,在基站上预加载ELF文件,并修正文件中所引用的符号的地址信息,因此可以减少数据的传输,因为预先在基站上完成了模块的连接过程,因此在传输模块的过程中不需要传送ELF文件的重定位信息和符号信息,其次在节点端可以简化模块的加载过程,加速模块加载过程,因为连接过程和预加载过程由节点端转移到了基站,基站发送的到节点的二进制镜像已经是修正好地址的可执行文件,因此在节点上只需要把镜像写入申请好的内存位置就可以了,省去了重定位的过程。

Description

一种无线传感网络中加速加载ELF文件的方法
技术领域
本发明涉及加载技术,尤其是在无线传感网络中加速加载ELF文件的技术。
背景技术
近年来,随着信息技术的进步,一种信息的获取技术--传感技术,也得到了迅速的发展,从上世纪末开始,现场总线技术开始应用于传感器网络,人们用其组建智能化传感器网络,大量多功能传感器被运用,近些年无线技术的进步,人们将其运用在传感器网络中,形成了无线传感器网络。
无线传感网络是新一代的传感器网络,具有广泛的应用前途。它不仅在工业、农业、军事、环境、医疗等传统领域具有巨大的运用空间,在家用,保健,交通等新兴领域也展示出非凡的应用价值。
无线传感网络存在自身的特点:节点资源有限,数量大,分布广,系统动态性强。往往通过电池来供电,因此低功耗成为无线传感网络设计的一个重要的特性。根据其特点无限传感网络在其部署之后,需要能够动态更新其节点上程序,此过程称为重编程。现有的很多操作系统通过基于模块加载的方式,来实现重编程的功能。模块采用ELF文件来实现,用于模块的ELF文件通常为可重定位类型的ELF文件。因为可以根据加载位置,来重定位文件中引用符号的地址,此类型文件可以被加载到任意的地址,操作系统可以在运行时实现模块的动态的连接、重定位和加载。模块可以通过网络或者EEPROM来获取,通过模块加载机制,可以很容易的实现软件的更新。基于可重定位的ELF文件的模块加载的过程,主要通过两个阶段,首先是动态连接的过程,动态连接的本质,就是对ELF文件的进行重定位和符号解析,此过程需要一些模块的相关信息来完成模块的动态链接,比如模块引用符号的相关信息;第二个阶段为加载过程,把模块的各个段加载到指定的内存地址。
发明内容
本发明提出了一种可以加速加载ELF文件的方案,并且可以有效的减少加载时需要的模块信息,从而达到低功耗的要求。
本发明针对的是Micaz平台,采用在基站预加载ELF文件的方案来实现模块的加速加载。其具体步骤如下:
1)解析需要加载的ELF文件,获得模块有关加载的信息,包括ELF文件中数据段和代码段的大小;
2)基站向一个节点发送数据包,数据包的内容为需申请内存空间的大小,包括为数据段申请的数据内存和为代码段申请的程序内存;
3)节点根据步骤2)的信息,申请指定大小的数据内存空间和程序内存空间,返回申请到的空间的地址,并将地址通过无线通信发送到基站;
4)根据步骤3)申请的地址,在基站上对ELF模块进行连接和预加载,根据申请到的内存空间地址修正ELF文件中引用的符号的地址信息,使其指向正确的地址;
5)提取ELF文件中的数据段和代码段,将这两个段的内容通过无线通信发送到节点;
6)节点上接受完数据后,将数据段加载到步骤3)中申请的数据内存地址,将代码段写入程序flash上申请到的地址,然后跳转到代码段的入口地址,执行代码。
所述的在基站上对ELF模块进行连接和预加载,根据申请到的内存的空间地址,就可以修正ELF文件中与这些地址相关的符号的地址,使其指向将要在节点上加载的正确的地址。
所述的提取ELF文件中的数据段和代码段,将这两个段的内容通过无线通信发送到节点,因为ELF文件经过在基站的预加载,其包含的地址信息都是正确的,因此只需要传送数据段和代码段就可以了,而不必发送整个ELF文件。
所述的节点上需要完成的加载过程只包括将数据段加载到步骤3)中申请的数据内存地址,将代码段写入程序flash上申请到的地址。
本发明与背景技术相比,具有有益的效果是:
首先可以减少数据的传输,因为预先在基站上完成了模块的连接过程,因此在传输模块的过程中不需要传送ELF文件的重定位信息和符号信息,其次在节点端可以简化模块的加载过程,加速模块加载过程,因为连接过程和预加载过程由节点端转移到了基站,基站发送的到节点的二进制镜像已经是修正好地址的可执行文件,因此在节点上只需要把镜像写入申请好的内存位置就可以了,省去了重定位的过程。
附图说明
附图是本发明方法的流程示意图。
具体实施方式
基于AVR的体系结构,编译一个需要发布的模块的代码,生成可重定位的ELF文件格式,通过avr-gcc的“-c”选项可以实现这一过程,如附图所示:
1)首先在基站段按照ELF的文件格式解析这个ELF文件,获取此ELF文件中数据段和代码段的信息,其中数据段包括.data,.bss段,代码段包括.text段,信息主要包括这些段在文件中的位置偏移量,和这些段的大小,同时获取重定位段的信息,即“.rela.text”段的信息,为后面的重定位过程做准备;
2)根据1)中获取的数据段和代码段的信息,向节点发送数据包,申请内存空间,数据包内容为需要申请内存的大小,Micaz属于哈佛体系结构,其数据和指令时分开存储的,所以数据包内容需要包含数据内存和程序内存的大小。在RAM中申请指定大小的内存空间,这个大小为.data段和.bss段大小的总和,在程序Flash上申请指定大小的程序内存空间,这个大小为.text段的大小,将申请到的空间的地址,通过无线通信,发送到基站;
3)节点端根据收到的数据包,为ELF文件申请内存空间,在RAM中申请指定大小的内存空间,这个大小为.data段和.bss段大小的总和,在程序Flash上申请指定大小的程序内存空间,这个大小为.text段的大小,将申请到的空间的地址,通过无线通信,发送到基站;
4)基站根据接收到的内存地址,此内存地址即为ELF文件的加载的内存位置,在基站段对ELF文件进行连接和预加载。这个过程主要是ELF文件的重定位的一个过程,由于可重定位的ELF文件中,没有加载地址的信息,所以其中引用到的数据段和内存段的一些符号,其地址信息都是空的,需要根据3)中申请的内存地址,把这些空的地址信息修正为正确的地址,根据1)中所得到的重定位段的信息,重定位段是有重定位数据组成的,每条重定位信息,包括了需要重定位的地址,与这条重定位关联的符号的信息和重定位类型。根据重定位信息,定位到文件需要重定位的地方,然后获取重定位关联的符号的信息,找到这个符号需要加载的内存地址,将此地址写入,这样这条指令中的地址信息则是正确的地址信息了;
5)重定位完成后,提取链接后的ELF文件中的.data段,.bss段,.text段,封装成数据包,并发送到节点端;
6)节点接受数据包,并将.data和.bss的内容写到步骤3)中申请的RAM地址,并将.bss段内容初始化为0,将.text段内容写入步骤3)申请的程序Flash地址,然后跳转到.text的入口开始执行此模块。

Claims (1)

1.一种无线传感网络中加速加载ELF文件的方法,其特征在于该方法的步骤如下:
1)解析需要加载的ELF文件,获得模块有关加载的信息,包括ELF文件中数据段和代码段的大小;
2)根据获取的数据段和代码段的信息,基站向一个节点发送数据包,数据包的内容为需申请内存空间的大小,包括为数据段申请的数据内存和为代码段申请的程序内存;
3)节点根据收到的数据包,申请指定大小的数据内存空间和程序内存空间,返回申请到的内存空间的地址,并将地址通过无线通信发送到基站;
4)根据步骤3)申请的内存空间地址,在基站上对ELF文件进行链接和预加载,根据申请到的内存空间地址修正ELF文件中引用的符号的地址,使其指向正确的地址;
5)提取ELF文件中的数据段和代码段,将这两个段的内容通过无线通信发送到节点;
6)节点接收完数据后,将数据段加载到步骤3)中申请的数据内存地址,将代码段写入程序内存flash上申请到的地址,然后跳转到代码段的入口地址,执行代码。 
CN2008100615778A 2008-05-07 2008-05-07 一种无线传感网络中加速加载elf文件的方法 Expired - Fee Related CN101277265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100615778A CN101277265B (zh) 2008-05-07 2008-05-07 一种无线传感网络中加速加载elf文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100615778A CN101277265B (zh) 2008-05-07 2008-05-07 一种无线传感网络中加速加载elf文件的方法

Publications (2)

Publication Number Publication Date
CN101277265A CN101277265A (zh) 2008-10-01
CN101277265B true CN101277265B (zh) 2011-05-04

Family

ID=39996287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100615778A Expired - Fee Related CN101277265B (zh) 2008-05-07 2008-05-07 一种无线传感网络中加速加载elf文件的方法

Country Status (1)

Country Link
CN (1) CN101277265B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101742490B (zh) * 2009-12-02 2012-07-04 浙江大学 安全有效的无线传感器网络程序动态更新方法
CN101765109B (zh) * 2009-12-14 2012-05-02 浙江大学 可抵御妥协节点攻击的无线传感器网络程序动态更新方法
CN105426223B (zh) * 2015-12-25 2019-01-04 百度在线网络技术(北京)有限公司 应用加载方法和装置
CN106598674A (zh) * 2016-12-16 2017-04-26 中南大学 一种基于可重定位elf文件的软件快速加载方法
CN110837391B (zh) * 2019-11-04 2021-02-12 广州方硅信息技术有限公司 应用程序的热更新方法及装置、存储介质及电子设备
CN111856989A (zh) * 2020-06-19 2020-10-30 中电科航空电子有限公司 一种单片机动态链接方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1385985A (zh) * 2001-05-16 2002-12-18 华为技术有限公司 在智能网上实现业务语音动态加载的方法及其系统组网
CN1593054A (zh) * 2001-05-18 2005-03-09 高通股份有限公司 无线装置中功能对象的动态加载和创建
CN1635737A (zh) * 2003-12-26 2005-07-06 华为技术有限公司 一种智能业务的实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1385985A (zh) * 2001-05-16 2002-12-18 华为技术有限公司 在智能网上实现业务语音动态加载的方法及其系统组网
CN1593054A (zh) * 2001-05-18 2005-03-09 高通股份有限公司 无线装置中功能对象的动态加载和创建
CN1635737A (zh) * 2003-12-26 2005-07-06 华为技术有限公司 一种智能业务的实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WO 2004/004226 A3,全文.
黄廷辉,崔更申,赵岭忠.无线传感器网络软件动态加载技术.计算机应用第28卷 第4期.2008,第28卷(第4期),1029-1031.
黄廷辉,崔更申,赵岭忠.无线传感器网络软件动态加载技术.计算机应用第28卷 第4期.2008,第28卷(第4期),1029-1031. *

Also Published As

Publication number Publication date
CN101277265A (zh) 2008-10-01

Similar Documents

Publication Publication Date Title
CN101277265B (zh) 一种无线传感网络中加速加载elf文件的方法
CN101477532B (zh) 实现数据存储、读取的方法、装置及系统
US9146732B2 (en) Systems and methods for executing an application on a mobile device
WO2006026769A2 (en) Maintaining mobile device electronic files
CN104391728A (zh) 软件升级差量包获取方法和相应的升级方法以及装置
US11132545B2 (en) Image recognition method and terminal
CN103907329A (zh) 用于实现离线web应用执行的方法和装置
TW202141474A (zh) 應用功能配置方法、終端設備、伺服器及存儲介質
CN104123149B (zh) 软件升级方法、装置、客户端及系统
CN106164860A (zh) 用于修改初始化计算设备所使用的固件的系统和方法
CN103118198A (zh) 移动终端的固件升级方法及系统
CN102541926B (zh) 一种数据交换处理方法、设备和系统
US20110093510A1 (en) Methods and systems for serially transmitting records in xml format
CN110765067A (zh) 数据处理方法及装置
CN101526902B (zh) 用于移动终端的可执行文件压缩及加载方法
CN100441012C (zh) 一种更新移动终端用户界面的方法
US20110111802A1 (en) Portable data carrier comprising a cat interpreter
CN108255735A (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN102855305A (zh) 数据升级方法与装置
TW201242392A (en) System and method for sharing group
CN101504613B (zh) 用于受限系统的分布式动态二进制翻译方法
US8473455B2 (en) Query-oriented message characterization
CN112905464B (zh) 应用运行环境数据处理方法及装置
CN105407133A (zh) 一种移动应用自动化发布方法和系统
CN114942781A (zh) 一种用于数据读取的数据格式适配方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081219

Address after: 38, Da Da Lu, Xihu District, Zhejiang, Hangzhou Province, China: 310027

Applicant after: Zhejiang University

Co-applicant after: INSIGMA GROUP CO., LTD.

Address before: 38, Da Da Lu, Xihu District, Zhejiang, Hangzhou Province, China: 310027

Applicant before: Zhejiang University

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110504

Termination date: 20200507

CF01 Termination of patent right due to non-payment of annual fee