一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:李倩 ? 2018-04-13 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

其中:

·name:命令的名字,他不是一個字符串,不能用雙引號括起來

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

·command:對應的函數(shù)指針

·usage:一個字符串,簡短的使用說明

·help:一個字符串,比較詳細的使用說明

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

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

do_bootm函數(shù)流程分析

do_bootm_linux函數(shù)

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

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213851
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    129

    瀏覽量

    29103

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    U-Boot介紹

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

    U-boot的基本介紹

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

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

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

    u-boot詳解

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

    u-boot引導啟動Linux 2.6的內(nèi)核

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

    U-boot引導內(nèi)核詳細流程

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

    U-Boot的啟動及移植分析

    bootloader 開發(fā)是嵌入式系統(tǒng)必不可少而且十分重要的部分,U-Boot 為功能強大的bootloader 開發(fā)軟件。本文詳細分析U-Boot 的啟動流程,并結(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是一個LINUX下的工程,在編譯之前必須已經(jīng)安裝對應體系結(jié)構(gòu)的交叉編譯環(huán)境,這里只針對ARM,編譯器系列軟件為arm-linux-*。 U-
    發(fā)表于 05-17 09:16 ?2139次閱讀

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

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

    U-Boot源代碼分析之Linux的引導

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

    u-boot簡介

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

    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)淺析

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

    tiny4412編譯與移植U-Boot

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