一、開發(fā)環(huán)境搭建
????????官方推薦使用VMWare15+Ubuntu18.04,之前自己做一些開發(fā)使用的VMWare+Ubuntu20.04,懶得重新安裝,后續(xù)踩坑再填。
? ? ? ? 在Windows下需要安裝STM32CubeMX、STM32CubeIDE(這兩個用來配置和編寫MCU代碼)和STM32Programmer(燒錄工具)。這三個軟件需要java環(huán)境,所以還需要安裝java。在此不做敘述。
二、U-Boot啟動原理
????????U-Boot類似于電腦的BIOS,入口是上電自動啟動,唯一出口是加載系統(tǒng)鏡像,在U-Boot內(nèi)還可以進行一些內(nèi)核的啟動配置,如啟動介質(zhì)參數(shù),網(wǎng)絡(luò)配置參數(shù)等。
? ? ? ? 通常在內(nèi)核中會固化一塊片內(nèi)ROM和一個SYSRAM,啟動時,片內(nèi)ROM的BL1(BootLoader1,第一階段啟動文件)部分先加載到核內(nèi)RAM中(也有設(shè)計將此部分燒寫在U-Boot的頭部位置),然后判斷自己在主存中還是啟動設(shè)備(靜態(tài)內(nèi)存)Booting Device中,如果是后者,就將整個U-Boot搬運到SDRAM中,之后跳轉(zhuǎn)到BL2中,加載驅(qū)動、命令行等。最后,將整個OS加載到SDRAM中,再跳轉(zhuǎn)到OS部分執(zhí)行。
? ? ? ? ?在STM32MP157中,除了linux開發(fā)常見的三大板塊:U-Boot、Kernel & DTB、Rootfs以外,還有一個涉及到系統(tǒng)安全的TF-A部分,正點原子教程中對此部分僅涉及到了移植教程,對內(nèi)部的實現(xiàn)方式無額外解讀。此部分先略過。
三、涉及STM32MP157啟動的一些概念
【1】FSBL:
????????全稱為 First stage boot loader,也就是第一階段啟動文件。一般是 TF-A 鏡像,可以換成自己編寫的程序,SYSRAM的地址空間;0X2FFC0000~0X2FFFFFFF,F(xiàn)SBL起始地址:0X2FFC2400,但是前端會帶有256KB的頭部信息,所以替換成自己的程序時,起始地址為:0X2FFC2500,整個FSBL大小不能超過247KB。
【2】SSBL:第二階段啟動文件,一般是U-Boot,有的系統(tǒng)還會需要設(shè)備樹(.dtb)文件,此部分在片外的DDR中運行,所以不需要擔(dān)心空間問題。
【3】默認(rèn)外部晶振:
????????24MHz,在自己設(shè)計板子時用到,盡量不要更改。(ROM代碼自動檢測,可以為8,10,12,14,16,20,24,25,26,28,32,36,40,48,默認(rèn)為24)
【4】串口啟動:
????????使用UART燒寫系統(tǒng),只能使用串口2,3,4,5,6,7,8這幾個串口,自己畫板子的時候最好按照這樣設(shè)計,并使用推薦引腳。
【5】Flash設(shè)備啟動要求:
????????EMMC:
????????boot1、 boot2、 RPMB 這三個分區(qū)代銷是固定的,用戶不能修改, boot1、 boot2 分區(qū)存在的意義就是用于引導(dǎo)系統(tǒng)。
????????ST 會使用 EMMC 的 boot1 和 boot2 這兩個分區(qū)作為 FSBL,但是同一時間只有一個有效,
ROM 代碼會加載有效的哪個 FSBL。ROM 代碼使用單 bit 模式來操作 EMMC, 默認(rèn)情況下 ROM
代碼使用連接到 SDMMC2 上的 EMMC
????????SD卡:
????????SD 卡也包含兩個 FSBL,但是 SD 卡沒有 boot1 和 boot2 這樣的物理分區(qū)。 ROM 代碼默認(rèn)
嘗試加載第一個 FSBL,如果第一個 FSBL 加載失敗,那么 ROM 代碼就會加載第二個 FSBL。第一個 FSBL 的起始地址為0X4400,第二個 FSBL 的起始地址為 0X44400
【6】TF-A頭部信息:
????????TF-A 編譯生成二進制 bin 文件,需要在前面添加一段頭部信息,這段頭部信息也包含了鑒權(quán)內(nèi)容。這段信息在編譯 ST 官方提供的 TF-A 或者 Uboot 的時候會自動添加,編寫 A7 裸機的時候需要自己使用 stm32image 工具在 bin 文件前面添加頭部信息。STM32image工具為linux下運行,在使用前需要編譯,然后對指定文件添加。
【7】整體的系統(tǒng)啟動流程:文章來源:http://www.zghlxwxcb.cn/news/detail-469490.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-469490.html
到了這里,關(guān)于正點原子STM32MP157學(xué)習(xí)——1.開發(fā)環(huán)境及基本知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!