• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

STM32MP25x開發(fā)板Bring Up培訓(xùn)課程(下)

02/27 17:23
872
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

3.USB啟動(dòng)

USB啟動(dòng)用于燒錄鏡像到外部flash,例如NAND,SD卡等,從PC端燒錄鏡像到外部 Flash是由U-Boot結(jié)合STM32CubeProgrammer完成的,配置并編譯U-Boot是燒錄的前提,根據(jù)STM32MPU的啟動(dòng)順序:

TF-A->OP-TEE->U-BOOT->Linux Kernel

基本的啟動(dòng)流程如下圖所示:

上電冷啟動(dòng),加載ROM Code;

ROM Code:初始化基本時(shí)鐘,從選定的啟動(dòng)設(shè)備中加載FSBL,鑒權(quán)、啟動(dòng)FSBL;

FSBL:TF-A程序,完成整個(gè)時(shí)鐘樹初始化,初始化DDR,從選定的啟動(dòng)設(shè)備中加載SSBL,啟動(dòng)SSBL;

OP-TEE: 啟動(dòng)可信的安全環(huán)境;

SSBL:u-boot,存儲(chǔ)器、網(wǎng)絡(luò)、USB各種方式加載Linux Kernel,啟動(dòng)kernel;

Linux 內(nèi)核:內(nèi)核初始化、掛載根文件系統(tǒng),啟動(dòng)用戶空間的init程序;

Linux 用戶空間:應(yīng)用程序。

米爾基于STM32MP257核心板開發(fā)板

3.1.TF-A的啟動(dòng)

進(jìn)入到FIP_artifacts目錄下

myir@myir-vm:~/stm32mp25x-BringUp-bsp/FIP_artifacts$ tree arm-trusted-firmware/ -L 1
arm-trusted-firmware/
├── bl31
├── debug
├── fwconfig
├── metadata.bin
├── tf-a-stm32mp257d-bringup-mx-optee-emmc.stm32
└── tf-a-stm32mp257d-bringup-mx-usb.stm32

部署到開發(fā)板燒寫環(huán)境(部署前請確認(rèn)板子上電,串口線以及USB線正確連接):

將開發(fā)板撥碼開關(guān)全部設(shè)置為0,接上USB?OTG和電源,上電,測試連接環(huán)境

串口線連接J15接口:

手動(dòng)連接虛擬機(jī)

配置STM32cubeprogrammer環(huán)境

測試燒寫環(huán)境

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ STM32_Programmer_CLI -c port=usb1

注意:如無法輸入此命令,客戶重新配置環(huán)境變量

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ export PATH=$PATH:/home/myir/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin

使用下列命令進(jìn)行TF-a USB下載模式

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ cd FIP_artifacts
myir@myir-vm:~/stm32mp25x-BringUp-bsp/FIP_artifacts$ STM32_Programmer_CLI -c port=usb1 -d arm-trusted-firmware/tf-a-stm32mp257d-bringup-mx-usb.stm32 0x1 -s 0x1 -d fip/fip-stm32mp257d-bringup-mx-ddr-optee-emmc.bin 0x2 -s 0x2

成功啟動(dòng)。

3.2.Optee-OS和Uboot啟動(dòng)

使用下列命令進(jìn)行FIP文件的燒寫和啟動(dòng)

myir@myir-vm:~/stm32mp25x-BringUp-bsp$ cd FIP_artifacts
myir@myir-vm:~/stm32mp25x-BringUp-bsp/FIP_artifacts$ STM32_Programmer_CLI -c port=usb1 -d arm-trusted-firmware/tf-a-stm32mp257d-bringup-mx-usb.stm32 0x1 -s 0x1 -d fip/fip-stm32mp257d-bringup-mx-ddr-optee-emmc.bin 0x2 -s 0x2 -d fip/fip-stm32mp257d-bringup-mx-optee-emmc.bin 0x3 -s 0x3

注:執(zhí)行該命令時(shí)板卡重新上下電。

將生成的fip寫到板子上,可以看到串口輸出的optee-os的啟動(dòng)log如下:

uboot的啟動(dòng)log如下

4.eMMC燒錄與啟動(dòng)

4.1.TF-a和fip文件燒錄emmc

在FIP_artifacts文件夾下創(chuàng)建一個(gè)tsv后綴的文件,命名:FlashLayout_emmc_stm32mp25x-bringup-mx.tsv填入如下內(nèi)容。注意:這個(gè)TSV文件未定義內(nèi)核和內(nèi)核之后的內(nèi)容

#Opt Id Name Type IP Offset Binary
- 0x01 fsbl-boot Binary none 0x0 arm-trusted-firmware/tf-a-stm32mp257d-bringup-mx-usb.stm32
- 0x02 fip-ddr FIP none 0x0 fip/fip-stm32mp257d-bringup-mx-ddr-optee-emmc.bin
- 0x03 fip-boot FIP none 0x0 fip/fip-stm32mp257d-bringup-mx-optee-emmc.bin
P 0x04 fsbla1 Binary mmc0 boot1 arm-trusted-firmware/tf-a-stm32mp257d-bringup-mx-optee-emmc.stm32
P 0x05 fsbla2 Binary mmc0 boot2 arm-trusted-firmware/tf-a-stm32mp257d-bringup-mx-optee-emmc.stm32
P 0x06 metadata1 FWU_MDATA mmc0 0x00080000 arm-trusted-firmware/metadata.bin
P 0x07 metadata2 FWU_MDATA mmc0 0x00100000 arm-trusted-firmware/metadata.bin
P 0x08 fip-a FIP mmc0 0x00180000 fip/fip-stm32mp257d-bringup-mx-optee-emmc.bin
PED 0x09 fip-b FIP mmc0 0x00580000 none
PED 0x0A u-boot-env ENV mmc1 0x00980000 none
myir@myir-vm:~/stm32mp25x-BringUp-bsp$ cd FIP_artifacts
myir@myir-vm:~/stm32mp25x-BringUp-bsp/FIP_artifacts$ STM32_Programmer_CLI -c port=usb1 -d FlashLayout_emmc_stm32mp25x-bringup-mx.tsv

刷寫log如下所示:

4.2.切換到emmc啟動(dòng)

斷電,將撥碼開關(guān)切換到B0~B3(0 1 0 0)模式,重新上電即可emmc啟動(dòng),啟動(dòng)log如下

可在uboot終端下進(jìn)行操作,如獲取emmc信息命令mmc info

4.3.系統(tǒng)的整體燒錄和啟動(dòng)

由于時(shí)間原因,編譯整個(gè)內(nèi)核代碼和文件系統(tǒng)需要的時(shí)間很多,我們就先體驗(yàn)下整個(gè)系統(tǒng)的燒錄和啟動(dòng)過程,后續(xù)可以查閱米爾的軟件開發(fā)資料來詳細(xì)了解Linux系統(tǒng)的啟動(dòng)過程。

在下載包里已經(jīng)存在培訓(xùn)資料包里的myir-image-full文件夾里,使用STM32CubeProgrammer加載FlashLayout_emmc_myb-stm32mp257x-2GB-optee.tsv文件,后續(xù)的操作步驟在前面章節(jié)已經(jīng)學(xué)會(huì)。

燒錄時(shí)間較長(預(yù)計(jì)15分鐘),完成后切換啟動(dòng)撥碼開關(guān)到eMMC啟動(dòng)方式,即可上電進(jìn)入整個(gè)Linux系統(tǒng)。

myir@myir-vm:~/myir-image-full$?STM32_Programmer_CLI?-c?port=usb1?-w?./flashlayout_myir-image-full/optee/FlashLayout_emmc_myb-stm32mp257x-2GB-optee.tsv

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

米爾電子,是一家專注于嵌入式處理器模組設(shè)計(jì)、研發(fā)、生產(chǎn)和銷售于一體的國家級高新技術(shù)企業(yè),也被評為專精特新企業(yè)。米爾電子深耕嵌入式領(lǐng)域10多年,致力于為企業(yè)級客戶提供基于ARM、FPGA、RISC-V和AI等各種架構(gòu),穩(wěn)定可靠的處理器模組,滿足客戶大批量產(chǎn)品應(yīng)用部署的需求,同時(shí)為客戶提供產(chǎn)品定制設(shè)計(jì)、行業(yè)應(yīng)用解決方案和OEM的一站式服務(wù)。 米爾英文簡稱“MYIR”,是“Make Your Idea Real”第一個(gè)大寫字母的縮寫。我們的理念是“專業(yè)服務(wù)助力客戶成功”,目前米爾已通過專業(yè)高效的服務(wù),幫助全球數(shù)萬家企業(yè)的產(chǎn)品成功上市。