<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > zImage內核鏡像解壓過(guò)程詳解

zImage內核鏡像解壓過(guò)程詳解

作者: 時(shí)間:2012-08-27 來(lái)源:網(wǎng)絡(luò ) 收藏

int arch_id)

l output_start:指輸出的起始位置,此時(shí)它的值參考上面的圖表,緊接在緩沖區后;

l free_mem_ptr_p:函數需要的內存緩沖開(kāi)始地址;

l ulg free_mem_ptr_end_p:解壓函數需要的內存緩沖結束地址,共64K;

l arch_id :architecture ID,對于SMDK2410這個(gè)值為193;

最后回答第3個(gè)問(wèn)題

首先看看piggy.o是如何生成的,在arch/arm/boot/compressed/Makefie中

$(obj)/piggy.o: $(obj)/piggy.gz FORCE

Piggy.o是由piggy.S生成的,咱們看看piggy.S的內容:

.section .piggydata,#alloc

.globl input_data

input_data:

.incbin arch/arm/boot/compressed/piggy.gz

.globl input_data_end

input_data_end:

再看看misc.c中decompress_kernel函數吧,它將調用gunzip()解壓。gunzip()在lib/inflate.c中定義,它將調用NEXTBYTE(),進(jìn)而調用get_byte()來(lái)獲取壓縮代碼。

在misc.c中

#define get_byte() (inptr insize ? inbuf[inptr++] : fill_inbuf())

查看fill_inbuf函數

int fill_inbuf(void)

{

if (insize != 0)

error(ran out of input data);

inbuf = input_data;

insize = input_data_end[0] - input_data[0];

inptr = 1;

return inbuf[0];

}

發(fā)現什么沒(méi)?這里的input_data不正是piggy.S里的input_data嗎?這個(gè)時(shí)候應該明白內核是怎樣確定piggy.gz在中的位置了吧。

時(shí)間關(guān)系,可能敘述的不夠詳細,大家可以集合內核代碼和網(wǎng)上的其它相關(guān)文章,理解啟動(dòng)解壓。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 詳解 過(guò)程 解壓 內核 zImage

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>