概述
本文將以 MYIR 的 MYC-LD25X 核心模塊及MYD-LD25X開發平臺為例,講解如何使用 STM32CubeMX 來實現Developer package最小系統和外設資源的配置。
1.1. TF-A的啟動(接上一期)
進入到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
部署到開發板燒寫環境(部署前請確認板子上電,串口線以及 USB 線正確連接):
將開發板撥碼開關全部設置為0,接上USB OTG和電源,上電,測試連接環境
串口線連接J15接口:
手動連接虛擬機
配置STM32cubeprogrammer環境
測試燒寫環境
myir@myir-vm:~/stm32mp25x-BringUp-bsp$ STM32_Programmer_CLI -c port=usb1
注意:如無法輸入此命令,客戶重新配置環境變量
myir@myir-vm:~/stm32mp25x-BringUp-bsp$ export PATH=$PATH:/home/myir/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin
使用下列命令進行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
成功啟動。
1.2. Optee-OS和Uboot啟動
使用下列命令進行FIP文件的燒寫和啟動
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
注:執行該命令時板卡重新上下電。
將生成的fip寫到板子上,可以看到串口輸出的optee-os的啟動log如下:
uboot的啟動log如下
2. eMMC燒錄與啟動
2.1. TF-a和fip文件燒錄emmc
在FIP_artifacts文件夾下創建一個tsv后綴的文件,命名:FlashLayout_emmc_stm32mp25x-bringup-mx.tsv填入如下內容。注意:這個TSV文件未定義內核和內核之后的內容
#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如下所示:
2.2. 切換到emmc啟動
斷電,將撥碼開關切換到B0~B3(0 1 0 0)模式,重新上電即可emmc啟動,啟動log如下
可在uboot終端下進行操作,如獲取emmc信息命令mmc info
2.3. 系統的整體燒錄和啟動
由于時間原因,編譯整個內核代碼和文件系統需要的時間很多,我們就先體驗下整個系統的燒錄和啟動過程,后續可以查閱米爾的軟件開發資料來詳細了解Linux系統的啟動過程。
在下載包里已經存在培訓資料包里的myir-image-full文件夾里,使用STM32CubeProgrammer加載FlashLayout_emmc_myb-stm32mp257x-2GB-optee.tsv文件,后續的操作步驟在前面章節已經學會。
燒錄時間較長(預計15分鐘),完成后切換啟動撥碼開關到eMMC啟動方式,即可上電進入整個Linux系統。
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
上一篇:米爾STM32MP25x開發板Bring Up培訓課程(二)
下一篇:瑞薩和Altium聯合推出“Renesas 365 Powered by Altium”
- 熱門資源推薦
- 熱門放大器推薦
設計資源 培訓 開發板 精華推薦
- STM32一文通(6) 外部中斷
- ESP32玩轉MicroPython(一) 燒入固件, 初識
- ESP32玩轉MicroPython(二) 連接WIFI網絡 webperl文件傳輸
- ESP32玩轉MicroPython(三) 延時、計時 和GPIO操作
- 玩轉 ESP32 + Arduino (一) 開發環境搭建
- 玩轉 ESP32 + Arduino (四) 電容按鍵 霍爾傳感器 外部中斷 延時 脈沖檢測
- 玩轉 ESP32 + Arduino (五) platformIO引入類庫 自開發庫 串口打印字符串
- 玩轉 ESP32 + Arduino (六) 硬件定時器, IIC, SPI
- 玩轉 ESP32 + Arduino (八) U8G2驅動OLED
- BD48xxx系列BD48L52電壓檢測IC的典型應用
- ADR440B 2.048 Vout 超低噪聲、LDO XFET 電壓基準的典型應用,具有電流吸收器和電流源
- 1W,一個用于手機的 LED 閃光燈 LED 驅動器
- LTC2184CUP、16 位、105Msps 低功耗雙通道 ADC 的典型應用電路
- LT1377IS8 2 鋰離子電池至 5V SEPIC 轉換器的典型應用
- LM217L 基本型可調穩壓器的典型應用
- 超聲波距離傳感器低噪聲運算放大器TC75S67TU的應用電路
- LT3755EUD 汽車降壓-升壓型 LED 驅動器的典型應用電路
- AH1308 應用提示 - Mantis TJA1057 5V 高速 CAN 收發器
- STEVAL-IME002V1,基于 HM301D 的多導聯心電圖 (ECG) 和身體阻抗演示板