1. 程式人生 > 其它 >迅為iTOP-STM32MP157開發板編譯U-Boot

迅為iTOP-STM32MP157開發板編譯U-Boot

uboot 是一段裸機程式碼,它的實現非常複雜,主要是初始化一些硬體,部署整個計算機系統,將核心讀到記憶體,根據環境變數去啟動核心,並向核心傳遞引數。它的目標就是啟動核心,核心啟動後它的生命也隨之結束。
u-boot 是 SourceForge 上的開源專案,由一個人發起,然後由整個世界所有感興趣的人共同維護髮展而來的一個 bootloader,bootloader 是用來引導和載入核心,向核心傳遞引數的,是核心載入程式的統稱,bootloader 除了 u-boot 還有 bios,LilO,redboot,vivi 等。Uboot 的原始碼存放路徑為“iTOP-STM32MP157 開發板光碟資料\04_TF-A、uboot 和核心原始碼\uboot”,如下圖所示:
<ignore_js_op>
Uboot 原始碼的編譯器和編譯 TF-A 的編譯器相同為 gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf。將原始碼拷貝原始碼到“/home/topeet”目錄下,使用如下命令解壓:tar -vxf u-boot-stm32mp-2020.01-r0_20210817.tar.gz(注意,日期字尾名可能會更新)解壓原始碼壓縮包,解壓完成之後得到“u-boot-stm32mp-2020.01-r0”資料夾。
使用命令進入 uboot 的原始碼如下圖所示:cd u-boot-stm32mp-2020.01-r0/
<ignore_js_op>
三個個檔案分別為編譯的 makefile 檔案和 EMMC 和 TF 卡編譯的原始碼。
我們以 EMMC 原始碼編譯為例(TF 卡的 uboot 映象編譯步驟相同),使用命令
cd emmc_u-boot-stm32mp-2020.01/
進入到對應的原始碼目錄下,如下圖所示:
<ignore_js_op>
然後使用命令“./create.sh”進行編譯,如下圖所示:
<ignore_js_op>
編譯過程如下圖所示:
<ignore_js_op>
編譯完成如下圖所示:
<ignore_js_op>
編譯完成之後會在上一級目錄產生 build-trusted 目錄,用來存放編譯生成的檔案。而我們所需要的檔案為 u-boot.stm32 如下圖所示:
<ignore_js_op>
至此我們的 uboot 編譯就完成了。然後在 build-trusted 目錄下使用以下命令cp u-boot.stm32 /home/image/uboot/emmc_emmc_u-boot.stm32
來替換掉燒寫檔案中關於 emmc 的 uboot 即可(每個人 image 的路徑都不同,要根據自己的情況來完善命令)。
<ignore_js_op>
核心板引數
尺寸:        46mm*58mm
CPU:        STM32MP157A
主頻:        650M
記憶體:        1G
儲存:        8G
工作

電壓:        直流5V供電
系統支援:        流暢執行最小Linux系統、Buildroot、QT5.12.10、ubuntu_base_20.04、Debian系統
引角擴充套件:        引出腳多達240個,滿足使用者各類擴充套件需求
底板引數:
尺寸:        190mm*125mm
POWER:        電直流電源輸入介面,12V/3A+電源輸入
SWITCH:        電源開關
DIP:        SWITCH 4位撥碼開關
ADC電位器:        1路
SDIO介面:        1個
JTAG:        1個
CAMERA介面:        1個
CAN介面:        1路CAN
User Key:        5個功能按鍵
MIC:        支援MIC輸入
PHONE:        支援耳機輸出
串列埠:        3路
USB
 Host:        2路 USB Host,支援USB2.0協議
TF Card:        1個標準TF卡介面
網口:        1路千兆乙太網口
LED:        3個(1個電源指示燈,2個可控LED)
HDMI介面:        1路
LCD介面:        1路LVDS9(HDMI口輸出LVDS訊號),1路RGB
USB OTG:        2路 USB OTG2.0
RTC:        1個
RS485介面:        1路
WIFI/藍芽晶片:        1路
4G模組選配:        1個
六軸感測器:        1個
蜂鳴器:        1個
紅外
感測器:        1個
光環境感測器:        1個
溫溼度感測器:        1個
SPDIF介面:        SPDIF輸入、SPDIF輸出