嵌入式系統裡是否使用非解壓核心

2021-04-21 07:30:59 字數 2043 閱讀 7976

核心中,

執行make

命令會在

arch/arm/boot

下生成兩個核心:

非解壓版本

image

以及壓縮版本

zimage :

kernel>ls -l arch/arm/boot/*image

-rwxr-xr-x 1 zjujoe zjujoe 2787720 2008-10-21 15:46 arch/arm/boot/image

-rwxr-xr-x 1 zjujoe zjujoe 1340208 2008-10-22 15:06 arch/arm/boot/zimage

這兩個版本的大小相差大概

1 倍,

到底應該使用哪個版本呢?

從節約flash

的角度出發,

應該使用壓縮核心

zimage,

但是現在

flash

越來越便宜,使用非壓縮核心

image

有時能夠加快系統裝載速度。

下面兩個例子通過測試裝載時間來研究一下這個問題。

壓縮前的核心

-rwxrwxr-x1 zjujoe zjujoe 2943128 feb1 09:07 arch/arm/boot/image

壓縮後的核心

-rwxrwxr-x1 zjujoe zjujoe 1420196 feb1 09:07 arch/arm/boot/zimage

經測量裝載

zimage

需要505 ms,

裝載image

需要1066ms, zimage

啟動到startkernel

函式時間為

1021ms

。所以以該

nand

的裝載核心速度(

2.68m

/s),

裝載非解壓縮核心是沒有意義的。進一步,

對於慢速裝置(比如

nand

),我們應該盡量使用壓縮的核心。

壓縮前的核心

-rwxr-xr-x 1 zjujoe zjujoe 2671768 2008-10-28 15:50 arch/arm/boot/image

壓縮後的核心

-rwxr-xr-x 1 zjujoe zjujoe 1288660 2008-10-28 15:50 arch/arm/boot/zimage

經測量裝載

zimage

需要306 ms,

裝載image

需要449ms, zimage

啟動到startkernel

函式時間為

750ms.

而image

啟動到startkernel

函式時間為

473ms。

所以以該

onenand

的裝載核心速度(

6.99m

/s),

應該使用非解壓縮核心,

可以縮短啟動時間

300ms

左右。進一步,

對於快速裝置(比如

onenand/mdoc/nor

),我們應該使用非壓縮核心(不考慮

flash

空間成本的前提下)。

當然,到底是否使用壓縮功能,

要依靠測試資料。不同的

cpu,

不同的系統匯流排,不同型別的

flash

都會有不同的速度,甚至也有可能同乙個硬體,

速度優化前使用壓縮核心快,

而速度優化後就應該使用非壓縮核心了。

Linux嵌入式 核心 系統呼叫

1.系統呼叫 定義 linux核心中設定了一組用於實現各種系統功能的子程式,稱為系統呼叫。使用者可以通過系統呼叫命令在自己的應用程式中呼叫它們。系統呼叫和普通的函式呼叫非常相似,區別僅僅在於,系統呼叫由作業系統核心實現,執行於核心態 而普通的函式呼叫由函式庫或使用者自己提供,執行於使用者態。2.系統...

嵌入式Linux系統 「核心定時器」

linux 下的核心定時器 類似微控制器中的定時器中斷 1.涉及函式 1.初始化定時器佇列結構 init timer buttons timer 2.定時器超時函式 buttons timer.function buttons timer function 3.或者初始化定時器和超時函式作為一步 d...

嵌入式系統移植筆記(六) 核心移植

首先將在ubuntu環境中,新增交叉編譯工具到path變數,永久有效。root linux linux 3.14 fs4412 vim etc bash.bashrc export path home linux soft gcc 4.6.4 bin path home linux soft 是工具...