qnx 映象檔案 QNX OS映象

2021-10-19 04:01:02 字數 3025 閱讀 7493

1. 介紹

可引導映象指包含了startup和procnto的映象,ipl,boot rom或bios(x86)可以將控制權傳遞給它。一般的可引導映象如下所示:

對於有些系統,可能需要與配置相關的設定,通常將提供不可引導的映象。將這個映象看作是第二個「檔案系統」,包含一些額外的檔案。由於是不可引導的,所以通常不包括作業系統以及startup檔案。

1.1 qnx os映象

qnx os映象通常包括os(procnto)、startup**、startup及os需要用到的庫檔案(libc.so)、以及訪問基本硬體所需的驅動**或其他**和檔案。

通常,乙個小的嵌入式系統中只會有乙個os映象,在qnx系統中,包含的元件:

startup**: startup-*;

os核心和程序管理器: procnto;

驅動和管理器:io-pkt,devnp-ncm.so,devc-ser8250,devb-eide,esh,ksh等;

應用程式;

資料檔案;

其他裝置的驅動程式、使用者應用程式以及所需的庫和資料檔案通常會放在另乙個檔案系統中。

對於大多數嵌入式系統,最好保持os映象盡可能小,將在初始啟動時不需要的應用程式甚至驅動放到另乙個檔案系統中,比如nand或nor檔案系統。

ifs(image filesystem):

引導之後,qnx os映象的內容作為檔案系統顯示在/proc/boot中,實際上,考慮os映象的一種好方法是將其視為乙個小型檔案系統,在qnx中,os映象通常被稱為ifs(image filesystem)。這個ifs有乙個小的目錄結構和檔案,目錄用於告訴os核心和程序管理器procnto os映象中檔案的名稱和位置。比如:

映象大小:

通常小的os映象,好處也是顯而易見的:

節省ram記憶體;

更快的boot時間;

更穩定,通常os映象的元件越少,引導失敗的概率就越低;

如果嵌入式系統中有硬碟驅動或快閃儲存器(比如mmc/sd),可以在os映象檔案中包含適當的檔案系統驅動程式(比如devb-eide,devb-mmcsd-board_name),並從指令碼中呼叫驅動程式來訪問其中的資料。

如果嵌入式系統中有flash裝置,可以使用這個flash裝置來儲存os映象,並直接從flash引導系統。

2. deciding what goes on the target

根據系統的需求,需要將ipl、os映象和檔案系統的組合傳送到目標板上。這些組合包括:

the ipl

the boot image

the boot image and flash filesystem

the boot image and other image filesystem

some other combination of the above

3. building an os image

當配置完buildfile後,假如名為shell.bld,在host機器上,可以執行:mkifs shell.bld shell.ifs,來生成映象檔案。可以為mkifs命令指定命令列選項。

當建立完映象後,也可以通過dumpifs工具來檢視映象中的內容。

4. building a flash filesystem image

如果應用程式需要可寫的檔案系統,並且嵌入式系統上有flash裝置,那麼可以使用qnx flas**件系統驅動來提供與posix相容的檔案系統。

將檔案構建到flas**件系統中,可以簡化到目標板的複製工作,在使用mkefs構建檔案系統之後,不再需要逐個複製每個檔案,只需要一條命令來移動映象即可。

構建flas**件系統時,有兩種選擇:

在主機上建立flas**件系統映象檔案,然後將映象檔案寫入到目標板的flash中;

在目標板系統中執行flas**件系統驅動程式,然後將檔案複製到目標板上的flas**件系統中;

建立flas**件系統:

當改變目標板上flash的大小或配置,需要重新建立flas**件系統映象。bsp包中包含了適當的flas**件系統驅動的源**和二進位制檔案,也提供了相關的庫和標頭檔案。

產生flas**件系統二進位制檔案:

進入bsp目錄中;

在命令列模式下,輸入make即可;

5. creating a new filesystem on your target

可以使用qnx工具來在目標板上建立乙個新的檔案系統。

下邊的指令是在目標系統上建立檔案系統的通用指令。具體的細節可能跟各個檔案系統的型別、開發板、以及建立檔案系統的介質(比如dos檔案系統在x86開發板的sata硬碟)等有關係。

要在目標板上建立新檔案系統,先連線目標板,然後在目標板上:

載入合適的裝置驅動,比如devb-eide;

識別相關的裝置;

使用fdisk來初始化或編輯分割槽表,以刪除不需要的分割槽,並新增要用於新檔案系統的分割槽;

使用mkfilesystem_typefs(比如,mkdosfs、mkqnx6fs)命令在適當的分割槽中建立檔案系統;

使用mount掛載具有新檔案系統的分割槽;

這些步驟之後,應該就在掛載的分割槽中安裝了新的檔案系統。

6. combining multiple image files

將ipl、mkifs建立的os映象、使用mkefs建立的flas**件系統映象結合起來可能是有用的,甚至是必需的。

尤其是:

有些開發板只接收單個映象檔案,因此必須組合在一起才能傳送到開發板;

一旦系統投入生產,單個映象可以簡化系統的製作。複製單個映象比複製多個映象更簡單、更快,也更不容易出錯;

當使用mkifs構建os檔案系統時,可以指定是將可執行檔案複製到ram中執行,還是在本地執行(xip)。xip通過避免將物件的**/資料段從乙個ram位置複製到另乙個ram位置來節省一點ram。

要啟動上邊的配置(xip,並在ram中執行),建立兩個單獨的映象,然後將它們組合起來。可以使用diskimage程式來為分割槽介質(比如硬碟驅動器、sd卡或mmc)建立單個組合映象,然後將映象傳輸到目標板。組合映象中的每個部分(ipl、ifs(xip)、efs(在ram中執行))必須從記憶體頁邊界開始,ipl**將把執行權交給第乙個映象中的startup**和os。

qnx 映象檔案 QNX作業系統「自適應分割槽」

1 基本介紹 自適應分割槽是qnx嵌入式作業系統的乙個特色功能,應從兩方面理解 自適應和分割槽。分割槽是指作業系統採用 虛擬牆 將共享資源 例如cpu執行時間 記憶體 儲存空間等 以一定的比例劃分,以確保每個分割槽都有一組經過工程設計的資源。每個分區內可以執行乙個或多個執行緒 程序。自適應是指作業系...

製作QT映象檔案

1 dd if dev zero of qt lib.img bs 1m count 80 建立80m的映象檔案,如果提示no space,可更改80,建立更大的映象 2 mkfs.ext2 f qt lib.img 格式化該映象 3 sudo chmod go w qt lib.img 設定許可權...

windowsCE映象檔案結構

formats struct binfile dword imagestart dword imagelength record imagerecords recordnum struct record 在檔案的最開端,會放置乙個binfile結構,imagestart和imagelength分別對...