uboot啟動裸機程式

2021-09-23 20:56:12 字數 614 閱讀 3850

最近從嵌入式linux學完,想要再往底層硬體走,於是寫了個裸機程式,希望放到自己板子上跑起來,發現可以利用uboot + minicom從串列埠接收裸機程式並執行。故記錄下此過程。

在沒有作業系統的支援下,直接編譯的程式是無法在裸機下執行的,需要去掉檔案頭。相關指令對應makefile如下:

led.bin:led.o

# 編譯

arm-linux-gcc -c led.c

arm-linux-ld led.o -o led.elf

# 去掉檔案頭

arm-linux-objcopy -o binary led.elf led.bin

# 反編譯,校對一下彙編**

arm-linux-objdump -d led.elf

在uboot中,敲入以下命令

loady 50008000(可用ram位址隨便選乙個, 也可以不寫,由uboot指定) // 通過ymodem協議接收資料

control+a -> z -> s mimicom選擇宿主機檔案led.bin傳送

go 50008000 //執行裸機程式

!!!有個小bug得提一下,在uboot中使用loady寫入資料後,如果再次寫到相同的位址會失效!!!

uboot啟動流程概述 uboot啟動流程

u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...

uboot移植 uboot啟動回顧

一 uboot啟動的第一階段start.s 路徑uboot cpu s5pc11x start.s 1 include 標頭檔案包含,config.件原始碼中不存 在,配置後自動生成 路徑 include linux config.h 2 include 標頭檔案包含,version.件原始碼中不存...

uboot分析 uboot啟動核心

u boot啟動核心概述 u boot啟動完成後,最終進入到main loop 迴圈中。若在bootdelay倒計時為0之前,u boot控制台有輸入,則進入命令解析 執行的迴圈 若控制台無輸入,u boot將啟動核心。u boot啟動核心可歸結為以下四個步驟 1 將核心搬移至ddr中 2 校驗核心...