迅為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
工作
系統支援: 流暢執行最小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路
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個
SPDIF介面: SPDIF輸入、SPDIF輸出