那曲檬骨新材料有限公司

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

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

3天內不再提示

bootm命令的執行流程

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-04 17:33 ? 次閱讀

Bootm命令用來從memory啟動內核,bootm命令的執行流程如下圖所示。

在串口終端輸入bootm命令后,執行do_bootm函數來完成相應的功能。Do_bootm函數首先調用bootm_start函數。(如果不輸入,應該也有。)

圖片

Bootm_start函數的主要作用是獲取內核映像文件的相關信息,并保存到全局變量images中,image是struct bootm_headers結構類型,用來保存可執行內核映像的相關信息,主要包括內核映像的加載地址、起始地址、可執行入口地址等。

獲取內核映像的相關信息是為后面的加載內核做準備;

內核可執行映像文件頭包含了這些信息,這是通過工具mkimage加上去的。接下來執行bootm_load_os函數。

if (load !=image_start) {
                              memmove_wd ((void *)load,
                                      (void *)image_start, image_len, CHUNKSZ);
                          }

Image_start是不包括內核映像文件頭的內核起始位置,也就是zImage的起始位置。

內核加載完成后,下面開始執行內核映像,這是通過調用函數do_bootm_linux來實現的,下面來看do_bootm_linux的執行過程。

Do_bootm_linux首先驅動內核的入口地址,代碼如下所示。

theKernel=(void (*)(int, int, uint))images- >ep;

Images.ep為內核可執行映像文件的入口地址及zImage的起始地址,它是從內核映像文件頭獲取的,在前面的bootm_start函數中已經為它賦值,代碼如下所示。

images.ep=image_get_ep (&images.legacy_hdr_os_copy);

如果需要,準備給內核傳遞的啟動參數,然后獲取啟動內核需要的兩個參數:machid和傳遞給內核參數的位置,這兩個參數都保存在全局數據結構體變量bd的成員變量中,如下所示。

bd- >bi_boot_params
              machid=bd- >bi_arch_number;

最后調用內核映像的第一個可執行函數,把控制權移交給內核,代碼如下所示。

theKernel (0, machid, bd- >bi_boot_params);
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內核
    +關注

    關注

    3

    文章

    1382

    瀏覽量

    40422
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210391
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62971
  • Uboot
    +關注

    關注

    4

    文章

    125

    瀏覽量

    28349
收藏 人收藏

    評論

    相關推薦

    U-boot的執行流程

    本文主要講述了U-boot的執行流程
    發表于 07-14 16:58 ?744次閱讀
    U-boot的<b class='flag-5'>執行</b><b class='flag-5'>流程</b>

    Linux內核自解壓過程分析

    uboot完成系統引導以后,執行環境變量bootm中的命令;即,將Linux內核調入內存中并調用do_bootm函數啟動內核,跳轉至kernel的起始位置。
    的頭像 發表于 12-08 14:00 ?1000次閱讀
    Linux內核自解壓過程分析

    Uboot的命令之間有什么區別?

    宏定義的嘍。而啟動內核我看視頻里面是直接打一個boot 就OK了,而不是先執行nandread,再執行bootm,再執行bootargs??那么boot這個
    發表于 07-26 05:45

    CAD中如何快速重復執行命令

    快速重復執行命令主要是靠鼠標右鍵或者是鍵盤上的空格以及上下方向鍵。 輸入OP命令打開選項對話框,點用戶系統配置選項卡自定義右鍵單擊按鈕,默認模式下無論是否選定對象,單
    發表于 10-23 17:04 ?1643次閱讀

    mfc程序執行流程小結,MFC程序的執行順序

     摘要:本文章主要以MFC程序的執行流程執行順序等執行過程的剖析做出的結論,下面一起來看看原文的具體介紹。
    發表于 12-08 15:48 ?9590次閱讀
    mfc程序<b class='flag-5'>執行</b><b class='flag-5'>流程</b>小結,MFC程序的<b class='flag-5'>執行</b>順序

    虛擬機:Bash Shell腳本打印出執行命令

    默認情況下,bash腳本不會打印執行的每個命令,這個有時候不太方面。
    的頭像 發表于 06-22 14:44 ?4603次閱讀

    linux技術:WAF運行命令執行方法

    如果命令執行的時候遇到攔截命令關鍵詞的時候可以利用如下方法繞過: "和^是CMD命令中最常見的轉義字符,還有成對的括號并不會影響命令
    發表于 11-07 20:27 ?1029次閱讀

    使用匿名管道技術獲取CMD命令執行結果

    遠程 CMD 是指惡意程序接收到控制端發送的 CMD 指令后,在本地執行 CMD 命令,并將執行結果回傳至控制端。本文將演示使用匿名管道技術獲取 CMD 命令
    的頭像 發表于 04-03 18:04 ?4144次閱讀

    LabVIEW中執行系統命令VI介紹

    LabVIEW自帶一個執行系統命令VI(System Exec.vi),位于函數選板的“互連接口”>>“庫與可執行程序”>>“執行系統命令
    的頭像 發表于 04-25 11:47 ?9716次閱讀
    LabVIEW中<b class='flag-5'>執行</b>系統<b class='flag-5'>命令</b>VI介紹

    Linux命令執行Bypass常見姿勢介紹

    部署服務器端為Linux系統的http服務,留存get和post方式的一句話木馬,用于命令執行測試。(測試思路可以對話Chatgpt)
    的頭像 發表于 05-22 16:20 ?2068次閱讀
    Linux<b class='flag-5'>命令</b><b class='flag-5'>執行</b>Bypass常見姿勢介紹

    Linux命令執行Bypass常見姿勢

    部署服務器端為Linux系統的http服務,留存get和post方式的一句話木馬,用于命令執行測試。(測試思路可以對話Chatgpt)
    的頭像 發表于 05-22 16:21 ?858次閱讀
    Linux<b class='flag-5'>命令</b><b class='flag-5'>執行</b>Bypass常見姿勢

    通過語音控制執行系統命令

    電子發燒友網站提供《通過語音控制執行系統命令.zip》資料免費下載
    發表于 06-20 09:39 ?0次下載
    通過語音控制<b class='flag-5'>執行</b>系統<b class='flag-5'>命令</b>

    Uboot命令實現大致流程

    傳遞給內核。 傳遞相關啟動參數必須使用u-boot的bootm命令進行跳轉,但是u-boot的bootm命令只能處理uImage鏡像。 uImage相對于zImage在頭部多了64個b
    的頭像 發表于 12-04 17:09 ?468次閱讀
    Uboot<b class='flag-5'>命令</b>實現大致<b class='flag-5'>流程</b>圖

    uboot命令執行過程是什么

    U-boot是通過執行u-boot提供的命令來加載Linux內核的,其中 命令bootm的功能 即為從memory啟動Linux內核映像文件。 在講解
    的頭像 發表于 12-04 17:31 ?863次閱讀

    cmd_tbl_t結構體變量調用命令信息

    命令,海思hi3521a中默認參數是bootcmd=bootm 0x82000000 ? 相當于執行bootm 0x82000000 命令
    的頭像 發表于 12-04 17:37 ?742次閱讀
    cmd_tbl_t結構體變量調用<b class='flag-5'>命令</b>信息
    全讯网123| 百家乐官网博彩软件| 百家乐全透明牌靴| 博彩通排名| 百家乐官网必胜法技巧| 百家乐追号| 百家乐官网推饼| 海港城百家乐的玩法技巧和规则| 百家乐官网投注玩多少钱| 百家乐记牌器| 广灵县| 百家乐视频官方下载| k7娱乐| 百家乐路纸计算| 新澳博国际娱乐| 百家乐视频双扣游戏| 荥经县| 百家乐怎赌才赢钱| 百家乐官网学院教学视频| 一筒百家乐的玩法技巧和规则| 百家乐官网那个平台好| 百家乐有试玩的吗| 线上百家乐官网是如何作弊| 大发888游戏加速器| 总玩百家乐官网有赢的吗| 平果县| 百家乐二路珠无敌稳赢打法| gt百家乐官网平台假吗| 威尼斯人娱乐场官网是多少| 机器百家乐官网心得| bet365体育投注| 百家乐投注信用最好的| 海立方百家乐官网海立方| 威尼斯人娱乐平台最新地址| 星期8百家乐官网的玩法技巧和规则 | 龙博线上娱乐| 百家乐槛| 广州百家乐官网牌具公司| 在线娱乐城注册送彩金| 百家乐注册开户送彩金| 百家乐官网3号眨眼技术|