发布时间:2024-04-27 16:11:24
本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例,讲解如何使用STM32CubeMX结合Developer package实现最小系统启动。 a.Developer package下载,https://www.st.com/en/embedded-software/stm32mp1dev.html b.解压后进入source目录: a.源码准备(可以根据每一个source目录下的README.HOW_TO.txt中第三点准备): TFA源码 OP-TEE源码 U-Boot源码 Kernel源码 请阅读WIKI完成 Install_the_SDK。 请根据WIKI给出的命令/步骤安装 CubeProgrammer and libusb installation。 首先看一下Myirtech的原理图框架: 从原理框图中可以得出以下硬件配置信息: 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) 打开STM32CubeMX, 根据芯片的part number选择正确的芯片封装开始项目创建,例如:Myirtech使用的是STM32MP135DAF7, 点击“Generate Code”之后会生成一个近乎空的project,设备树结构: Note: STM32CubeMX的规则是先生成Kernel的dts, 然后将生成的dts文件拷贝到u-boot目录下,也就是说u-boot的设备树stm32mp135d-myir_bring_up-mx.dts是从kernel目录拷贝过来的,所以神奇
奇异U-Boot阶段修改设备树,添加User code时,请同步修改kernel的设备树或者将修改好的设备树拷贝到Kernel目录,防止下次使用CubeMX生成设备树的时候,u-boot部分的修改被kernel未修改的设备树覆盖。 创建设备树软链接: TFA: OP-TEE: U-Boot: 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目录下,烧录: 烧录成功后,串口输出如下: 断电,将拨码开关切换到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、工业控制、智能家居、工业网关、零售设备等行业。