在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 嵌入式多節(jié)點(diǎn)的無線批量程序更新系統(tǒng)設(shè)計(jì)(一)

            嵌入式多節(jié)點(diǎn)的無線批量程序更新系統(tǒng)設(shè)計(jì)(一)

            作者: 時(shí)間:2018-08-31 來源:網(wǎng)絡(luò) 收藏

              一 總體設(shè)計(jì)和平臺(tái)簡(jiǎn)介

            本文引用地址:http://www.biyoush.com/article/201808/388163.htm

              項(xiàng)目旨在實(shí)現(xiàn)多ARM節(jié)點(diǎn)通過無線通信完成對(duì)批量節(jié)點(diǎn)的程序燒錄,如圖2.1所示。系統(tǒng)分為上位機(jī)、發(fā)射接收模塊和待燒錄節(jié)點(diǎn)三個(gè)部分,上位機(jī)通過ID號(hào)選擇待燒錄節(jié)點(diǎn)并通過無線模塊向下廣播燒錄數(shù)據(jù),各被選擇節(jié)點(diǎn)通過無線模塊接收燒錄數(shù)據(jù)檢查無誤后存儲(chǔ)。上位機(jī)軟件設(shè)定待燒錄節(jié)點(diǎn)的ID、燒錄文件目錄、發(fā)送數(shù)據(jù)包大小、發(fā)送速率等參數(shù)后將數(shù)據(jù)打包傳送到基站,基站通過無線發(fā)射模塊廣播數(shù)據(jù)。

              整體思想是利用已有的代碼和目標(biāo)代碼進(jìn)行比較。將兩者的差異通過無線網(wǎng)絡(luò)(802.15.4)廣播出去。在每個(gè)接受節(jié)點(diǎn)根據(jù)收到的差異文件(也就是補(bǔ)丁文件patch),對(duì)原有代碼進(jìn)行修改(patching的過程)以達(dá)到更新程序的目的。

              總體上來說本項(xiàng)目有兩大難點(diǎn),涉及到巧妙的算法設(shè)計(jì)。

              1、如何用盡可能少的字節(jié)數(shù),來表示不同代碼之間的差異?

              2、如何確??煽啃詡鬏?

              關(guān)于問題1,我們知道要待傳輸?shù)淖止?jié)數(shù)越少,對(duì)通信的要求越低。更新程序的效率也會(huì)更高。而且少的字節(jié)數(shù)也意味著丟更少的包。關(guān)于問題2,由于我們是要對(duì)代碼進(jìn)行修正,所以一個(gè)字節(jié)的錯(cuò)誤可能就會(huì)造成整個(gè)程序的崩潰。這對(duì)嵌入式程序,特別是運(yùn)行在成千上萬個(gè)節(jié)點(diǎn)上的程序是不可接受的,必須保證100%的正確接受。除此兩大難點(diǎn)(也是關(guān)鍵點(diǎn))之外,還有一些別的附加要求。如果滿足了能夠提高系統(tǒng)的持久性。分別是:

              1、使用盡可能小的RAM。因?yàn)榍度胧叫酒腞AM普遍珍貴。

              2、消耗盡可能少的能量。

              3、更新速度盡可能的快。

              項(xiàng)目使用的硬件平臺(tái)是我們自制的智能小車eMouse 。平臺(tái)采用 TI公司32位Stellaris LM3S1968微處理器,工作頻率為50MHz,內(nèi)含256 KB單周期Flash和64 KB單周期SRAM,flash支持可由用戶管理的塊保護(hù)和數(shù)據(jù)編程;板上Zigbee模塊通過串口與CPU通信,模塊僅提供MAC層服務(wù),CPU與模塊間以MAC幀的形式通過串口傳遞數(shù)據(jù)。eMouse外觀如圖2.2所示。

              項(xiàng)目開發(fā)系統(tǒng)環(huán)境為Ubuntu9.04,程序編譯和下載工具分別為開源的sourcery G++和Openocd,用戶界面采用java語言編寫。

              以下章節(jié)將對(duì)系統(tǒng)設(shè)計(jì)作詳盡的論述。

              二 程序更新設(shè)計(jì)與實(shí)現(xiàn)

              一些傳統(tǒng)的更新方法注重代碼本身的特點(diǎn)。比如以函數(shù)為基本的更新單位。在每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè)動(dòng)態(tài)鏈接器,將新的函數(shù)重新鏈接到原程序。其實(shí)代碼本身可以將其視為一串二進(jìn)制的文本文件。代碼的更新即是從一串舊的文本更新為一串新的文本。

              為此我們定義了一系列基本的更新操作命令,以及兩個(gè)輔助的索引指針:in_index以及out_index。in_index代表輸入文件當(dāng)前的索引值,而out_index代表輸出文件當(dāng)前的索引值。

              基本的命令如下:

              Copy:將in_index所指的字節(jié)復(fù)制到out_index處,并且in_index和out_index分別加1。

              Replace A:將當(dāng)前out_index所指的字節(jié)用A來替換,并且in_index和out_index分別加1。

              Delete:in_index加1,out_index不變。實(shí)際為刪除in_index所指的字節(jié)

              Insert A:在當(dāng)前out_index處插入A,in_index不變,out_index加1。

              Kill:表示刪除in_index后所有的原程序代碼。

              其中包含了如下的子問題:

              2.1 命令的表示

              通過上面所說的基本命令的組合,我們可以表示出從一個(gè)舊文件到一個(gè)新文件的過程。隨之帶來了一個(gè)問題。這些命令應(yīng)該如何表示才能盡可能的降低補(bǔ)丁文件(命令的組合)的大小?

              有幾個(gè)需要注意的地方:

              如果有連續(xù)的Copy命令,我們可以將其合并成一條命令,只要在Copy后加上表示長(zhǎng)度的Length參數(shù)即可。

              同理,如果有連續(xù)的Delete命令,也可以將其合并成一條命令,只要在Delete后加上表示長(zhǎng)度的Length參數(shù)即可。

              如果可以利用Replace命令,就不要用Delete和Insert命令的組合。這其實(shí)是另一重要的子問題:如何根據(jù)這些命令產(chǎn)生盡可能少補(bǔ)丁文件?

              有五條基本命令,這樣為了區(qū)別這五條命令,至少需要3個(gè)比特。

              由于大多數(shù)情況下,更新的大多數(shù)是程序的參數(shù)。也就是說Copy命令的數(shù)目遠(yuǎn)遠(yuǎn)大于其他命令。我們定義這5條命令如下表所示:

            表3.1

            命令

            操作碼(最左端開始)

            操作數(shù)的長(zhǎng)度(緊跟操作碼)

            總長(zhǎng)度(字節(jié))

            Copy

            1

            15

            2

            Delete

            000

            13

            2

            Replace

            001XXXXX

            8

            2

            Insert

            010XXXXX

            8

            2

            Kill

            011XXXXX

            8

            2


            上一頁 1 2 下一頁

            關(guān)鍵詞:

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉