RM新时代网站-首页

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

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

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

怎么使用uboot引導(dǎo)應(yīng)用程序?

汽車電子技術(shù) ? 來源:嵌入式與Linux那些事 ? 作者:仲一 ? 2023-02-17 16:01 ? 次閱讀

uboot默認是支持執(zhí)行應(yīng)用程序的,就像引導(dǎo)內(nèi)核一樣,我們也可以自己寫一個應(yīng)用程序,讓uboot啟動時引導(dǎo)。

在uboot examples/standalone 目錄下,有hello_world.c文件,編譯uboot的時候,會自動編譯hello_world.bin文件。

裸機程序未加鏈接地址時,只能使用text代碼段,如果裸機程序中使用出現(xiàn)了跨端操作(使用text端段以外的段:rodata,data,bss段),必須在鏈接時手工指定連接鏈接地址為實際的運行地址。

默認的鏈接地址由 Makefile中通過CONFIG_STANDALONE_LOAD_ADDR 指定。

圖片

這個地址不一定適合我們的板子,為了不影響uboot的正常運行,我們修改該地址為內(nèi)核的鏈接地址0x280000。

重新編譯的uboot后,將hello_world.bin通過tftp加載到內(nèi)存中。

uboot設(shè)置好參數(shù)。

=> setenv ipaddr 192.168.137.110
=> setenv serverip 192.168.137.1
=> setenv gatewayip 192.168.137.1
=> tftp 0x00280000 hello_world.bin
ethernet@fe300000 Waiting for PHY auto negotiation to complete.. done
Speed: 1000, full duplex
Using ethernet@fe300000 device
TFTP from server 192.168.137.1; our IP address is 192.168.137.110
Filename 'hello_world.bin'.
Load address: 0x280000
Loading: #
         0 Bytes/s
done
Bytes transferred = 794 (31a hex)

執(zhí)行g(shù)o指令去引導(dǎo)我們的程序。

=> go 0x280000
## Starting application at 0x00280000 ...
Example expects ABI version 9
Actual U-Boot ABI version 9
Hello World
argc = 1
argv[0] = "0x280000"
argv[1] = ""
Hit any key to exit ...

成功打印出Hello World。

也可以將 go 0x280000 添加到bootcmd 中,每次啟動內(nèi)核前,先去引導(dǎo)應(yīng)用程序,再引導(dǎo)內(nèi)核。

end

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

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40275
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3265

    瀏覽量

    57677
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    28213
收藏 人收藏

    評論

    相關(guān)推薦

    使用uboot引導(dǎo)應(yīng)用程序

    uboot默認是支持執(zhí)行應(yīng)用程序的,就像引導(dǎo)內(nèi)核一樣,我們也可以自己寫一個應(yīng)用程序,讓uboot啟動時
    發(fā)表于 11-16 14:00 ?996次閱讀

    引導(dǎo)程序應(yīng)用程序重置向量的問題

    *Read設(shè)備。在MPLAIDE內(nèi)部,我為我的應(yīng)用程序設(shè)置以下限制:ROM范圍:默認,-1B9C-1FFFand用于引導(dǎo)加載程序:ROM范圍:1BA0- FFFAll似乎工作得很好。應(yīng)用程序
    發(fā)表于 08-23 08:54

    請問uboot該如何引導(dǎo)裸機程序

    時運行uboot,然后引導(dǎo)我的裸機程序,嘗試了一下,將之前我仿真時正常的LED小程序通過uboot下載到flash中,但是怎么樣都
    發(fā)表于 07-15 05:45

    PIC32引導(dǎo)加載程序應(yīng)用程序固件問題

    大家好,我有一個奇怪的問題:硬件是PIC32MX695+LAN8740。我有一個程序成功地獨立運行和連接到sslWeb服務(wù)(沒有引導(dǎo)加載程序、鏈接器文件等)。當我使用引導(dǎo)加載
    發(fā)表于 09-29 14:01

    為什么引導(dǎo)加載程序不啟動應(yīng)用程序?

    和電源的卡。我的簡單應(yīng)用程序會閃爍一個LED,當我編程時它會工作。但是使用引導(dǎo)加載程序時,我沒有看到任何閃爍。在沒有SDcard的情況下,一個接一個的程序
    發(fā)表于 10-29 10:37

    如何首次下載應(yīng)用程序后跳過引導(dǎo)加載程序?

    嗨,我是dspic的新手,但我正在嘗試開發(fā)一個CAN引導(dǎo)程序應(yīng)用程序,它似乎工作得很好,但是在第一次應(yīng)用程序下載之后出現(xiàn)了一個奇怪的行為。o可以看到
    發(fā)表于 10-29 08:06

    怎么從應(yīng)用程序跳回到引導(dǎo)程序?

    一個面包屑,引導(dǎo)程序可以使用它來知道我不想讓它跳轉(zhuǎn)到應(yīng)用程序?是否有一種方法來重新創(chuàng)建函數(shù)中的“yReSeTyAdDR”代碼,以創(chuàng)建可以從應(yīng)用程序跳轉(zhuǎn)的位置?我跳出
    發(fā)表于 04-06 07:06

    【MaaXBoard開發(fā)板試用體驗】uboot 應(yīng)用程序開發(fā)

    Uboot 是近似裸機的程序,沒有 libc 庫使用,更沒有高級的組件可用,開發(fā)uboot 開發(fā)應(yīng)用程序想想就很很不容易??墒?uboot
    發(fā)表于 01-19 21:02

    IMX6UL從自定義引導(dǎo)加載程序引導(dǎo)vxworks,音頻應(yīng)用程序不工作的原因?

    我有一個基于 IMX6UL 的定制板,音頻編解碼器連接到 SAI1。應(yīng)用程序適用于 vxworks。BSP 有自己的 SDMA 和 SAI 驅(qū)動程序。當 vxworks 內(nèi)核從 uboot 啟動時
    發(fā)表于 03-16 08:43

    blhost應(yīng)用程序可以與ROM引導(dǎo)加載程序通信嗎?

    NXP LPCXpresso54S018 中的 ROM 引導(dǎo)加載程序支持使用串行 ISP 下載應(yīng)用程序固件映像到閃存 ? 如果不支持,我們可以為此使用 EVK 閃存加載程序
    發(fā)表于 05-06 08:27

    BIOS和UEFI引導(dǎo)修復(fù)工具應(yīng)用程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是BIOS和UEFI引導(dǎo)修復(fù)工具應(yīng)用程序免費下載。
    發(fā)表于 04-15 08:00 ?1次下載
    BIOS和UEFI<b class='flag-5'>引導(dǎo)</b>修復(fù)工具<b class='flag-5'>應(yīng)用程序</b>免費下載

    IMX6ULL Uboot 移植

    使用的開發(fā)板:正點原子ALPHA V2.2Uboot簡介在學習STM32的過程中使用過IAP在線升級就會知道,有引導(dǎo)程序+APP程序,即bootloader
    發(fā)表于 12-22 19:08 ?13次下載
    IMX6ULL <b class='flag-5'>Uboot</b> 移植

    Qt應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢

    在使用Qt完成項目開發(fā)后,需要將其運行在嵌入式linux平臺上,在設(shè)備啟動后,經(jīng)uboot引導(dǎo)和linux內(nèi)核后,直接進入Qt應(yīng)用程序。
    的頭像 發(fā)表于 09-23 10:38 ?8487次閱讀

    AN-2058: ADuCM355用戶引導(dǎo)加載程序

    用戶應(yīng)用程序可以實現(xiàn)自己的引導(dǎo)加載程序,提供一個用于現(xiàn)場自我更新的機制。實現(xiàn)自己的用戶引導(dǎo)加載程序要求以適當?shù)姆绞綐?gòu)建用戶
    的頭像 發(fā)表于 06-16 16:31 ?984次閱讀
    AN-2058: ADuCM355用戶<b class='flag-5'>引導(dǎo)</b>加載<b class='flag-5'>程序</b>

    uboot的基本概念和啟動流程分析

    當我們厭倦了裸機程序,而想要采用操作系統(tǒng)的時候,uboot就是不得不引入的一段程序。所以,uboot就是一段引導(dǎo)
    的頭像 發(fā)表于 10-24 17:19 ?3089次閱讀
    <b class='flag-5'>uboot</b>的基本概念和啟動流程分析
    RM新时代网站-首页