chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

rk版本uboot啟動(dòng)流程

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2025-12-15 10:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、為什么要了解uboot啟動(dòng)流程uboot一般已經(jīng)調(diào)試好了,如果是原廠給的源碼,基本上不需要做過多的修改,但是在實(shí)際應(yīng)用中,可能會(huì)出現(xiàn)各種問題,可能需要啟動(dòng)優(yōu)化、開機(jī)速度調(diào)整等,這個(gè)時(shí)候就需要關(guān)注uboot了。初學(xué)者甚至很多工程師不知其中原理,往往在開發(fā)過程中不知所措,消耗很多不必要的時(shí)間,導(dǎo)致項(xiàng)目開發(fā)周期拉長(zhǎng)。二、相關(guān)概念、流程和理解Boot-order RK平臺(tái)根據(jù)前級(jí)Loader代碼是否開源,目前有兩套啟動(dòng)方式:
// 前級(jí)loader閉源 BOOTROM => ddr bin => Miniloader => TRUST => U-BOOT => KERNEL // 前級(jí)loader開源 BOOTROM => TPL => SPL => TRUST => U-BOOT => KERNEL
TPL 相當(dāng)于 ddr bin,SPL 相當(dāng)于 miniloader。TPL+SPL 的組合實(shí)現(xiàn)了跟 RK 閉源 ddr.bin+miniloader 一致的功能,可相互替換。Driver-probe U-Boot雖然引入了device-driver開發(fā)模型,但初始化階段不會(huì)像kernel那樣自動(dòng)發(fā)起已注冊(cè)device-driver的probe。driver的probe必須由用戶主動(dòng)調(diào)用發(fā)起。接口如下:
int uclass_get_device(enum uclass_id id, int index, struct udevice **devp);int uclass_get_device_by_name(enum uclass_id id, const char *name,struct udevice **devp);int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp);int uclass_get_device_by_of_offset(enum uclass_id id, int node, struct udevice**devp);int uclass_get_device_by_ofnode(enum uclass_id id, ofnode node, struct udevice**devp);int uclass_get_device_by_phandle_id(enum uclass_id id,int phandle_id, struct udevice **devp);int uclass_get_device_by_phandle(enum uclass_id id,struct udevice *parent, struct udevice **devp);int uclass_get_device_by_driver(enum uclass_id id,const struct driver *drv, struct udevice**devp);int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp);......
上述接口的核心調(diào)用:
int device_probe(struct udevice *dev); // 建議用戶一定要了解內(nèi)部實(shí)現(xiàn)!
ShellU-Boot的Shell叫CLI(cmdline line interface),即命令行模式,用戶可以根據(jù)自己需求自定義CMD。CMD除了通過Shell調(diào)用,還能通過 run_command() 和 run_command_list() 以代碼的形式調(diào)用。
int run_command(const char *cmd, int flag)int run_command_list(const char *cmd, int len, int flag)
Boot-CommandU-Boot 最終通過 CONFIG_BOOTCOMMAND 定義的啟動(dòng)命令引導(dǎo)kernel。在執(zhí)行 CONFIG_BOOTCMD 之前還會(huì)執(zhí)行 CONFIG_PREBOOT 預(yù)啟動(dòng)命令,通常這個(gè)命令定義為空。TPL/SPL/U-Boot-properU-Boot 通過使用不同的編譯條件可以用同一套代碼獲取三種不同功能的Loader:TPL/SPL/U-Boot proper。TPL(Tiny Program Loader)和 SPL(Secondary Program Loader)是比 U-Boot 更早階段的 Loader:TPL:運(yùn)行在 sram 中,負(fù)責(zé)完成 ddr 初始化;SPL:運(yùn)行在 ddr 中,負(fù)責(zé)完成系統(tǒng)的 lowlevel 初始化、后級(jí)固件加載(trust.img 和 uboot.img);U-Boot proper:運(yùn)行在ddr中,即我們通常所說的"U-Boot",它負(fù)責(zé)引導(dǎo)kernel;說明:U-Boot proper 這一說法主要是為了和 SPL 區(qū)分開。出于習(xí)慣,后續(xù)章節(jié)提到的 U Boot proper 我們都簡(jiǎn)稱為 U-Boot。啟動(dòng)流程:
BOOTROM => TPL(ddr bin) => SPL(miniloader) => TRUST => U-BOOT => KERNEL
聲明:本文內(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)注

    88

    文章

    11760

    瀏覽量

    219042
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    131

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

    初次編譯rk3568(rk3576)Linux 6.1內(nèi)核踩坑記錄:從報(bào)錯(cuò)終止到成功解決的完整流程

    很多剛接觸瑞芯微 rk 系列芯片開發(fā)的小伙伴,在初次編譯基于 Linux 6.1 內(nèi)核的系統(tǒng)時(shí),很容易因?yàn)榄h(huán)境依賴問題卡殼。最近我在編譯 rk3576(rk3568 流程類似)Linu
    的頭像 發(fā)表于 02-06 16:47 ?2582次閱讀
    初次編譯<b class='flag-5'>rk</b>3568(<b class='flag-5'>rk</b>3576)Linux 6.1內(nèi)核踩坑記錄:從報(bào)錯(cuò)終止到成功解決的完整<b class='flag-5'>流程</b>

    技術(shù)分享 | RK3568 Android11 如何實(shí)現(xiàn)自啟動(dòng)應(yīng)用

    隨著Android版本的不斷升級(jí),對(duì)于應(yīng)用權(quán)限的管理會(huì)更加苛刻。我司IAC-RK3568-Kit開發(fā)板默認(rèn)搭載Android11,相比較之前RK3288的產(chǎn)品安卓版本變更較大,有些客戶
    的頭像 發(fā)表于 02-05 17:26 ?411次閱讀
    技術(shù)分享 | <b class='flag-5'>RK</b>3568 Android11 如何實(shí)現(xiàn)自<b class='flag-5'>啟動(dòng)</b>應(yīng)用

    拒絕卡頓,觸覺智能RK3562核心板成功實(shí)現(xiàn)2秒級(jí)疾速啟動(dòng),響應(yīng)快到離譜!

    還在忍受漫長(zhǎng)開機(jī)等待?觸覺智能再放大招,繼RK3506方案實(shí)現(xiàn)2秒內(nèi)疾速啟動(dòng)后,觸覺智能旗下爆款方案RK3562核心板再放大招,開機(jī)速度飆到2秒級(jí),支持LVGL+GPU渲染,響應(yīng)快到離譜!具體實(shí)測(cè)
    的頭像 發(fā)表于 01-16 18:00 ?426次閱讀
    拒絕卡頓,觸覺智能<b class='flag-5'>RK</b>3562核心板成功實(shí)現(xiàn)2秒級(jí)疾速<b class='flag-5'>啟動(dòng)</b>,響應(yīng)快到離譜!

    項(xiàng)目效率翻倍!迅為RK3568?V2.0硬件接口升級(jí),開發(fā)流程再提速

    項(xiàng)目效率翻倍!迅為RK3568?V2.0硬件接口升級(jí),開發(fā)流程再提速
    的頭像 發(fā)表于 10-29 10:53 ?468次閱讀
    項(xiàng)目效率翻倍!迅為<b class='flag-5'>RK</b>3568?V2.0硬件接口升級(jí),開發(fā)<b class='flag-5'>流程</b>再提速

    BB Black使用uboot啟動(dòng)rtt,data abort錯(cuò)誤怎么解決?

    編譯通過,生成了rtthread.bin。把他復(fù)制到uboot的FAT分區(qū),按照目錄下的uboot_cmd.txt的命令,把rtthread.bin加載到DDR,然后啟動(dòng)的時(shí)候出現(xiàn)如下錯(cuò)誤,單板重新
    發(fā)表于 09-28 06:45

    求助,修復(fù)使用uboot時(shí)NAND啟動(dòng)停止的問題求解

    修復(fù)使用 uboot 時(shí) NAND 啟動(dòng)停止的問題
    發(fā)表于 09-01 07:08

    RK3128 Android 7.1 進(jìn)入深度休眠流程分析

    RK3128 Android 7.1 進(jìn)入深度休眠流程分析RK3128是瑞芯微電子推出的一款低功耗四核Cortex-A7處理器,運(yùn)行Android 7.1系統(tǒng)時(shí)進(jìn)入深度休眠(Deep Sleep
    發(fā)表于 07-22 10:45

    RK3568 EVB開發(fā)板 深度休眠與快速醒的工作流程

    RK3568 EVB開發(fā)板關(guān)于深度休眠和喚醒流程的分析
    的頭像 發(fā)表于 07-22 09:49 ?852次閱讀
    <b class='flag-5'>RK</b>3568 EVB開發(fā)板 深度休眠與快速醒的工作<b class='flag-5'>流程</b>

    求助,關(guān)于K230啟動(dòng)流程疑問求解

    proper,然后再啟動(dòng)opensbi,再啟動(dòng)linux 內(nèi)核,為什么要將opensbi放在uboot proper的后面啟動(dòng),這樣做的好處是啥? 目前
    發(fā)表于 07-11 06:42

    Linux修改uboot啟動(dòng)延時(shí)方法詳細(xì)攻略,觸覺智能RK3568開發(fā)板演示

    本文介紹Linux系統(tǒng)修改uboot啟動(dòng)延時(shí)方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,搭載瑞芯微RK3568,四核A55處理器,主頻2.0Ghz,1T算力NPU;支持開源鴻蒙
    的頭像 發(fā)表于 06-06 18:07 ?945次閱讀
    Linux修改<b class='flag-5'>uboot</b><b class='flag-5'>啟動(dòng)</b>延時(shí)方法詳細(xì)攻略,觸覺智能<b class='flag-5'>RK</b>3568開發(fā)板演示

    RK3562開發(fā)板uboot下GPIO的控制方法,觸覺智能嵌入式方案商

    本文介紹如何uboot下GPIO的控制方法等,使用觸覺智能RK3562開發(fā)板演示,搭載4核A53處理器,主頻高達(dá)2.0GHz;內(nèi)置獨(dú)立1Tops算力NPU,可應(yīng)用于物聯(lián)網(wǎng)網(wǎng)關(guān)、平板電腦、智能家居
    的頭像 發(fā)表于 06-06 17:49 ?847次閱讀
    <b class='flag-5'>RK</b>3562開發(fā)板<b class='flag-5'>uboot</b>下GPIO的控制方法,觸覺智能嵌入式方案商

    飛凌嵌入式ElfBoard ELF 1板卡-uboot啟動(dòng)流程分析之uboot啟動(dòng)階段

    uboot啟動(dòng)可分為匯編語(yǔ)言執(zhí)行和C語(yǔ)言執(zhí)行兩個(gè)階段,兩個(gè)階段以_main函數(shù)為分界。uboot第一階段由_start (arch/arm/lib/vectors.S)進(jìn)入,然后跳轉(zhuǎn)到reset
    發(fā)表于 05-30 09:24

    飛凌嵌入式ElfBoard ELF 1板卡-uboot啟動(dòng)流程分析之boot ROM階段

    CPU上電之后執(zhí)行的第一段代碼并不是uboot代碼,因?yàn)?b class='flag-5'>uboot存儲(chǔ)在啟動(dòng)介質(zhì)(存儲(chǔ)介質(zhì)),如eMMC Flash、NAND Flash、SD卡,CPU想要執(zhí)行啟動(dòng)介質(zhì)中的
    發(fā)表于 05-28 10:01

    RK3576 Android 14.0 SDK開發(fā)指南(第一集)

    RK3576 Android 14.0 SDK代碼編譯 SDK下載到本地后大概70多個(gè)G 下載后要做個(gè)校驗(yàn) 解壓后內(nèi)核源碼 kernel代碼路徑說明 Android14支持6.1 版本
    發(fā)表于 05-20 08:43