日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久情趣视频 | 久久99久久99精品中文字幕 | 久久久久久久久久久久久av | 影音先锋在线观看视频 | 久色免费视频 | 在线天堂中文在线资源网 | 九九热这里有精品 | 色网站免费 | 一级黄色片在线免费观看 | 成人在线视频免费 | 18岁免费观看电视连续剧 | 91青草视频 | 午夜欧美精品久久久久久久 | 丁香六月av | 99久久99九九99九九九 | 亚欧成人在线 | ass亚洲熟妇毛耸耸pics | 在线视频亚洲色图 | 手机av观看| 丝袜高跟av | 五月天国产在线 | 国产激情av一区二区三区 | 免费在线观看av的网站 | 色婷婷综合激情 | 尤物国产在线 | www五月天com | 免费人成视频在线播放 | 182在线视频| 五级黄高潮片90分钟视频 | 又污又黄又爽的网站 | 日本国产网站 | 热久久久久久久 | 亚洲情热 | av色在线 | 丝袜高跟av| 91大神视频在线播放 | 三级黄色免费网站 | 亚洲精品一区二区三区精华液 | 色戒电影未测减除版 | 日本十大三级艳星 | 日本aa在线观看 | 国内露脸中年夫妇交换 | 国产精品调教视频 | 欧美男人亚洲天堂 | 天堂精品在线 | 日韩蜜桃视频 | 久国产 | 中文字幕av久久爽 | 欧美区日韩区 | 成人做爰免费视频免费看 | 先锋资源av网 | 亚洲电影在线看 | 日本在线色 | 国产精品手机在线 | 日韩在线视 | 日本一区二区三区视频免费看 | 日本网站在线免费观看 | 天堂在线精品视频 | 在线不卡免费av | 国产午夜一级一片免费播放 | 亚洲精品久久久蜜桃网尤妮丝 | 九九热视频这里只有精品 | 亚洲黄网在线 | 热九九精品 | 午夜精品久久久内射近拍高清 | 久久av红桃一区二区小说 | 日韩一二三四 | 原来神马电影免费高清完整版动漫 | 人人人超碰 | 毛片1000部免费看 | 日本乳汁视频 | www.黄色片.com | 国产精品久久久久av | 高潮白浆 | jizzjizz在线 | 亚洲精品久久久久久动漫器材一区 | 色多多在线看 | 久久久久亚洲av成人人电影 | 欧美乱视频| 久久婷婷五月国产色综合激情 | 天堂av电影在线观看 | 精品国产无码一区二区 | 欧美黑人性生活 | 欧美色xxxxx| 成人国产精品入口免费视频 | 成人av在线电影 | 91黄色免费看 | 午夜看片在线观看 | 欧美一区二区免费电影 | 色视频网站 | 中国av一级片 | 啪啪在线视频 | 日产欧产va高清 | 美女涩涩视频 | 九九九国产 | av我不卡 | 在线观看亚洲色图 | 一区二区三区视频观看 | 一本到在线观看 |