日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux内核跳转到文件系统,Uboot到Kernel到文件系统(Cortex_A9)移植详细文档

發(fā)布時(shí)間:2023/12/15 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核跳转到文件系统,Uboot到Kernel到文件系统(Cortex_A9)移植详细文档 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

處理器:Exynos4412 ?Cortex_A9 四核

一: 4412 uboot 目錄:

uboot基本配置編譯

make xxx_config

編譯結(jié)果如上圖。

Uboot啟動(dòng)第一階段分析:

1. cpu/arm_cortexa9/start.S

http://blog.chinaunix.net/uid-29589379-id-5568665.html

2.cpu/arm_cortexa9/u-boot.lds

http://blog.chinaunix.net/uid-29589379-id-5569651.html

cpu/arm_cortexa9/s5pc210/cpu_init.S

http://blog.chinaunix.net/uid-29589379-id-5571447.html

board/samsung/smdkc210/lowlevel_init.S

http://blog.chinaunix.net/uid-29589379-id-5571454.html

3.內(nèi)存布局

http://blog.chinaunix.net/uid-29589379-id-5571499.html

4.u-boot 中的命令實(shí)現(xiàn)

http://blog.chinaunix.net/uid-29589379-id-5570660.html

Uboot啟動(dòng)第二階段分析:

第二階段入口地址為: start_armboot?在lib_arm/board.c?中定義。

1.lib_arm/board.c

http://blog.chinaunix.net/uid-29589379-id-5571531.html

2.u-boot 編譯過(guò)程

http://blog.chinaunix.net/uid-29589379-id-5572684.html

3.NAND 閃存中啟動(dòng)U-BOOT

http://blog.chinaunix.net/uid-29589379-id-5573356.html

4.U-boot 給kernel 傳參數(shù)和kernel 讀取參數(shù)

1.u-boot 給kernel 傳RAM 參數(shù)

http://blog.chinaunix.net/uid-29589379-id-5573412.html

2.kernel 讀取參數(shù)

http://blog.chinaunix.net/uid-29589379-id-5573393.html

3.U-boot 中的bd 和gd

http://blog.chinaunix.net/uid-29589379-id-5573420.html

U-BOOT 源碼分析及移植

1.u-boot 工程的總體結(jié)構(gòu)

http://blog.chinaunix.net/uid-29589379-id-5573487.html

2.u-boot 的流程、主要的數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配

1.u-boot 的啟動(dòng)流程:

http://blog.chinaunix.net/uid-29589379-id-5573503.html

2.u-boot 主要的數(shù)據(jù)結(jié)構(gòu)

http://blog.chinaunix.net/uid-29589379-id-5573522.html

3.u-boot重定位后的內(nèi)存分布

http://blog.chinaunix.net/uid-29589379-id-5573529.html

uboot 引導(dǎo) kernel 關(guān)鍵地方

上面Uboot啟動(dòng)第二階段分析第4節(jié):? U-boot 給kernel 傳參數(shù)和kernel 讀取參數(shù)

.u-boot 給kernel 傳RAM 參數(shù)

./common/cmd_bootm.c 文件中, bootm 命令對(duì)應(yīng)的 do_bootm 函數(shù),當(dāng)分析 uImage 中信息發(fā)現(xiàn) OS 是 Linux 時(shí) ,

調(diào)用 ./lib_arm/bootm.c 文件中的 do_bootm_linux 函數(shù)來(lái)啟動(dòng) Linux kernel 。

Kernel 讀取U-boot 傳遞的相關(guān)參數(shù)

對(duì)于 Linux Kernel , ARM 平臺(tái)啟動(dòng)時(shí),先執(zhí)行

arch/arm/kernel/head.S

,此文件

會(huì)調(diào)用 arch/arm/kernel/head-common.S 中的函數(shù),并最后調(diào)用 start_kernel :

......

b start_kernel

......

init/main.c 中的 start_kernel 函數(shù)中會(huì)調(diào)用 setup_arch 函數(shù)來(lái)處理各種平臺(tái)相關(guān)的動(dòng)作,包括了 u-boot 傳遞過(guò)來(lái)參數(shù)的分析和保存:

start_kernel()

{

......

setup_arch(&command_line);

......

}

setup_arch 函數(shù)在

arch/arm/kernel/setup.c

文件中實(shí)現(xiàn)

二:

Kernel

啟動(dòng)過(guò)程詳細(xì)分析

Kernel 目錄如下圖:

先用make menuconfig 配置內(nèi)核 , 編譯內(nèi)核?? make zImage

編譯生成由uboot引導(dǎo)的內(nèi)核鏡像 ?make? uImage

編譯模塊?? make modules

內(nèi)核啟動(dòng)流程1---匯編部分:

內(nèi)核啟動(dòng)流程代碼入口:

linux?內(nèi)核編譯連接后生成的ELF映像文件是vmlinux,從內(nèi)核源代碼頂層目錄下的Makefile?中可以找到vmlinux的生成規(guī)則。

vmlinux : $?(vmlinux-lds)? $(vmlinux-init) $(vmlinux-main) vmlinux.o $(kallsyms.o)?FORCE

頂層Makefile

http://blog.chinaunix.net/uid-29589379-id-5574552.html

其中 $(vmlinux-lds) 是連接器腳本,對(duì)于ARM平臺(tái)而言,就是 arch/arm/kernel/vmlinux-lds 文件。從該腳本的可以看出,第一個(gè)被鏈接的段是 “.text.head“

SECTIONS

* {

*?. = START;

*?__init_begin = .;

*

HEAD_TEXT_SECTION

*?INIT_TEXT_SECTION(PAGE_SIZE)

*?INIT_DATA_SECTION(...)

*?PERCPU_SECTION(CACHELINE_SIZE)

*?__init_end = .;

......

}

1.?$(vmlinux-lds) 是連接器腳本:

http://blog.chinaunix.net/uid-29589379-id-5574566.html

2 .text.head 段定義于 arch/arm/kernel/head.S 中,入口標(biāo)號(hào)是 stext,因此可以判定,非壓縮 ARM Linux 內(nèi)核的入口點(diǎn)是 arch/arm/kernel/head.S?中的 stext。

arch/arm/kernelhead.S

http://blog.chinaunix.net/uid-29589379-id-5574569.html

3.THUMB(?add?r12, r10, #PROCINFO_INITFUNC?)???//切換數(shù)據(jù),最終跳轉(zhuǎn)到C語(yǔ)言函數(shù)start_kernel()(在__switch_data結(jié)束時(shí),調(diào)用b start_kernel)

arch/arm/kernel/head-common.S?中103行 b start_kernel.

http://blog.chinaunix.net/uid-29589379-id-5574581.html

內(nèi)核啟動(dòng)流程2---C語(yǔ)言部分:

C語(yǔ)言部分由? start_kernel?函數(shù)開(kāi)始,到第一個(gè)用戶(hù)進(jìn)程 init 結(jié)束,過(guò)程中調(diào)用了一系列的初始化函數(shù)對(duì)內(nèi)核組件進(jìn)行初始化。

其中,start_kernel , rest_init , kernel_init , init_post 等四個(gè)函數(shù)構(gòu)成了整個(gè)初始化過(guò)程的主線(xiàn)

1.start_kernel()?定義于 init/main.c?。

http://blog.chinaunix.net/uid-29589379-id-5575333.html

start_kernel()對(duì)基本硬件,系統(tǒng)的結(jié)構(gòu)進(jìn)行初始化。最后調(diào)用rest_init()函數(shù),該函數(shù)用于創(chuàng)建并啟動(dòng)內(nèi)核線(xiàn)程init。

內(nèi)核啟動(dòng)流程3.1----Busybox 的?init 進(jìn)程 (純Linux,沒(méi)有Android)

Busybox 的 init 進(jìn)程在 init/init.c 文件中

init/init.c

http://blog.chinaunix.net/uid-29589379-id-5575380.html

http://blog.csdn.net/conowen/article/details/7251057

init?啟動(dòng)詳細(xì)流程

http://blog.chinaunix.net/uid-29589379-id-4592751.html

//來(lái)自

的博客

更多的驅(qū)動(dòng)暫時(shí)沒(méi)有。

Linux?系統(tǒng)完。

Android 系統(tǒng)啟動(dòng)過(guò)程分析 內(nèi)核啟動(dòng)流程3.2----Android 文件系統(tǒng)??(Linux上的中間件Android)

1.Android?文件系統(tǒng) ramdisk.img

http://blog.chinaunix.net/uid-29589379-id-5576460.html

2.

Android 的啟動(dòng)流程分析

Android從Linux系統(tǒng)啟動(dòng)有4個(gè)步驟;

(1) init進(jìn)程啟動(dòng)

(2) Native服務(wù)啟動(dòng)

(3) System Server,Android服務(wù)啟動(dòng)

(4) Home啟動(dòng)

Android 移植詳細(xì)分析

http://blog.chinaunix.net/uid-29589379-id-5494749.html

http://blog.csdn.net/luoshengyang/article/details/8923485?//老羅的Android?博客

init進(jìn)程啟動(dòng)

system/core/init/init.c

kernel會(huì)啟動(dòng)第一個(gè)用戶(hù)級(jí)別的進(jìn)程:init

.

init始終是第一個(gè)進(jìn)程。

PS:可以通過(guò):ps ?| grep init命令來(lái)查看其Pid為1。

import_kernel_cmdline(0, import_kernel_nv);

//獲取內(nèi)核關(guān)于文件系統(tǒng)的參數(shù),通過(guò)這個(gè)參數(shù)來(lái)啟動(dòng)Android。? linux和Android 的接口

http://blog.chinaunix.net/uid-29589379-id-5577496.html

Linux驅(qū)動(dòng)開(kāi)發(fā)學(xué)習(xí)的一些必要步驟

http://blog.csdn.net/luobin1984/article/details/7945620

總結(jié)

以上是生活随笔為你收集整理的linux内核跳转到文件系统,Uboot到Kernel到文件系统(Cortex_A9)移植详细文档的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 毛片在线看网站 | 四虎影视在线 | 少妇高潮av久久久久久 | 吃奶在线观看 | 国产精品福利视频 | 日韩视频在线免费观看 | 黑人爱爱视频 | 中文字幕乱码一二三区 | 亚洲欧洲成人精品久久一码二码 | 日本一区二区精品视频 | 老司机久久 | 国产日韩中文字幕 | 亚洲黄色在线看 | 欧美精品久久久久久 | 亚洲AV无码精品黑人黑人 | 九九九亚洲 | 欧美极品少妇xxxxⅹ免费视频 | 95看片淫黄大片一级 | 国产福利精品一区 | 欧美一级淫片免费视频魅影视频 | 一级一片免费看 | 婷婷六月天 | 国产女主播在线一区二区 | 中文字幕+乱码+中文字幕一区 | 欧美性极品少妇xxxx | 天天草天天操 | 嫩草视频网站 | av女大全列表 | 永久免费看成人av的动态图 | 国产aⅴ一区二区三区 | 国产片网址 | 亚洲专区一区 | 国产乱在线| 国产高清一区在线观看 | 亚洲涩涩网 | 欧美成人精品在线观看 | 国产精品一区二区小说 | 黄色特级大片 | 超碰91在线| 岳狂躁岳丰满少妇大叫 | 久久精品视频在线免费观看 | www免费黄色 | 久久九| 一区免费在线观看 | 99精品偷自拍 | 天天操天天操天天操天天操 | 国产一区二区三区免费观看 | 校园春色中文字幕 | 日韩av在线播放一区 | 亚洲男人影院 | 夜色综合 | 国产亚洲网站 | 自拍 偷拍 欧美 | 成人欧美一区二区 | 国产一卡二卡 | 国产福利在线视频 | 青青青草视频 | 免费欧美一区 | 美国毛片基地 | 午夜影院啊啊啊 | 久久久久久久久久久久国产 | 亚洲无线观看 | 欧美1页| 免费网站污 | 国产精品羞羞答答在线观看 | 91国内视频 | 日本一区二区在线免费 | 夜夜高潮夜夜爽国产伦精品 | 一卡二卡三卡四卡 | 日韩午夜精品 | 另类小说色 | 日韩精品视频在线观看网站 | 久久久男人的天堂 | 美日韩av在线 | 高潮毛片7777777毛片 | 亚洲一区二区三区日韩 | 一区二区三区影院 | 美女扒开腿让男生桶 | 婷婷俺来也 | jizz国产精品 | 日本蜜桃视频 | 久久成人资源 | 色婷婷狠狠操 | 日本免费中文字幕 | 国产91在线免费 | 天天干天 | 欧美做受视频 | 日韩欧美中文字幕一区二区 | 午夜精品亚洲 | 99国产精品视频免费观看一公开 | www.一区二区.com | 成人视屏在线 | 91亚瑟视频 | 欧美精品一区在线观看 | a天堂资源 | 九九色网| 欧美精品免费在线观看 | 亚洲图片视频在线 | 亚洲天堂男人 |