跳到主要內容

發表文章

目前顯示的是 7月, 2013的文章

Windows CE XIP

上課學員提問  何謂  eXecute In Place ( XIP ) Windows CE 對於記憶體的定義與一般桌上型 Windows OS 稍有不同, Windows CE Memory 泛指所有 RAM, ROM , FLASH 都屬於 Windows CE 作業系統的記憶體 在一般的設計上 若 image 採用壓縮方式儲存在ROM/FLASH內,執行時期則必須先透過解壓縮到RAM的記憶體區塊才能執行, 後續為了提供更多的可用記憶體,Windows CE支援XIP機制,ROM/Flash內的 image 採不壓縮方式寫入, 當應用程式需要執行時, 若 ROM/Flash支援 隨機存取與線性存取的話, 因為image 沒有壓縮, Process便可直接於儲存的空間內執行,無須透過重新載入 RAM記憶體區塊內執行,因而節省較多的RAM空間供系統與使用者使用 但一般的ROM/FLASH執行速度相較於RAM來說執行速度將較為緩慢,因此也造成系統的效能可能有下降的風險,因此XIP設計上普遍針對成本導向的一般消費產品應用較多,對於需要高效能或 real-time 相關的產品 比較少看到 XIP 的設計應用.
NK.BIN 形成的主要參數儲存在OSDesign專案中的bib配置檔內 其中主要有四個設定區塊 MEMORY CONFIG MODULES FILES 其中與NK.BIN形成最主要的設定是MEMORY與CONFIG 兩個區塊的配置 MEMORY區塊: 主要是配製NK.BIN於記憶體中的安排方式 格式如下: NAME(區塊名稱) Address(記憶體位置) Size Type 其中Type:宣告常見有下面型態:   FIXUPVAR: 該記憶體區快可以透過參數調整   NANDIMAGE: 標示該記憶體區快可以使用 NAND Flash 存放   RAM : 該記憶體區塊需使用ram 存放   RAMIMAGE: 標示該記憶體區段可以使用RAM或NOR Flash存放   RESERVED: 標示該記憶體區段為保留區塊 CONFIG 區塊: 提供附加選項 AUTOSIZE: 自動配置runtime所使用的記憶體 PROFILE: 提供Runtime的效能取樣功能 BOOTJUMP: 指定系統啟動的指令進入點 COMPRESSON: 指定nk.bin是否壓縮 KERNELFIXUPS: 指示核心是否需重新記憶體定位動作 RAMFLAGS: 設定核心運作時的特殊屬性 ROMSTART: 指定nk.bin ROM的起始位址 ROMWIDTH: 指定nk.bin ROM的位元寬度(8/16/32)與檔案數量 ROMSIZE: 指定ROM的大小