- ? 1.uboot 調用do_bootm_linux 中的 theKernel (0, machid, bd->bi_boot_params)進入kernel部分代碼
該函數(shù)最終會通過r0,r1,r2這三個寄存器分別把0、machid、傳遞傳參的首地址傳給kernel。
- ? 2.Kernel 的入口 在head.S中ENTRY(stext)處, 此階段是匯編階段 ,此階段會解析r0,r1,r2(也就是uboot的傳參)最終會通過進入start_kernel,進入到c語言環(huán)境執(zhí)行。
經過前面uboot的準備工作,通過theKernel (0, machid, bd->bi_boot_params);
開始進入到kernel部分開始執(zhí)行。
其中 第二個參數(shù)為機器 ID,第三參數(shù)為 u-boot 傳遞給內核參數(shù)存放在內存中的首地址 ,此處是 0x30000100
由 zImage 的生成過程我們可以知道,第一階段運行的內核映像實際就是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, 適當參考 vmlinux.lds 。
從linux/arch/arm/boot/compressed/vmlinux.lds文件可以看出head.S的入口地址為ENTRY(_start),也就是head.S匯編文件的_start標號開始的第一條指令。
-
內核
+關注
關注
3文章
1382瀏覽量
40430 -
Linux
+關注
關注
87文章
11345瀏覽量
210417 -
Uboot
+關注
關注
4文章
125瀏覽量
28350 -
Kernel
+關注
關注
0文章
48瀏覽量
11236
發(fā)布評論請先 登錄
相關推薦
學習單片機的第一步是什么??
怎么讓直流電源執(zhí)行時 一步一步執(zhí)行
接觸單片機和剛接觸單片機的第一步怎么走
用JTAG調試ARM程序第一步就跳飛了是什么原因
請問SPT3.1 PeakSearch第一步怎么用?
踏出成功職業(yè)生涯的第一步
R2推動微軟向云計算邁出第一步
MP3選購第一步 了解存儲介質和格式
邁出邁向更可持續(xù)未來的第一步
![邁出邁向更可持續(xù)未來的<b class='flag-5'>第一步</b>](https://file.elecfans.com/web2/M00/28/55/poYBAGHEHw2AEQmQAACvjSwyzrc000.jpg)
評論