ST官方基于米尔STM32MP135开发板培训课程(一)

本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例,讲解如何使用STM32CubeMX结合Developer package实现最小系统启动。

1.jpg

1.开发准备

1.1 Developer package准备

a.Developer package下载,https://www.st.com/en/embedded-software/stm32mp1dev.html

b.解压后进入source目录:

2.png

a.源码准备(可以根据每一个source目录下的README.HOW_TO.txt中第三点准备):

  • TFA源码

 

1690513919864.jpg

  • OP-TEE源码

1690513947963.jpg

  • U-Boot源码

11111111.jpg

  • Kernel源码

1690514005278.jpg

1.2 SDK安装

       请阅读WIKI完成 Install_the_SDK

1.3 STM32CubeProgrammer安装

       请根据WIKI给出的命令/步骤安装 CubeProgrammer and libusb installation

1.原理框图

首先看一下Myirtech的原理图框架:

3.png

从原理框图中可以得出以下硬件配置信息:

1.STM32MP135DAF7

2.DDR3L

3.分离式电源设计

4.支持QSPI NAND,SD卡启动

5.双千兆以太网口

6.USB Host

7.USB OTG (烧录用)

8.UART4 debug串口

9.外部时钟源,HSE(24MHz),LSE(32.768KHz)

3. STM32CubeMX项目创建

打开STM32CubeMX, 根据芯片的part number选择正确的芯片封装开始项目创建,例如:Myirtech使用的是STM32MP135DAF7,

4.png

5.png

6.png

点击“Generate Code”之后会生成一个近乎空的project,设备树结构:

7.png

Note: STM32CubeMX的规则是先生成Kerneldts, 然后将生成的dts文件拷贝到u-boot目录下,也就是说u-boot的设备树stm32mp135d-myir_bring_up-mx.dts是从kernel目录拷贝过来的,所以在U-Boot阶段修改设备树,添加User code时,请同步修改kernel的设备树或者将修改好的设备树拷贝到Kernel目录,防止下次使用CubeMX生成设备树的时候,u-boot部分的修改被kernel未修改的设备树覆盖。

创建设备树软链接:

TFA:

1.jpg

OP-TEE:

2.jpg

U-Boot:

3.jpg

4. SD卡启动

SD卡部分的设计一半有两种情况,第一种是像STM32MP157C-EV1的设计,SD卡槽接口与MP1之间通过level shifter连接,这种设计的目的是可以是SD卡运行在高速模式下:

8.png

基于此种硬件设计,相应的STM32CubeMX部分的设计以及user code部分应参考STM32MP157C-EV1的设备树:

9.png

1690514311425.jpg

10.png

第二种设计是MP1直接连接SD卡卡槽,如STM32MP135F-DK板的设计,Myir板子也是同样的设计:

11.png

12.png

13.png

相应的STM32CubeMX设计与user code配置如下:

14.png

15.png

16.png

添加TF-A部分user code:

1.jpg

1690514422844.jpg

编译TFA SD

1690514452447.jpg

添加U-Boot部分user code:

1.jpg

编译OP-TEE, U-Boot更新FIP.

修改TSV文件,如下:

2.jpg

将修改好的TSV文件copy到myir_fip目录下,烧录:

1.jpg

烧录成功后,串口输出如下:

2.jpg

1690514610844.jpg

断电,将拨码开关切换到SD卡启动:

INFO:    Reset reason (0x35):

INFO:      Power-on Reset (rst_por)

INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe0000

INFO:    Using SDMMC

INFO:      Instance 1

INFO:    Boot used partition fsbl1

INFO:    RAM: DDR3-DDR3L 16bits 533000kHz

INFO:    Memory size = 0x10000000 (256 MB)

INFO:    BL2: Loading image id 1

NOTICE:  BL2: Booting BL32

INFO:    Entry point address = 0xce200000

INFO:    SPSR = 0x1d3

I/TC: Early console on UART#4

I/TC:

I/TC: Non-secure external DT found

I/TC: Embedded DTB found

optee optee: OP-TEE: revision 3.16

stm32-usbphyc usbphyc@5a006000: Can't get phy-supply regulator

clk_register: failed to get ck_usbo_48m device (parent of usbo_k)

U-Boot 2021.10-stm32mp-r2 (Jul 07 2023 - 01:00:26 +0800)

CPU: STM32MP135D Rev.Y

Model: STMicroelectronics custom STM32CubeMX board - openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23

Board: stm32mp1 in trusted mode (st,stm32mp135d-myir_bring_up-mx)

DRAM:  256 MiB

optee optee: OP-TEE: revision 3.16

Clocks:

- MPU : 650 MHz

- AXI : 266.500 MHz

- PER : 64 MHz

- DDR : 533 MHz

WDT:   Not found!

NAND:  0 MiB

MMC:   STM32 SD/MMC: 0

Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial

Out:   serial

Err:   serial

invalid MAC address 0 in OTP 00:00:00:00:00:00

Net:   No ethernet found.

Hit any key to stop autoboot:  0

Boot over mmc0!

Saving Environment to MMC... Writing to redundant MMC(0)... OK

switch to partitions #0, OK

mmc0 is current device

STM32MP>

<未完待续>

米尔MYC-YF13X核心板及开发板,基于STM32MP135高性价比入门级MPU设计平台,基于STM32MP135新一代通用工业级MPU,单核Cortex-A7@1.0GHz,具有极高的性价比;支持2个千兆以太网接口、 2个CAN FD接口、 2个 USB2.0接口、8个UART接口;标准配置支持256M Nand Flash/256M DDR和4GB eMMC/512M DDR两种;核心板采用邮票孔方式连接,尺寸为37mmx39mm,148 PIN。适用于电源管理、工业HMI、工业控制、智能家居、工业网关、零售设备等行业。

17.png

最新文章