uboot默認(rèn)是支持執(zhí)行應(yīng)用程序的,就像引導(dǎo)內(nèi)核一樣,我們也可以自己寫一個(gè)應(yīng)用程序,讓uboot啟動(dòng)時(shí)引導(dǎo)。
在uboot examples/standalone 目錄下,有hello_world.c文件,編譯uboot的時(shí)候,會(huì)自動(dòng)編譯hello_world.bin文件。
裸機(jī)程序未加鏈接地址時(shí),只能使用text代碼段,如果裸機(jī)程序中使用出現(xiàn)了跨端操作(使用text端段以外的段:rodata,data,bss段),必須在鏈接時(shí)手工指定連接鏈接地址為實(shí)際的運(yùn)行地址。
默認(rèn)的鏈接地址由 Makefile中通過(guò)CONFIG_STANDALONE_LOAD_ADDR
指定。
這個(gè)地址不一定適合我們的板子,為了不影響uboot的正常運(yùn)行,我們修改該地址為內(nèi)核的鏈接地址0x280000
。
重新編譯的uboot后,將hello_world.bin通過(guò)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
中,每次啟動(dòng)內(nèi)核前,先去引導(dǎo)應(yīng)用程序,再引導(dǎo)內(nèi)核。
end
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1383瀏覽量
40442 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3296瀏覽量
57946 -
Uboot
+關(guān)注
關(guān)注
4文章
125瀏覽量
28360
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
使用uboot引導(dǎo)應(yīng)用程序
引導(dǎo)程序和應(yīng)用程序重置向量的問題
請(qǐng)問uboot該如何引導(dǎo)裸機(jī)程序
PIC32引導(dǎo)加載程序和應(yīng)用程序固件問題
為什么引導(dǎo)加載程序不啟動(dòng)應(yīng)用程序?
如何首次下載應(yīng)用程序后跳過(guò)引導(dǎo)加載程序?
怎么從應(yīng)用程序跳回到引導(dǎo)程序?
【MaaXBoard開發(fā)板試用體驗(yàn)】uboot 應(yīng)用程序開發(fā)
IMX6UL從自定義引導(dǎo)加載程序引導(dǎo)vxworks,音頻應(yīng)用程序不工作的原因?
blhost應(yīng)用程序可以與ROM引導(dǎo)加載程序通信嗎?
BIOS和UEFI引導(dǎo)修復(fù)工具應(yīng)用程序免費(fèi)下載
![BIOS和UEFI<b class='flag-5'>引導(dǎo)</b>修復(fù)工具<b class='flag-5'>應(yīng)用程序</b>免費(fèi)下載](https://file.elecfans.com/web1/M00/8E/53/o4YBAFy0Sz6AegF9AAA_6Yrhx6I466.png)
IMX6ULL Uboot 移植
![IMX6ULL <b class='flag-5'>Uboot</b> 移植](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Qt應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢
AN-2058: ADuCM355用戶引導(dǎo)加載程序
![AN-2058: ADuCM355用戶<b class='flag-5'>引導(dǎo)</b>加載<b class='flag-5'>程序</b>](https://file1.elecfans.com/web2/M00/89/E3/wKgaomSMI7SAN1oUAAAoE3RIWGg153.png)
uboot的基本概念和啟動(dòng)流程分析
![<b class='flag-5'>uboot</b>的基本概念和啟動(dòng)流程分析](https://file1.elecfans.com/web2/M00/AA/0C/wKgaomU3jKCAP_laAABIMh1aqcU607.png)
評(píng)論