本文將以Myirtech的MYD-YF13X以及STM32MP135F-DK為例,講解如何使用STM32CubeMX結(jié)合Developer package實現(xiàn)最小系統(tǒng)啟動。
1.開發(fā)準備
1.1 Developer package準備
a.Developer package下載,https://www.st.com/en/embedded-software/stm32mp1dev.html
b.解壓后進入source目錄:
c.源碼準備(可以根據(jù)每一個source目錄下的README.HOW_TO.txt中第三點準備):
- TFA源碼
- OP-TEE源碼
- U-Boot源碼
- Kernel源碼
1.2 SDK安裝
請閱讀WIKI完成 Install_the_SDK。
1.3 STM32CubeProgrammer安裝
請根據(jù)WIKI給出的命令/步驟安裝 CubeProgrammer and libusb installation。
2.原理框圖
首先看一下Myirtech的原理圖框架:
從原理框圖中可以得出以下硬件配置信息:
1.STM32MP135DAF7
2.DDR3L
3.分離式電源設計
5.雙千兆以太網(wǎng)口
6.USB Host
7.USB OTG (燒錄用)
8.UART4 debug串口
9.外部時鐘源,HSE(24MHz),LSE(32.768KHz)
3. STM32CubeMX項目創(chuàng)建
打開STM32CubeMX, 根據(jù)芯片的part number選擇正確的芯片封裝開始項目創(chuàng)建,例如:Myirtech使用的是STM32MP135DAF7,
點擊“Generate Code”之后會生成一個近乎空的project,設備樹結(jié)構(gòu):
Note: STM32CubeMX的規(guī)則是先生成Kernel的dts, 然后將生成的dts文件拷貝到u-boot目錄下,也就是說u-boot的設備樹stm32mp135d-myir_bring_up-mx.dts是從kernel目錄拷貝過來的,所以在U-Boot階段修改設備樹,添加User code時,請同步修改kernel的設備樹或者將修改好的設備樹拷貝到Kernel目錄,防止下次使用CubeMX生成設備樹的時候,u-boot部分的修改被kernel未修改的設備樹覆蓋。
創(chuàng)建設備樹軟鏈接:
TFA:
OP-TEE:
U-Boot:
4. SD卡啟動
SD卡部分的設計一半有兩種情況,第一種是像STM32MP157C-EV1的設計,SD卡槽接口與MP1之間通過level shifter連接,這種設計的目的是可以是SD卡運行在高速模式下:
基于此種硬件設計,相應的STM32CubeMX部分的設計以及user code部分應參考STM32MP157C-EV1的設備樹:
第二種設計是MP1直接連接SD卡卡槽,如STM32MP135F-DK板的設計,Myir板子也是同樣的設計:
相應的STM32CubeMX設計與user code配置如下:
添加TF-A部分user code:
編譯TFA SD,
添加U-Boot部分user code:
編譯OP-TEE, U-Boot更新FIP.
修改TSV文件,如下:
將修改好的TSV文件copy到myir_fip目錄下,燒錄:
燒錄成功后,串口輸出如下:
斷電,將撥碼開關(guān)切換到SD卡啟動:
<未完待續(xù)>
米爾MYC-YF13X核心板及開發(fā)板,基于STM32MP135高性價比入門級MPU設計平臺,基于STM32MP135新一代通用工業(yè)級MPU,單核Cortex-A7@1.0GHz,具有極高的性價比;支持2個千兆以太網(wǎng)接口、 2個CAN FD接口、 2個 USB2.0接口、8個UART接口;標準配置支持256M Nand Flash/256M DDR和4GB eMMC/512M DDR兩種;核心板采用郵票孔方式連接,尺寸為37mmx39mm,148 PIN。適用于電源管理、工業(yè)HMI、工業(yè)控制、智能家居、工業(yè)網(wǎng)關(guān)、零售設備等行業(yè)。