- ? 1.uboot 調(diào)用do_bootm_linux 中的 theKernel (0, machid, bd->bi_boot_params)進(jìn)入kernel部分代碼
該函數(shù)最終會(huì)通過(guò)r0,r1,r2這三個(gè)寄存器分別把0、machid、傳遞傳參的首地址傳給kernel。
- ? 2.Kernel 的入口 在head.S中ENTRY(stext)處, 此階段是匯編階段 ,此階段會(huì)解析r0,r1,r2(也就是uboot的傳參)最終會(huì)通過(guò)進(jìn)入start_kernel,進(jìn)入到c語(yǔ)言環(huán)境執(zhí)行。
經(jīng)過(guò)前面uboot的準(zhǔn)備工作,通過(guò)theKernel (0, machid, bd->bi_boot_params);
開始進(jìn)入到kernel部分開始執(zhí)行。
其中 第二個(gè)參數(shù)為機(jī)器 ID,第三參數(shù)為 u-boot 傳遞給內(nèi)核參數(shù)存放在內(nèi)存中的首地址 ,此處是 0x30000100
由 zImage 的生成過(guò)程我們可以知道,第一階段運(yùn)行的內(nèi)核映像實(shí)際就是arch/arm/boot/compressed/vmlinux,而這一階段所涉及的文件也只有三個(gè):
- ? (1)arch/arm/boot/compressed/vmlinux.lds
- ? (2)arch/arm/boot/compressed/head.S
- ? (3)arch/arm/boot/compressed/misc.c
下面我們的分析集中在 arch/arm/boot/compressed/head.S, 適當(dāng)參考 vmlinux.lds 。
從linux/arch/arm/boot/compressed/vmlinux.lds文件可以看出head.S的入口地址為ENTRY(_start),也就是head.S匯編文件的_start標(biāo)號(hào)開始的第一條指令。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1406瀏覽量
41056 -
Linux
+關(guān)注
關(guān)注
87文章
11446瀏覽量
212667 -
Uboot
+關(guān)注
關(guān)注
4文章
126瀏覽量
28845 -
Kernel
+關(guān)注
關(guān)注
0文章
48瀏覽量
11530
發(fā)布評(píng)論請(qǐng)先 登錄
學(xué)習(xí)單片機(jī)的第一步是什么??
怎么讓直流電源執(zhí)行時(shí) 一步一步執(zhí)行
剛踏入線路板行業(yè),請(qǐng)問(wèn)抄板的第一步要先熟悉哪里?
用JTAG調(diào)試ARM程序第一步就跳飛了是什么原因
請(qǐng)問(wèn)SPT3.1 PeakSearch第一步怎么用?
踏出成功職業(yè)生涯的第一步
R2推動(dòng)微軟向云計(jì)算邁出第一步
MP3選購(gòu)第一步 了解存儲(chǔ)介質(zhì)和格式
邁出邁向更可持續(xù)未來(lái)的第一步

仿真分析:3DIC全流程解決方案的第一步

本周五|仿真分析:3DIC全流程解決方案的第一步

評(píng)論