91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

深入解析U-Boot FIT鏡像簽名驗證:image-sig.c核心實現(xiàn)

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-02-25 11:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式系統(tǒng)安全啟動體系中,U-Boot的FIT(Flattened Image Tree)鏡像簽名驗證是一道關(guān)鍵防線——它能確保啟動鏡像未被篡改、來源可信,而image-sig.c正是實現(xiàn)這一核心能力的核心文件。本文將從數(shù)據(jù)結(jié)構(gòu)、函數(shù)邏輯、數(shù)據(jù)流程三個維度,拆解image-sig.c的實現(xiàn)細(xì)節(jié),帶你吃透U-Boot鏡像驗簽的底層邏輯。

一、背景:為什么需要FIT鏡像簽名驗證?

傳統(tǒng)的U-Boot鏡像格式(如uImage)功能單一,難以滿足復(fù)雜場景下的安全需求。FIT鏡像以設(shè)備樹(DTB)為載體,支持多鏡像打包、版本管理、簽名驗證等能力,而簽名驗證則是安全啟動的核心:

?防止鏡像被惡意篡改,保障啟動流程可信;

?支持多種哈希/加密算法,適配不同安全等級需求;

?區(qū)分“必需”和“可選”簽名,靈活適配不同場景。

image-sig.c的核心職責(zé)就是:管理驗簽所需的算法、解析FIT鏡像的簽名節(jié)點、完成哈希校驗與簽名驗證,是FIT鏡像安全的守護者。

二、核心數(shù)據(jù)結(jié)構(gòu):算法與驗簽信息的載體

在分析函數(shù)前,先理解幾個核心結(jié)構(gòu)體——它們是整個驗簽邏輯的“數(shù)據(jù)骨架”。

1.哈希算法結(jié)構(gòu)體checksum_algo

structchecksum_algo { constchar*name;     // 算法名(sha1/sha256) intchecksum_len;     // 哈希值長度 intder_len;       // DER前綴長度 constuint8_t *der_prefix;// DER編碼前綴(適配ASN.1規(guī)范)  EVP_MD *(*calculate_sign)();// 簽名用哈希計算函數(shù) int(*calculate)();    // 通用哈希計算函數(shù)};

作用:封裝SHA1/SHA256兩種哈希算法的核心屬性,關(guān)聯(lián)哈希計算的具體實現(xiàn),是后續(xù)生成/驗證哈希值的基礎(chǔ)。

2.加密算法結(jié)構(gòu)體crypto_algo

structcrypto_algo { constchar*name;     // 算法名(rsa2048/rsa4096) intkey_len;       // 密鑰長度(字節(jié)) int(*sign)();      // 簽名函數(shù) int(*add_verify_data)(); // 添加驗證數(shù)據(jù) int(*verify)();     // 驗簽函數(shù)};

作用:封裝RSA2048/RSA4096兩種非對稱加密算法,關(guān)聯(lián)簽名/驗簽的核心邏輯,是驗簽的核心執(zhí)行者。

3.填充算法結(jié)構(gòu)體padding_algo

structpadding_algo { constchar*name;     // 填充方式(pkcs-1.5/pss) int(*verify)();     // 填充驗證函數(shù)};

作用:適配不同的RSA填充規(guī)范(PKCS1.5是默認(rèn),PSS更安全),通過配置開關(guān)CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT控制是否啟用PSS。

4.驗簽上下文image_sign_info

這個結(jié)構(gòu)體未在代碼中顯式定義,但從函數(shù)參數(shù)能看出其核心作用:承載一次驗簽的所有上下文信息,包括:

?算法指針(哈希/加密/填充);

?FIT鏡像指針、節(jié)點偏移量;

?密鑰名、驗證所需的FDT blob;

?必需的密鑰節(jié)點索引。

三、核心函數(shù)解析:從算法查找到驗簽落地

image-sig.c的函數(shù)可分為三大類:算法查找、輔助工具、驗簽核心,我們逐一拆解。

1.算法查找函數(shù):匹配字符串與算法實現(xiàn)

驗簽的第一步是“識別算法”——從FIT鏡像節(jié)點的屬性字符串(如sha256,rsa2048)中,匹配到對應(yīng)的算法結(jié)構(gòu)體。

(1)image_get_checksum_algo:查找哈希算法

structchecksum_algo *image_get_checksum_algo(constchar*full_name);

?輸入:完整算法名(如sha256,rsa2048);

?邏輯:遍歷checksum_algos數(shù)組,匹配前綴(如sha256)且后續(xù)字符為逗號,返回對應(yīng)的哈希算法結(jié)構(gòu)體;

?輸出:匹配到的checksum_algo指針(NULL表示未匹配)。

(2)image_get_crypto_algo:查找加密算法

structcrypto_algo *image_get_crypto_algo(constchar*full_name);

?輸入:完整算法名(如sha256,rsa2048);

?邏輯:先截取逗號后的字符串(如rsa2048),再遍歷crypto_algos數(shù)組匹配算法名;

?輸出:匹配到的crypto_algo指針(NULL表示未匹配)。

(3)image_get_padding_algo:查找填充算法

structpadding_algo *image_get_padding_algo(constchar*name);

?輸入:填充算法名(如pkcs-1.5);

?邏輯:遍歷padding_algos數(shù)組匹配名稱;

?輸出:匹配到的padding_algo指針(NULL表示未匹配)。

2.輔助工具函數(shù):FDT區(qū)域到鏡像區(qū)域的轉(zhuǎn)換

structimage_region *fit_region_make_list(constvoid*fit, structfdt_region *fdt_regions,intcount, structimage_region *region);

?核心作用:將FDT(設(shè)備樹)格式的區(qū)域信息,轉(zhuǎn)換為U-Boot鏡像驗簽所需的image_region結(jié)構(gòu)體;

?關(guān)鍵細(xì)節(jié):

a.非SPL構(gòu)建:自動調(diào)用calloc分配內(nèi)存(SPL為節(jié)省代碼量,要求調(diào)用者提前分配);

b.填充image_region的data(鏡像數(shù)據(jù)指針)和size(數(shù)據(jù)長度);

c.輸出調(diào)試信息(偏移量、大?。奖阏{(diào)試哈希區(qū)域。

3.驗簽核心函數(shù):從初始化到最終驗證

驗簽邏輯是層層封裝的,從“單節(jié)點驗簽”到“批量驗簽”,再到“配置節(jié)點驗簽”,形成完整的驗證鏈路。

(1)fit_image_setup_verify:驗簽前的初始化

staticintfit_image_setup_verify(structimage_sign_info *info, constvoid*fit,intnoffset,intrequired_keynode, char**err_msgp);

?核心職責(zé):為驗簽做準(zhǔn)備,填充image_sign_info上下文;

?執(zhí)行流程:

a.從FIT節(jié)點獲取哈希算法名、填充方式(默認(rèn)PKCS1.5);

b.初始化info結(jié)構(gòu)體:密鑰名、FIT鏡像指針、節(jié)點偏移量;

c.調(diào)用算法查找函數(shù),綁定哈希/加密/填充算法;

d.校驗算法是否有效,無效則返回錯誤信息。

(2)fit_image_check_sig:單個簽名節(jié)點的驗簽

intfit_image_check_sig(constvoid*fit,intnoffset,constvoid*data, size_tsize,intrequired_keynode,char**err_msgp);

?核心職責(zé):驗證單個簽名節(jié)點的有效性;

?執(zhí)行流程:

a.調(diào)用fit_image_setup_verify初始化上下文;

b.從FIT節(jié)點讀取預(yù)計算的哈希值(fit_value);

c.構(gòu)造鏡像區(qū)域(image_region),包含待驗證數(shù)據(jù)的指針和長度;

d.調(diào)用加密算法的verify函數(shù),驗證哈希值與簽名是否匹配;

e.返回驗證結(jié)果(0成功,-1失?。?/p>

(3)fit_image_verify_sig:遍歷鏡像節(jié)點的簽名子節(jié)點

staticintfit_image_verify_sig(constvoid*fit,intimage_noffset, constchar*data,size_tsize,constvoid*sig_blob, intsig_offset);

?核心職責(zé):遍歷鏡像節(jié)點下的所有簽名子節(jié)點(以sig-開頭),批量驗簽;

?執(zhí)行流程:

a.遍歷FIT鏡像節(jié)點的所有子節(jié)點,篩選出簽名節(jié)點;

b.對每個簽名節(jié)點調(diào)用fit_image_check_sig驗簽;

c.只要有一個簽名驗證通過,標(biāo)記verified=1并返回成功;

d.若遍歷出錯(如FDT結(jié)構(gòu)損壞),返回錯誤信息。

(4)fit_image_verify_required_sigs:驗證“必需”的簽名

intfit_image_verify_required_sigs(constvoid*fit,intimage_noffset, constchar*data,size_tsize,constvoid*sig_blob, int*no_sigsp);

?核心職責(zé):只驗證標(biāo)記為“required=image”的簽名節(jié)點(這類簽名必須通過,否則啟動失?。?;

?執(zhí)行流程:

a.查找簽名blob中的sig節(jié)點;

b.遍歷子節(jié)點,篩選出required="image"的節(jié)點;

c.調(diào)用fit_image_verify_sig驗證,失敗則直接返回錯誤;

d.統(tǒng)計驗證通過的數(shù)量,更新no_sigsp(標(biāo)記是否有簽名)。

(5)fit_config_check_sig:配置節(jié)點的驗簽(進(jìn)階)

intfit_config_check_sig(constvoid*fit,intnoffset,intrequired_keynode, char**err_msgp);

?核心場景:驗證FIT鏡像的配置節(jié)點(而非鏡像數(shù)據(jù)),防止配置被篡改;

?特殊邏輯:

a.解析hashed-nodes屬性:獲取需要哈希的子節(jié)點列表;

b.校驗節(jié)點數(shù)量(不超過IMAGE_MAX_HASHED_NODES=100),防止棧溢出;

c.調(diào)用fdt_find_regions:查找所有需要哈希的FDT區(qū)域;

d.處理hashed-strings屬性:將字符串區(qū)域加入哈希列表;

e.轉(zhuǎn)換為image_region后調(diào)用驗簽函數(shù),完成配置驗證;

f.適配硬件加密:如RK的SPL+Secure OTP,驗簽后燒錄密鑰哈希。

(6)配置節(jié)點驗簽的封裝函數(shù)

fit_config_verify_sig/fit_config_verify_required_sigs/fit_config_verify是對fit_config_check_sig的封裝,邏輯與鏡像節(jié)點驗簽類似:遍歷配置節(jié)點的簽名子節(jié)點→驗證“required=conf”的簽名→返回最終結(jié)果。

4.特殊場景:回滾保護

代碼末尾的fit_read_otp_rollback_index/fit_rollback_index_verify是“回滾保護”的弱實現(xiàn):

?讀取OTP中的回滾索引,防止攻擊者降級到舊版本(有安全漏洞的版本);

?采用__weak修飾,支持廠商自定義實現(xiàn)(如基于硬件OTP的索引校驗)。

四、數(shù)據(jù)處理全流程:從觸發(fā)驗簽到驗證完成

我們以“鏡像節(jié)點驗簽”為例,梳理完整的數(shù)據(jù)走向,流程圖如下:

wKgZO2meaAmAAwoAAARaq-SMhps727.png

流程圖核心說明:驗簽流程層層封裝、逐步遞進(jìn),優(yōu)先驗證“必需簽名”,確保啟動安全性;單個簽名節(jié)點驗證需完成算法綁定、哈希讀取、匹配校驗三大核心步驟,任一環(huán)節(jié)失敗則啟動終止。

1.啟動觸發(fā)驗簽 → 傳入FIT鏡像指針、鏡像節(jié)點偏移量2.調(diào)用fit_image_verify_required_sigs → 篩選required=image的簽名節(jié)點3.調(diào)用fit_image_verify_sig → 遍歷鏡像節(jié)點下的sig-*子節(jié)點4. 對每個sig節(jié)點調(diào)用fit_image_check_sig: a. fit_image_setup_verify → 解析算法名→匹配哈希/加密/填充算法 b. 讀取FIT節(jié)點中的哈希值(fit_value) c. 構(gòu)造image_region(待驗證數(shù)據(jù)的指針+長度) d. 調(diào)用crypto_algo->verify → 驗證哈希值與簽名匹配5.驗證通過→返回0;驗證失敗→輸出錯誤信息→返回-16.所有required簽名驗證通過→啟動鏡像;否則→啟動失敗

配置節(jié)點驗簽的流程類似,核心差異是:哈希區(qū)域從“鏡像數(shù)據(jù)”變?yōu)椤芭渲霉?jié)點的子節(jié)點+字符串區(qū)域”。

五、代碼設(shè)計的亮點與擴展思路

1.設(shè)計亮點

?模塊化:算法與驗簽邏輯解耦,新增算法只需修改checksum_algos/crypto_algos數(shù)組;

?可配置:通過宏開關(guān)(如CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT)控制功能,適配不同場景;

?內(nèi)存適配:區(qū)分SPL/非SPL構(gòu)建,兼顧代碼量和易用性;

?調(diào)試友好:輸出詳細(xì)的調(diào)試信息(哈希區(qū)域、算法名),方便問題定位。

2.擴展思路

?新增哈希算法(如SHA512):在checksum_algos數(shù)組中添加新項,實現(xiàn)對應(yīng)的哈希計算函數(shù);

?支持ECDSA加密:擴展crypto_algos結(jié)構(gòu)體,添加ECDSA的簽名/驗簽函數(shù);

?強化回滾保護:基于硬件OTP實現(xiàn)強校驗,替換默認(rèn)的__weak函數(shù);

?適配TEE:結(jié)合OP-TEE(代碼中已引入OpteeClientInterface.h),將驗簽邏輯移到安全世界執(zhí)行。

六、總結(jié)

image-sig.c是U-Boot FIT鏡像安全的核心,它以“算法抽象+流程封裝”的方式,實現(xiàn)了哈希計算、簽名驗證、配置校驗的完整邏輯。理解這份代碼,不僅能掌握U-Boot安全啟動的底層原理,也能為嵌入式系統(tǒng)的安全加固提供思路——比如如何設(shè)計可擴展的驗簽框架、如何適配不同的硬件安全特性。

在實際開發(fā)中,廠商通常會基于這份代碼做定制化:比如適配自研的硬件加密模塊、強化回滾保護、新增國密算法(SM2/SM3)等。而掌握核心邏輯后,這些定制化開發(fā)都會變得清晰可落地。

最后,安全啟動的核心是“全鏈路可信”,image-sig.c只是其中一環(huán),還需要結(jié)合鏡像加密、OTP燒錄、硬件隔離等技術(shù),才能構(gòu)建真正的安全啟動體系。

審核編輯 黃宇

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

    關(guān)注

    41

    文章

    3746

    瀏覽量

    133611
  • u-boot
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    39738
  • Fit
    Fit
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    深入解析U-Boot image.c:RK平臺鏡像處理核心邏輯

    在瑞芯微(RK)平臺的嵌入式開發(fā)中,U-Boot作為核心的啟動加載程序,負(fù)責(zé)完成鏡像解析、校驗、加載等關(guān)鍵流程。而image.c正是
    的頭像 發(fā)表于 02-24 16:46 ?1403次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b><b class='flag-5'>U-Boot</b> <b class='flag-5'>image.c</b>:RK平臺<b class='flag-5'>鏡像</b>處理<b class='flag-5'>核心</b>邏輯

    玩轉(zhuǎn)U-Boot bdinfo:嵌入式bsp開發(fā)者的定制、擴展與裁剪實戰(zhàn)指南

    作為嵌入式開發(fā)者,U-Boot 是我們調(diào)試、適配板卡的核心工具,而 bdinfo 命令更是板級信息調(diào)試的“利器”——它能直觀打印內(nèi)存布局、Flash 信息、網(wǎng)絡(luò)配置、時鐘頻率等核心參數(shù)。但原廠
    的頭像 發(fā)表于 02-24 15:26 ?707次閱讀
    玩轉(zhuǎn)<b class='flag-5'>U-Boot</b> bdinfo:嵌入式bsp開發(fā)者的定制、擴展與裁剪實戰(zhàn)指南

    深入解析RK3588 U-Boot板級文件:evb_rk3588.c核心邏輯拆解

    在嵌入式開發(fā)領(lǐng)域,瑞芯微RK3588憑借超強的算力、豐富的接口和廣泛的場景適配性,成為高端邊緣計算、消費電子項目的熱門選擇。而U-Boot作為嵌入式系統(tǒng)的“第一道門”,負(fù)責(zé)硬件初始化、引導(dǎo)內(nèi)核啟動,其板級適配代碼直接決定了芯片硬件能力的落地。
    的頭像 發(fā)表于 02-24 15:24 ?733次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b>RK3588 <b class='flag-5'>U-Boot</b>板級文件:evb_rk3588.<b class='flag-5'>c</b><b class='flag-5'>核心</b>邏輯拆解

    U-Boot 引導(dǎo)加載程序中 TFTP 超時的奇怪解決方法

    對于使用 U-Boot TFTP 啟動 VisionFive 2 的人: U-Boot 可能會頻繁顯示 TFTP 超時。本文討論我們對 TFTP 超時的修復(fù): (1) 首先,我們限制了 TFTP
    發(fā)表于 02-24 07:01

    U-Boot SPL核心文件spl.c深度解析:從啟動流程到調(diào)試優(yōu)化

    解析 U-Boot 中 spl.c 文件的功能與作用,探討其在系統(tǒng)調(diào)試和優(yōu)化中的價值,并通過流程圖和腦圖幫助開發(fā)者快速掌握核心要點。
    的頭像 發(fā)表于 02-05 14:08 ?128次閱讀
    <b class='flag-5'>U-Boot</b> SPL<b class='flag-5'>核心</b>文件spl.<b class='flag-5'>c</b>深度<b class='flag-5'>解析</b>:從啟動流程到調(diào)試優(yōu)化

    深入解析U-Boot TPL代碼:嵌入式啟動的“第一棒”背后的秘密

    在嵌入式系統(tǒng)啟動過程中,從按下電源鍵到操作系統(tǒng)開始運行,中間藏著一系列精密的初始化步驟。今天我們就來拆解 Rockchip 平臺 U-Boot 中的 TPL(Tiny Program Loader)階段核心代碼tpl.c,看看這
    的頭像 發(fā)表于 02-05 14:07 ?1050次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b><b class='flag-5'>U-Boot</b> TPL代碼:嵌入式啟動的“第一棒”背后的秘密

    深入解析U-Boot命令處理核心文件:功能、調(diào)試與開發(fā)價值

    在嵌入式系統(tǒng)開發(fā)中,U-Boot 作為主流的引導(dǎo)加載程序,其命令處理、交互邏輯和自動啟動流程是核心功能模塊。本文將圍繞command.c、cli.c和autoboot.
    的頭像 發(fā)表于 02-03 15:44 ?871次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b><b class='flag-5'>U-Boot</b>命令處理<b class='flag-5'>核心</b>文件:功能、調(diào)試與開發(fā)價值

    深入解析U-Boot核心文件board_f.c:知識點、調(diào)試要點與開發(fā)價值

    在嵌入式系統(tǒng)開發(fā)中,U-Boot 作為應(yīng)用最廣泛的引導(dǎo)程序,其底層初始化邏輯直接決定了硬件啟動的穩(wěn)定性與可靠性。
    的頭像 發(fā)表于 02-03 15:38 ?739次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b><b class='flag-5'>U-Boot</b><b class='flag-5'>核心</b>文件board_f.<b class='flag-5'>c</b>:知識點、調(diào)試要點與開發(fā)價值

    解析Rockchip平臺U-Boot核心文件:boot_rkimg.c到底做了什么?

    在嵌入式開發(fā)中,U-Boot 作為引導(dǎo)程序的 “中流砥柱”,負(fù)責(zé)初始化硬件、加載內(nèi)核并啟動系統(tǒng)。對于 Rockchip 平臺的設(shè)備(如常見的開發(fā)板、智能終端),boot_rkimg.cU-Boot 中專門處理啟動流程的
    的頭像 發(fā)表于 02-03 15:29 ?737次閱讀
    <b class='flag-5'>解析</b>Rockchip平臺<b class='flag-5'>U-Boot</b><b class='flag-5'>核心</b>文件:<b class='flag-5'>boot_rkimg.c</b>到底做了什么?

    深入解析rk平臺Android Bootloader核心代碼:從啟動流程到AVB驗證

    作為Android設(shè)備啟動的第一道“閘門”,Bootloader(以U-Boot為主)承擔(dān)著初始化硬件、加載內(nèi)核、驗證鏡像完整性的核心職責(zé)。今天我們拆解Rockchip平臺
    的頭像 發(fā)表于 01-22 07:06 ?232次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b>rk平臺Android Bootloader<b class='flag-5'>核心</b>代碼:從啟動流程到AVB<b class='flag-5'>驗證</b>

    深入解析RK平臺Android/Linux Bootloader核心文件:android_bootloader.c

    Bootloader是Android設(shè)備啟動的第一道“關(guān)卡”,負(fù)責(zé)初始化硬件、加載系統(tǒng)鏡像并完成內(nèi)核啟動的前置準(zhǔn)備。在基于U-Boot的Android設(shè)備中,android_bootloader.c
    的頭像 發(fā)表于 01-09 10:58 ?1188次閱讀
    <b class='flag-5'>深入</b><b class='flag-5'>解析</b>RK平臺Android/Linux Bootloader<b class='flag-5'>核心</b>文件:android_bootloader.<b class='flag-5'>c</b>

    深入理解?RK3506 U-Boot?重定位:從代碼到原理

    在嵌入式系統(tǒng)中,U-Boot?作為引導(dǎo)加載程序,其啟動流程的核心環(huán)節(jié)之一就是 重定位(Relocation) 。對于?RK3506?這類基于?ARM Cortex-A?架構(gòu)的芯片,重定位的本質(zhì)是將
    的頭像 發(fā)表于 11-28 07:05 ?576次閱讀
    <b class='flag-5'>深入</b>理解?RK3506 <b class='flag-5'>U-Boot</b>?重定位:從代碼到原理

    U-Boot 無法識別 NAND怎么解決?

    U-Boot 無法識別 NAND
    發(fā)表于 09-03 06:37

    飛凌嵌入式ElfBoard ELF 1板卡-uboot編譯u-boot/u-boot.bin/u-boot.imx

    u-boot文件就是編譯流程章節(jié)講的,鏈接器將鏈接各.o文件之后生成的.elf文件,該文件中包含了大量的調(diào)試信息、地址信息和注釋信息,不能被直接執(zhí)行,需要轉(zhuǎn)換成為可執(zhí)行的u-boot.bin文件,而
    發(fā)表于 05-22 11:24

    U-Boot 和 Bootloader,99% 的工程師都分不清?

    嵌入式軟件工程師聽說過 u-boot 和 bootloader,但很多工程師依然不知道他們到底是啥。 ? 今天就來簡單講講?u-boot 和 bootloader?的內(nèi)容以及區(qū)別
    的頭像 發(fā)表于 03-25 20:47 ?1778次閱讀