CN101277265B - 一种无线传感网络中加速加载elf文件的方法 - Google Patents
一种无线传感网络中加速加载elf文件的方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种无线传感网络中加速加载ELF文件的方法。本发明方法通过预先获得节点端的内存地址信息,在基站上预加载ELF文件,并修正文件中所引用的符号的地址信息,因此可以减少数据的传输,因为预先在基站上完成了模块的连接过程,因此在传输模块的过程中不需要传送ELF文件的重定位信息和符号信息,其次在节点端可以简化模块的加载过程,加速模块加载过程,因为连接过程和预加载过程由节点端转移到了基站,基站发送的到节点的二进制镜像已经是修正好地址的可执行文件,因此在节点上只需要把镜像写入申请好的内存位置就可以了,省去了重定位的过程。
Description
技术领域
本发明涉及加载技术,尤其是在无线传感网络中加速加载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上申请到的地址,然后跳转到代码段的入口地址,执行代码。
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)
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)
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 | 华为技术有限公司 | 一种智能业务的实现方法 |
-
2008
- 2008-05-07 CN CN2008100615778A patent/CN101277265B/zh not_active Expired - Fee Related
Patent Citations (3)
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)
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 |