<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

怎么使用uboot引導應用程序?

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

uboot默認是支持執行應用程序的,就像引導內核一樣,我們也可以自己寫一個應用程序,讓uboot啟動時引導。

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

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

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

圖片

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

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

uboot設置好參數。

=> 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)

執行go指令去引導我們的程序。

=> 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 中,每次啟動內核前,先去引導應用程序,再引導內核。

end

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

    關注

    3

    文章

    1311

    瀏覽量

    39883
  • 應用程序
    +關注

    關注

    37

    文章

    3146

    瀏覽量

    56562
  • Uboot
    +關注

    關注

    4

    文章

    123

    瀏覽量

    27941
收藏 人收藏

    評論

    相關推薦

    使用uboot引導應用程序

    uboot默認是支持執行應用程序的,就像引導內核一樣,我們也可以自己寫一個應用程序,讓uboot啟動時
    發表于 11-16 14:00 ?798次閱讀

    引導程序應用程序重置向量的問題

    *Read設備。在MPLAIDE內部,我為我的應用程序設置以下限制:ROM范圍:默認,-1B9C-1FFFand用于引導加載程序:ROM范圍:1BA0- FFFAll似乎工作得很好。應用程序
    發表于 08-23 08:54

    如何從引導加載程序跳轉到主應用程序?

    大家好,我正在使用SPC56EL60L3和SPC5STUDIO v5.0。我有兩個不同的應用程序: - 引導加載程序應用程序 - 主要應用我們的想法是從閃存扇區0(閃存地址0x0000
    發表于 06-20 13:33

    請問uboot該如何引導裸機程序

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

    PIC32引導加載程序應用程序固件問題

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

    為什么引導加載程序不啟動應用程序?

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

    如何首次下載應用程序后跳過引導加載程序?

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

    怎么從應用程序跳回到引導程序?

    一個面包屑,引導程序可以使用它來知道我不想讓它跳轉到應用程序?是否有一種方法來重新創建函數中的“yReSeTyAdDR”代碼,以創建可以從應用程序跳轉的位置?我跳出
    發表于 04-06 07:06

    【MaaXBoard開發板試用體驗】uboot 應用程序開發

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

    IMX6UL從自定義引導加載程序引導vxworks,音頻應用程序不工作的原因?

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

    blhost應用程序可以與ROM引導加載程序通信嗎?

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

    BIOS和UEFI引導修復工具應用程序免費下載

    本文檔的主要內容詳細介紹的是BIOS和UEFI引導修復工具應用程序免費下載。
    發表于 04-15 08:00 ?1次下載
    BIOS和UEFI<b class='flag-5'>引導</b>修復工具<b class='flag-5'>應用程序</b>免費下載

    IMX6ULL Uboot 移植

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

    Qt應用程序出現卡頓的現象怎么解決呢

    在使用Qt完成項目開發后,需要將其運行在嵌入式linux平臺上,在設備啟動后,經uboot引導和linux內核后,直接進入Qt應用程序。
    的頭像 發表于 09-23 10:38 ?6637次閱讀

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

    當我們厭倦了裸機程序,而想要采用操作系統的時候,uboot就是不得不引入的一段程序。所以,uboot就是一段引導
    的頭像 發表于 10-24 17:19 ?656次閱讀
    <b class='flag-5'>uboot</b>的基本概念和啟動流程分析
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>