两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種無線傳感網(wǎng)絡(luò)中加速加載elf文件的方法

文檔序號:7687508閱讀:274來源:國知局
專利名稱:一種無線傳感網(wǎng)絡(luò)中加速加載elf文件的方法
技術(shù)領(lǐng)域
本發(fā)明涉及加載技術(shù),尤其是在無線傳感網(wǎng)絡(luò)中加速加載ELF文件的技術(shù)。
技術(shù)背景近年來,隨著信息技術(shù)的進步, 一種信息的獲取技術(shù)--傳感技術(shù),也得到了 迅速的發(fā)展,從上世紀末開始,現(xiàn)場總線技術(shù)開始應(yīng)用于傳感器網(wǎng)絡(luò),人們用 其組建智能化傳感器網(wǎng)絡(luò),大量多功能傳感器被運用,近些年無線技術(shù)的進步, 人們將其運用在傳感器網(wǎng)絡(luò)中,形成了無線傳感器網(wǎng)絡(luò)。無線傳感網(wǎng)絡(luò)是新一代的傳感器網(wǎng)絡(luò),具有廣泛的應(yīng)用前途。它不僅在工業(yè)、 農(nóng)業(yè)、軍事、環(huán)境、醫(yī)療等傳統(tǒng)領(lǐng)域具有巨大的運用空間,在家用,保健,交 通等新興領(lǐng)域也展示出非凡的應(yīng)用價值。無線傳感網(wǎng)絡(luò)存在自身的特點節(jié)點資源有限,數(shù)量大,分布廣,系統(tǒng)動態(tài) 性強。往往通過電池來供電,因此低功耗成為無線傳感網(wǎng)絡(luò)設(shè)計的一個重要的 特性。根據(jù)其特點無限傳感網(wǎng)絡(luò)在其部署之后,需要能夠動態(tài)更新其節(jié)點上程 序,此過程稱為重編程。現(xiàn)有的很多操作系統(tǒng)通過基于模塊加載的方式,來實 現(xiàn)重編程的功能。模塊采用ELF文件來實現(xiàn),用于模塊的ELF文件通常為可重 定位類型的ELF文件。因為可以根據(jù)加載位置,來重定位文件中引用符號的地 址,此類型文件可以被加載到任意的地址,操作系統(tǒng)可以在運行時實現(xiàn)模塊的 動態(tài)的連接、重定位和加載。模塊可以通過網(wǎng)絡(luò)或者EEPROM來獲取,通過模 塊加載機制,可以很容易的實現(xiàn)軟件的更新?;诳芍囟ㄎ坏腅LF文件的模塊 加載的過程,主要通過兩個階段,首先是動態(tài)連接的過程,動態(tài)連接的本質(zhì), 就是對ELF文件的進行重定位和符號解析,此過程需要一些模塊的相關(guān)信息來 完成模塊的動態(tài)鏈接,比如模塊引用符號的相關(guān)信息;第二個階段為加載過程, 把模塊的各個段加載到指定的內(nèi)存地址。 發(fā)明內(nèi)容本發(fā)明提出了一種可以加速加載ELF文件的方案,并且可以有效的減少加 載時需要的模塊信息,從而達到低功耗的要求。本發(fā)明針對的是Micaz平臺,采用在基站預(yù)加載ELF文件的方案來實現(xiàn)模 塊的加速加載。其具體步驟如下1)解析需要加載的ELF文件,獲得模塊有關(guān)加載的信息,包括ELF文件中數(shù)據(jù)段和代碼段的大?。?) 基站向一個節(jié)點發(fā)送數(shù)據(jù)包,數(shù)據(jù)包的內(nèi)容為需申請內(nèi)存空間的大小, 包括為數(shù)據(jù)段申請的數(shù)據(jù)內(nèi)存和為代碼段申請的程序內(nèi)存;3) 節(jié)點根據(jù)步驟2)的信息,申請指定大小的數(shù)據(jù)內(nèi)存空間和程序內(nèi)存空 間,返回申請到的空間的地址,并將地址通過無線通信發(fā)送到基站;4) 根據(jù)步驟3)申請的地址,在基站上對ELF模塊進行連接和預(yù)加載,根 據(jù)申請到的內(nèi)存空間地址修正ELF文件中引用的符號的地址信息,使其指向正 確的地址;5) 提取ELF文件中的數(shù)據(jù)段和代碼段,將這兩個段的內(nèi)容通過無線通信發(fā) 送到節(jié)點;6) 節(jié)點上接受完數(shù)據(jù)后,將數(shù)據(jù)段加載到步驟3)中申請的數(shù)據(jù)內(nèi)存地址, 將代碼段寫入程序flash上申請到的地址,然后跳轉(zhuǎn)到代碼段的入口地址,執(zhí)行 代碼。所述的在基站上對ELF模塊進行連接和預(yù)加載,根據(jù)申請到的內(nèi)存的空間 地址,就可以修正ELF文件中與這些地址相關(guān)的符號的地址,使其指向?qū)⒁?節(jié)點上加載的正確的地址。所述的提取ELF文件中的數(shù)據(jù)段和代碼段,將這兩個段的內(nèi)容通過無線通 信發(fā)送到節(jié)點,因為ELF文件經(jīng)過在基站的預(yù)加載,其包含的地址信息都是正 確的,因此只需要傳送數(shù)據(jù)段和代碼段就可以了,而不必發(fā)送整個ELF文件。所述的節(jié)點上需要完成的加載過程只包括將數(shù)據(jù)段加載到步驟3)中申請的 數(shù)據(jù)內(nèi)存地址,將代碼段寫入程序flash上申請到的地址。本發(fā)明與背景技術(shù)相比,具有有益的效果是-首先可以減少數(shù)據(jù)的傳輸,因為預(yù)先在基站上完成了模塊的連接過程,因 此在傳輸模塊的過程中不需要傳送ELF文件的重定位信息和符號信息,其次在 節(jié)點端可以簡化模塊的加載過程,加速模塊加載過程,因為連接過程和預(yù)加載 過程由節(jié)點端轉(zhuǎn)移到了基站,基站發(fā)送的到節(jié)點的二進制鏡像已經(jīng)是修正好地 址的可執(zhí)行文件,因此在節(jié)點上只需要把鏡像寫入申請好的內(nèi)存位置就可以了, 省去了重定位的過程。


附圖是本發(fā)明方法的流程示意圖。
具體實施方式
基于AVR的體系結(jié)構(gòu),編譯一個需要發(fā)布的模塊的代碼,生成可重定位的4ELF文件格式,通過avr-gcc的"-c"選項可以實現(xiàn)這一過程,如附圖所示1) 首先在基站段按照ELF的文件格式解析這個ELF文件,獲取此ELF 文件中數(shù)據(jù)段和代碼段的信息,其中數(shù)據(jù)段包括.data, .bss段,代碼段包括.text 段,信息主要包括這些段在文件中的位置偏移量,和這些段的大小,同時獲取 重定位段的信息,即".rela.text"段的信息,為后面的重定位過程做準備;2) 根據(jù)1)中獲取的數(shù)據(jù)段和代碼段的信息,向節(jié)點發(fā)送數(shù)據(jù)包,申請 內(nèi)存空間,數(shù)據(jù)包內(nèi)容為需要申請內(nèi)存的大小,Micaz屬于哈佛體系結(jié)構(gòu),其數(shù) 據(jù)和指令時分開存儲的,所以數(shù)據(jù)包內(nèi)容需要包含數(shù)據(jù)內(nèi)存和程序內(nèi)存的大小。 在RAM中申請指定大小的內(nèi)存空間,這個大小為.data段和.bss段大小的總和, 在程序Flash上申請指定大小的程序內(nèi)存空間,這個大小為.text段的大小,將申 請到的空間的地址,通過無線通信,發(fā)送到基站;3) 節(jié)點端根據(jù)收到的數(shù)據(jù)包,為ELF文件申請內(nèi)存空間,在RAM中申 請指定大小的內(nèi)存空間,這個大小為.data段和.bss段大小的總和,在程序Flash 上申請指定大小的程序內(nèi)存空間,這個大小為.text段的大小,將申請到的空間 的地址,通過無線通信,發(fā)送到基站;4) 基站根據(jù)接收到的內(nèi)存地址,此內(nèi)存地址即為ELF文件的加載的內(nèi)存 位置,在基站段對ELF文件進行連接和預(yù)加載。這個過程主要是ELF文件的重 定位的一個過程,由于可重定位的ELF文件中,沒有加載地址的信息,所以其 中引用到的數(shù)據(jù)段和內(nèi)存段的一些符號,其地址信息都是空的,需要根據(jù)3)中 申請的內(nèi)存地址,把這些空的地址信息修正為正確的地址,根據(jù)l)中所得到的 重定位段的信息,重定位段是有重定位數(shù)據(jù)組成的,每條重定位信息,包括了 需要重定位的地址,與這條重定位關(guān)聯(lián)的符號的信息和重定位類型。根據(jù)重定 位信息,定位到文件需要重定位的地方,然后獲取重定位關(guān)聯(lián)的符號的信息, 找到這個符號需要加載的內(nèi)存地址,將此地址寫入,這樣這條指令中的地址信 息則是正確的地址信息了;5) 重定位完成后,提取鏈接后的ELF文件中的.data段,.bss段,.text 段,封裝成數(shù)據(jù)包,并發(fā)送到節(jié)點端;6) 節(jié)點接受數(shù)據(jù)包,并將.data和.bss的內(nèi)容寫到步驟3)中申請的RAM 地址,并將.bss段內(nèi)容初始化為O,將.text段內(nèi)容寫入步驟3)申請的程序Flash 地址,然后跳轉(zhuǎn)到.text的入口開始執(zhí)行此模塊。
權(quán)利要求
1. 一種無線傳感網(wǎng)絡(luò)中加速加載ELF文件的方法,其特征在于該方法的步驟如下1)解析需要加載的ELF文件,獲得模塊有關(guān)加載的信息,包括ELF文件中數(shù)據(jù)段和代碼段的大??;2)基站向一個節(jié)點發(fā)送數(shù)據(jù)包,數(shù)據(jù)包的內(nèi)容為需申請內(nèi)存空間的大小,包括為數(shù)據(jù)段申請的數(shù)據(jù)內(nèi)存和為代碼段申請的程序內(nèi)存;3)節(jié)點根據(jù)步驟2)的信息,申請指定大小的數(shù)據(jù)內(nèi)存空間和程序內(nèi)存空間,返回申請到的空間的地址,并將地址通過無線通信發(fā)送到基站;4)根據(jù)步驟3)申請的地址,在基站上對ELF模塊進行連接和預(yù)加載,根據(jù)申請到的內(nèi)存空間地址修正ELF文件中引用的符號的地址信息,使其指向正確的地址;5)提取ELF文件中的數(shù)據(jù)段和代碼段,將這兩個段的內(nèi)容通過無線通信發(fā)送到節(jié)點;6)節(jié)點上接受完數(shù)據(jù)后,將數(shù)據(jù)段加載到步驟3)中申請的數(shù)據(jù)內(nèi)存地址,將代碼段寫入程序flash上申請到的地址,然后跳轉(zhuǎn)到代碼段的入口地址,執(zhí)行代碼。
2. 根據(jù)權(quán)利要求1所述的一種無線傳感網(wǎng)絡(luò)中加速加載ELF文件的方法, 其特征在于所述的在基站上對ELF模塊進行連接和預(yù)加載,根據(jù)申請到的內(nèi) 存的空間地址,就可以修正ELF文件中與這些地址相關(guān)的符號的地址,使其指 向?qū)⒁诠?jié)點上加載的正確的地址。
3. 根據(jù)權(quán)利要求1所述的一種無線傳感網(wǎng)絡(luò)中加速加載ELF文件的方法, 其特征在于所述的提取ELF文件中的數(shù)據(jù)段和代碼段,將這兩個段的內(nèi)容通 過無線通信發(fā)送到節(jié)點,因為ELF文件經(jīng)過在基站的預(yù)加載,其包含的地址信 息都是正確的,因此只需要傳送數(shù)據(jù)段和代碼段就可以了,而不必發(fā)送整個ELF 文件。
4. 根據(jù)權(quán)利要求1所述的一種無線傳感網(wǎng)絡(luò)中加速加載ELF文件的方法, 其特征在于所述的節(jié)點上需要完成的加載過程只包括將數(shù)據(jù)段加載到步驟3) 中申請
全文摘要
本發(fā)明公開了一種無線傳感網(wǎng)絡(luò)中加速加載ELF文件的方法。本發(fā)明方法通過預(yù)先獲得節(jié)點端的內(nèi)存地址信息,在基站上預(yù)加載ELF文件,并修正文件中所引用的符號的地址信息,因此可以減少數(shù)據(jù)的傳輸,因為預(yù)先在基站上完成了模塊的連接過程,因此在傳輸模塊的過程中不需要傳送ELF文件的重定位信息和符號信息,其次在節(jié)點端可以簡化模塊的加載過程,加速模塊加載過程,因為連接過程和預(yù)加載過程由節(jié)點端轉(zhuǎn)移到了基站,基站發(fā)送的到節(jié)點的二進制鏡像已經(jīng)是修正好地址的可執(zhí)行文件,因此在節(jié)點上只需要把鏡像寫入申請好的內(nèi)存位置就可以了,省去了重定位的過程。
文檔編號H04Q7/22GK101277265SQ20081006157
公開日2008年10月1日 申請日期2008年5月7日 優(yōu)先權(quán)日2008年5月7日
發(fā)明者卜佳俊, 孟碩培, 瑋 董, 純 陳 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
满洲里市| 资阳市| 安多县| 九寨沟县| 永康市| 东山县| 千阳县| 日喀则市| 法库县| 湘阴县| 屏南县| 萨迦县| 南安市| 泽普县| 沅陵县| 海阳市| 和林格尔县| 维西| 太湖县| 泸溪县| 靖西县| 富蕴县| 泰兴市| 郸城县| 兴和县| 久治县| 甘谷县| 南开区| 张家口市| 绥棱县| 镶黄旗| 德化县| 汪清县| 江北区| 霍林郭勒市| 黎川县| 夏邑县| 睢宁县| 施甸县| 大足县| 沧源|