米爾STM32MP25x開(kāi)發(fā)板Bring Up培訓(xùn)課程(三)
1.概述
本文引用地址:http://www.biyoush.com/article/202502/467459.htm本文將以 MYIR 的 MYC-LD25X 核心模塊及MYD-LD25X開(kāi)發(fā)平臺(tái)為例,講解如何使用 STM32CubeMX 來(lái)實(shí)現(xiàn)Developer package最小系統(tǒng)和外設(shè)資源的配置。
更多介紹請(qǐng)關(guān)注上一期介紹
或關(guān)注米爾電子公眾號(hào)
1.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
部署到開(kāi)發(fā)板燒寫(xiě)環(huán)境(部署前請(qǐng)確認(rèn)板子上電,串口線以及 USB 線正確連接):
將開(kāi)發(fā)板撥碼開(kāi)關(guān)全部設(shè)置為0,接上USB OTG和電源,上電,測(cè)試連接環(huán)境
串口線連接J15接口:
手動(dòng)連接虛擬機(jī)
配置STM32cubeprogrammer環(huán)境
測(cè)試燒寫(xiě)環(huán)境
myir@myir-vm:~/stm32mp25x-BringUp-bsp$ STM32_Programmer_CLI -c port=usb1
注意:如無(wú)法輸入此命令,客戶(hù)重新配置環(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)。
1.2.Optee-OS和Uboot啟動(dòng)
使用下列命令進(jìn)行FIP文件的燒寫(xiě)和啟動(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寫(xiě)到板子上,可以看到串口輸出的optee-os的啟動(dòng)log如下:
uboot的啟動(dòng)log如下
2.eMMC燒錄與啟動(dòng)
2.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
刷寫(xiě)log如下所示:
2.2.切換到emmc啟動(dòng)
斷電,將撥碼開(kāi)關(guān)切換到B0~B3(0 1 0 0)模式,重新上電即可emmc啟動(dòng),啟動(dòng)log如下
可在uboot終端下進(jìn)行操作,如獲取emmc信息命令mmc info
2.3.系統(tǒng)的整體燒錄和啟動(dòng)
由于時(shí)間原因,編譯整個(gè)內(nèi)核代碼和文件系統(tǒng)需要的時(shí)間很多,我們就先體驗(yàn)下整個(gè)系統(tǒng)的燒錄和啟動(dòng)過(guò)程,后續(xù)可以查閱米爾的軟件開(kāi)發(fā)資料來(lái)詳細(xì)了解Linux系統(tǒng)的啟動(dòng)過(guò)程。
在下載包里已經(jīng)存在培訓(xùn)資料包里的myir-image-full文件夾里,使用STM32CubeProgrammer加載FlashLayout_emmc_myb-stm32mp257x-2GB-optee.tsv文件,后續(xù)的操作步驟在前面章節(jié)已經(jīng)學(xué)會(huì)。
燒錄時(shí)間較長(zhǎng)(預(yù)計(jì)15分鐘),完成后切換啟動(dòng)撥碼開(kāi)關(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
評(píng)論