1. 程式人生 > 其它 >迅為iTOP-STM32MP157開發板編譯Linux核心

迅為iTOP-STM32MP157開發板編譯Linux核心

1 核心原始碼的編譯
kernel 的原始碼路徑為“iTOP-STM32MP157 開發板光碟資料\04_TF-A、uboot 和核心原始碼\kernel”,如下圖所示(日期可能會有變化,使用最新日期即可):

kernel 原始碼的編譯器和編譯 uboot 與 TF-A 的編譯器相同,都為 gcc-arm-10.3-2021.07-x86_64-arm-nonelinux-gnueabihf。
將“ ”原始碼拷貝原始碼到“/home/topeet”目錄下,使用如下命令
tar -vxf linux-5.4.31_20210817.tar.gz
解壓原始碼壓縮包,得到“linux-5.4.31”資料夾,使用如下命令
cd linux-5.4.31/
進入該資料夾,如下圖所示。

使用命令”./create.sh”來進行編譯,編譯過程如下圖示所示:

編譯完成如下圖所示:

如下圖所示,在“output”目錄下,編譯生成了“uImage”kernel 映象。

如下圖所示,在“output/dts/”目錄下生成裝置樹檔案“****.dtb”。

如上圖所示,這七個裝置樹檔案是我們所需要的,分別對應七個不同的螢幕。編譯完成以後,我們需要製作對應的映象,這樣才能使用 STM32CubeProgrammer 工具燒寫進開發板。
而我們通過燒寫軟體燒寫的映象為 bootfs.ext4,存放路徑為“output”目錄下,如下圖所示

bootfs.ext4 映象之中存放的就是我們 uImage 和 dtb 裝置樹檔案,大家可以自行掛載來進行檢視。
至此我們的核心裝置樹鏡就製作完成了,然後只需要將我們製作的 bootfs.ext4 替代 image 燒寫目錄下的 bootfs.ext4 檔案然後進行燒寫即可。
2 驅動模組的使用
由於一些驅動的依賴特性,一些驅動並不能直接編譯進核心,或者編譯進核心之後並不能掛載成功。所以就需要我們進行手動掛載,以下為不能是在核心中不能成功掛載的模組:

我們都存放在了“output/ko”路徑下,每個模組的原始路徑如下圖所示:

迅為iTOP-STM32MP157開發板:

核心板引數
尺寸:        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輸出