999国内精品永久免费视频,色偷偷9999www,亚洲国产成人爱av在线播放,6080亚洲人久久精品,欧美超高清xxxhd

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
WinCE中的Flash分區(qū)和CheckSum點滴
微軟Microsoft
收藏本文     查看收藏
  CheckSum是一種用于檢查數(shù)據(jù)文件有沒有發(fā)生變化的方法,對于一些重要的數(shù)據(jù)文件為了檢查傳輸過程過程中有沒有數(shù)據(jù)的損壞或丟失,常常會用到CheckSum算法。

  WinCE中經(jīng)常用到CheckSum的地方就是對即將燒寫進Flash中的image文件進行校驗,和燒寫完對寫入的數(shù)據(jù)進行完整性檢查,一般這里的image有OSimage和UT的bin文件兩種。

  CheckSum的原理是把一個文件以二進制的方式打開,將里面所有的字節(jié)的值一個一個的累加起來,一直到最后一個字節(jié),最后得到一個累加值,它就是我們要的CheckSum的結(jié)果。從CheckSum的這個特性可知數(shù)據(jù)值為0的字節(jié)是不會影響到最終的結(jié)果,這種特性我認為也是CheckSum的一個弱點,不能像MD5,SHA1等摘要算法一樣基本上能反映出哪怕一個bit的改動,但是這個特性也給WinCE運行期間計算保存在Flash上的image數(shù)據(jù)文件的完整性帶來了方便。

  為了從Flash中得到正確的CheckSum值必須先了解image在Flash中的燒寫方式,這包括了解image文件內(nèi)部是怎么組織的,F(xiàn)lash的分區(qū)和塊的分配是如何進行的。

  先以Sumsung的FLASH為例來分析一下Flash的分區(qū)大體原則:

  WinCE的Flash分區(qū)大體分為Nand BootLoader(NBL)區(qū),Binfs區(qū)和文件區(qū),NBL區(qū)存放BootLoader和燒寫Image的工具程序,Binfs分區(qū)存放MBR、image的XIPKERNEL.bin、Chain.bin和NK.bin等OS的數(shù)據(jù)。文件區(qū)一般格式化為FAT分區(qū)讓W(xué)inCE上層的磁盤和分區(qū)管理程序管理。Flash的分區(qū)是由UT在燒入image的時候決定的,包括每個分區(qū)的起止塊地址,分區(qū)的大小和類型等,Detail如下:

  1)NBL區(qū)一般占10個塊(128K/塊)的大小,分區(qū)雖小但是卻是最重要的部分,保存著UT的三大模塊:NBL1(bootloader),NBL2(IPL,Init Program Loader)和NBL3(Upgrade Tools),其中NBL1和NBL2共同保存在FlASH的第一個block中,F(xiàn)LASH芯片在生產(chǎn)的時候廠商都會特別保障這些block的可靠性,特別是保存了最開始bootloader代碼和IPL的第一塊。按經(jīng)驗來講,NBL的三個模塊加起來一共大約400多K,其占用的10塊的block=128K×10 byte的空間大部分是空余的,為了下面敘述方便,這里假設(shè)NBL3_END_BLCOK為NBL的最后的block編號。

  2)Binfs分區(qū)緊接著BL分區(qū),即CE_START_BLOCK=NBL3_END_BLCOK+1,然后一般會將Binfs分區(qū)的第一個塊存放MBR,MBR在這里僅僅是個標(biāo)志,不像PC的硬盤中的MBR主要用來保存分區(qū)表的信息和引導(dǎo)代碼。所以Binfs分區(qū)中保存OS數(shù)據(jù)的起止block范圍為CE_START_BLOCK+1到CE_START_BLOCK+CE_MAX_BLOCK為止,我接觸的項目中其大小一般為250個塊左右,大約等于30Mbytes,WinCE的image一般不會超過這個大小,如果需要可以在分區(qū)時加大它的大小。

  3)Flash的文件分區(qū)就是將剩下的block模擬成為和硬盤,CF卡類似的塊設(shè)備讓W(xué)inCE加載成盤符使用。

  現(xiàn)在回到正題:如何計算CheckSum。

  1)UT的CheckSum計算

  UT的bin文件是由bootloader.bin(NBL1),IPL.bin(NBL2)和UpgradeTools.bin(NBL3)這三文件打成的一個封包,然后用PC上的checksum工具計算出checksum值,我們的目的就是在WinCE起來后用AP能通過讀Flash的NBL的三個分區(qū)并實時計算到這個值。

  UT的bin文件最后會被完整的燒寫到NAND Flash的編號為0到NBL3_END_BLCOK的block中(雖然會被分為三塊燒,但是數(shù)據(jù)是完整的),具體占用多少block由bin文件的大小決定,剩余的空間會以0填滿。雖然不知道bin文件具體的結(jié)尾的位置,但是知道剩余空間填0的這個特性后,我們就可以直接調(diào)用NAND Flash的驅(qū)動程序,而且可以使用輕量級的不帶壞塊管理的驅(qū)動代碼直接去讀0到NBL3_END_BLCOK的所有數(shù)據(jù),然后把每個byte累加起來就能得到CheckSum的值了。

  2)IMG的CheckSum計算

  大家都知道,如果定義了MultiXIP region的話,WinCE的image用romimage編譯出來會生成多個bin文件,這里假設(shè)我們在配置image的bib文件中定義了兩個region:XIPKernel和NK,那么在執(zhí)行romimage ce.bib 之后我們會得到XIPKernel.bin,NK.bin,Chain.bin三個文件,最后調(diào)用makebinfs生成一個ceimgb.nb0的image鏡像文件,我們也會先用CheckSum工具對ceimgb.nb0進行運算得到其完整的CheckSum值。

  燒寫的過程和UT有兩點不同:1)燒寫內(nèi)容選擇上,UT的bin文件的所有數(shù)據(jù)會被燒入Flash,而IMG的鏡像文件包含了一些不需要燒入的頭信息,所以可能導(dǎo)致燒入Flash的數(shù)據(jù)不完整;2)燒寫使用的NAND Flash的函數(shù)不一樣,因為IMG燒寫在FLASH中的位置位于普通的不受特殊保護的塊區(qū),所以要考慮到壞塊的管理,所以在調(diào)用具體的讀寫接口的時候要使用較高一層的代碼,拿samsung的flash驅(qū)動PoketStoreII為例,燒寫UT時用的讀寫函數(shù)為NF_ReadPage ,而燒寫IMG鏡像使用的時STL_Read/Write。

  第一個不同點決定了我們?nèi)绻苡嬎愕玫秸_的IMG的CheckSum值則必須將沒有燒入到Flash中的ceimgb.nb0的頭部數(shù)據(jù)燒寫到為保存IMG預(yù)留的并且沒有被占用的Flash中,比如IMG預(yù)留空間的最后一塊,塊號為CE_START_BLOCK+CE_MAX_BLOCK。我們通過修改燒寫IMG的代碼,在燒寫完IMG的三個bin的數(shù)據(jù)后把從0x0到0x248(記不太清楚,大概)的數(shù)據(jù)寫到塊CE_START_BLOCK+CE_MAX_BLOCK中。這樣的話因為其他的空余空間被0填充,我們就可以調(diào)用STL_READ把從CE_START_BLOCK+1(+1是為了略過MBR塊)到CE_START_BLOCK+CE_MAX_BLOCK數(shù)據(jù)全讀取出來并且累加得到最后的CheckSum值。


 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

公司名稱: 微軟Microsoft
聯(lián) 系 人: 北京市場部
電  話: 010-800-810-7722
傳  真:
地  址: 望京街8號利星行廣場C座 微軟大廈
郵  編: 100102
主  頁:
 
該廠商相關(guān)技術(shù)文摘:
ARM嵌入式系統(tǒng)的ISP設(shè)計
嵌入式系統(tǒng)的系統(tǒng)測試和可靠性評估
嵌入式軟件測試
優(yōu)秀系統(tǒng)集成工程師應(yīng)具備哪些專業(yè)知識
嵌入式系統(tǒng)開源軟件的回顧和展望
嵌入式操作系統(tǒng)Windows CE研究
關(guān)于Windows CE開發(fā)中最常用的概念和知識
Windows Embedded Server常見問題解答
Windows Embedded POSReady常見問題解答
Windows Embedded Enterprise常見問題解答
Windows Embedded Standard 常見問題
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved