精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解U-Boot引導(dǎo)內(nèi)核分析

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:李倩 ? 2018-04-13 15:22 ? 次閱讀

U-Boot的命令為用戶提供了交互功能,并且已經(jīng)實(shí)現(xiàn)了幾十個(gè)常用的命令。如果開發(fā)板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一個(gè)命令都是通過U_Boot_CMD宏定義的。這個(gè)宏在頭文件中定義

#defineU_BOOT_CMD(name,maxargs,rep,cmd,usage,help)\

cmd_tbl_t__u_boot_cmd_##nameStruct_Section={#name,maxargs,rep,cmd,usage}

其中:

·name:命令的名字,他不是一個(gè)字符串,不能用雙引號(hào)括起來

·maxargs:最大的參數(shù)個(gè)數(shù)

·command:對(duì)應(yīng)的函數(shù)指針

·usage:一個(gè)字符串,簡(jiǎn)短的使用說明

·help:一個(gè)字符串,比較詳細(xì)的使用說明

對(duì)于bootm命令,其定義如下:

[plain]view plaincopy

1.U_BOOT_CMD(//bootm命令

2.bootm,CFG_MAXARGS,1,do_bootm,

3."bootm-bootapplicationimagefrommemory\n",

4."[addr[arg...]]\n-bootapplicationimagestoredinmemory\n"

5."\tpassingarguments'arg...';whenbootingaLinuxkernel,\n"

6."\t'arg'canbetheaddressofaninitrdimage\n"

7.#ifdefCONFIG_OF_FLAT_TREE

8."\tWhenbootingaLinuxkernelwhichrequiresaflatdevice-tree\n"

9."\tathirdargumentisrequiredwhichistheaddressoftheofthe\n"

10."\tdevice-treeblob.Tobootthatkernelwithoutaninitrdimage,\n"

11."\tusea'-'forthesecondargument.Ifyoudonotpassathird\n"

12."\tabd_infostructwillbepassedinstead\n"

13.#endif

14.);

bootm命令是用來引導(dǎo)經(jīng)過U-Boot的工具mkimage打包后的kernelimage的。U-Boot源代碼的tools/目錄下有mkimage工具,這個(gè)工具可以用來制作不壓縮或者壓縮的多種可啟動(dòng)映象文件。 mkimage在制作映象文件的時(shí)候,是在原來的可執(zhí)行映象文件的前面加上一個(gè)0x40字節(jié)的頭,記錄參數(shù)所指定的信息,這樣uboot才能識(shí)別這個(gè)映象是針對(duì)哪個(gè)CPU體系結(jié)構(gòu)的,哪個(gè)OS的,哪種類型,加載內(nèi)存中的哪個(gè)位置,入口點(diǎn)在內(nèi)存的那個(gè)位置以及映象名是什么。

U-Boot正是通過bootm命令引導(dǎo)Linux內(nèi)核的。bootm命令調(diào)用do_bootm函數(shù),下面我們來分析一下:

do_bootm函數(shù)流程分析

do_bootm_linux函數(shù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11225

    瀏覽量

    208920
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    28165

原文標(biāo)題:非常詳細(xì)!圖文帶你詳解U-Boot引導(dǎo)內(nèi)核分析

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    U-Boot介紹

    在移植 Linux之前我們需要先移植一個(gè) bootloader 代碼,這個(gè) bootloader 代碼用于啟動(dòng) Linux 內(nèi)核, bootloader有很多,常用的就是 U-Boot
    的頭像 發(fā)表于 10-08 10:50 ?3944次閱讀

    U-boot的基本介紹

    從本文開始,將陸續(xù)推送“手把手教你移植U-boot”系列文章,目標(biāo)是由淺入深地講解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默認(rèn)硬件開發(fā)平臺(tái)為ARM,操作系統(tǒng)為L(zhǎng)inux。
    發(fā)表于 07-14 16:52 ?2769次閱讀
    <b class='flag-5'>U-boot</b>的基本介紹

    U-Boot是如何引導(dǎo)系統(tǒng)的

    內(nèi)核的參數(shù)。run是運(yùn)行環(huán)境變量中的命令,bootcmd中包含run命令。所以分析引導(dǎo)過程要從bootcmd開始。在U-Boot的命令行中輸入printenv可顯示所有的環(huán)境變量,我已
    發(fā)表于 10-22 17:43

    u-boot詳解

    工作不斷展開和深入,以支持更多的嵌入式操作系統(tǒng)的裝載與引導(dǎo)。 選擇U-Boot的理由: ① 開放源碼; ② 支持多種嵌入式操作系統(tǒng)內(nèi)核,如Linux、NetBSD, VxWorks, QNX
    發(fā)表于 07-04 04:56

    u-boot引導(dǎo)啟動(dòng)Linux 2.6的內(nèi)核

    我想用u-boot引導(dǎo)啟動(dòng)Linux 2.6的內(nèi)核。打算用jffs2作為根文件系統(tǒng),但在配置u-boot時(shí)聽說需要定義#define CONFIG_JFFS2_DEV "nor0&qu
    發(fā)表于 05-27 00:38

    U-boot引導(dǎo)內(nèi)核詳細(xì)流程

    U-boot引導(dǎo)內(nèi)核流程分析
    發(fā)表于 03-30 12:34

    U-Boot的啟動(dòng)及移植分析

    bootloader 開發(fā)是嵌入式系統(tǒng)必不可少而且十分重要的部分,U-Boot 為功能強(qiáng)大的bootloader 開發(fā)軟件。本文詳細(xì)分析U-Boot 的啟動(dòng)流程,并結(jié)合其源碼,闡述了U-Bo
    發(fā)表于 09-01 16:34 ?27次下載

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    發(fā)表于 01-25 15:45 ?13次下載

    u-boot的Makefile分析

    u-boot的Makefile分析 U-BOOT是一個(gè)LINUX下的工程,在編譯之前必須已經(jīng)安裝對(duì)應(yīng)體系結(jié)構(gòu)的交叉編譯環(huán)境,這里只針對(duì)ARM,編譯器系列軟件為arm-linux-*。 U-
    發(fā)表于 05-17 09:16 ?2057次閱讀

    U-Boot結(jié)構(gòu)功能介紹

      U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項(xiàng)目。從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來。其源碼目錄、編譯形式與Linux內(nèi)核很相似,事實(shí)上,不少
    發(fā)表于 07-30 09:17 ?1168次閱讀
    <b class='flag-5'>U-Boot</b>結(jié)構(gòu)功能介紹

    U-Boot源代碼分析之Linux的引導(dǎo)

    映象文件必須滿足U-Boot的格式要求,才能被識(shí)別和引導(dǎo)U-Boot中映象文件必須以一個(gè)固定格式的頭部開始。這個(gè)頭部由structimage_header_t描述,image_header_t的定義在文件include/ima
    發(fā)表于 04-03 22:39 ?51次下載

    u-boot簡(jiǎn)介

    U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項(xiàng)目。U-Boot的作用是系統(tǒng)引導(dǎo)U-Boot
    發(fā)表于 10-14 11:17 ?3540次閱讀

    S3C6410的u-boot分析與移植

    S3C6410的u-boot分析與移植
    發(fā)表于 10-31 14:44 ?28次下載
    S3C6410的<b class='flag-5'>u-boot</b><b class='flag-5'>分析</b>與移植

    U-Boot架構(gòu)淺析

    導(dǎo)讀:嵌入式Linux系統(tǒng)搭建,bootloader是必不可少的一環(huán),而U-Boot已成嵌入式Linux事實(shí)標(biāo)準(zhǔn)。所以較為深入的分析U-Boot的設(shè)計(jì),對(duì)于更...
    發(fā)表于 02-07 11:56 ?7次下載
    <b class='flag-5'>U-Boot</b>架構(gòu)淺析

    tiny4412編譯與移植U-Boot

    U-Boot 是一個(gè)主要用于嵌入式系統(tǒng)的引導(dǎo)加載程序, U-Boot本質(zhì)是一個(gè)裸機(jī)程序,是一種普遍用于嵌入式系統(tǒng)中的開源的Bootloader,作用是用來引導(dǎo)操作系統(tǒng),以及給開發(fā)人員
    的頭像 發(fā)表于 08-31 08:59 ?1754次閱讀
    tiny4412編譯與移植<b class='flag-5'>U-Boot</b>