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

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

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

評論