STM32MP25x开发板Bring Up培训课程(下)

2025-02-27

273

来源:米尔电子
米尔基于STM32MP257核心板及开发板
3.USB启动
USB启动用于烧录镜像到外部flash,例如NAND,SD卡等,从PC端烧录镜像到外部 Flash是由U-Boot结合STM32CubeProgrammer完成的,配置并编译U-Boot是烧录的前提,根据STM32MPU的启动顺序:
TF-A->OP-TEE->U-BOOT->Linux Kernel
基本的启动流程如下图所示:
上电冷启动,加载ROM Code; ROM Code:初始化基本时钟,从选定的启动设备中加载FSBL,鉴权、启动FSBL; FSBL:TF-A程序,完成整个时钟树初始化,初始化DDR,从选定的启动设备中加载SSBL,启动SSBL; OP-TEE: 启动可信的安全环境; SSBL:u-boot,存储器、网络、USB各种方式加载Linux Kernel,启动kernel; Linux 内核:内核初始化、挂载根文件系统,启动用户空间的init程序; Linux 用户空间:应用程序。
3.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
3.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如下
4.eMMC烧录与启动
4.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如下所示:

4.2.切换到emmc启动
断电,将拨码开关切换到B0~B3(0 1 0 0)模式,重新上电即可emmc启动,启动log如下

可在uboot终端下进行操作,如获取emmc信息命令mmc info
4.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
2025-02-27
STM32MP25x开发板Bring Up培训课程(下)
STM32MP25x开发板Bring Up培训课程(上)STM32MP25x开发板Bring Up培训课程(中)米尔基于STM32MP257核心板及开发板3.USB启动USB启动用于烧录镜像到外部flash,例如NAND,SD卡等,从PC端烧录镜像到外部 Flash是由U-Boot结合STM32CubeProgrammer完成的,配置并编译U-Boot是烧录的前提,根据STM32MPU的启动顺序:
2025-02-20
STM32MP25x开发板Bring Up培训课程(中)
STM32MP25x开发板Bring Up培训课程(上)米尔基于STM32MP257核心板及开发板2.修改设备树查看生成的Bring up工程空文件的设备树,CA35的设备树文件夹,其他的是M33核的工程资料。我们可以看到生成的设备树文件如下:myir@myir-vm:/mnt/hgfs/ShareWorkspace/stm32mp25x-bringup/Bringup/CA35/DeviceTr
2025-02-13
STM32MP25x开发板Bring Up培训课程(上)
1.概述本文将以MYIR的MYC-LD25X核心模块及MYD-LD25X开发平台为例,讲解如何使用 STM32CubeMX 来实现Developer package最小系统和外设资源的配置。米尔基于STM32MP257核心板及开发板1.1.创建系统工程1.1.1.创建默认工程打开STM32CubeMX,可以看到主界面,我们需要从选择芯片开始点击“ACCESS TO MCU SELECTOR”。进入
2023-02-17
嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板
本篇测评由电子发烧友的优秀测评者“ALSET”提供。电子发烧友网发布了一款试用产品:米尔 MYD-Y6ULX-V2 开发板,基于 NXP i.MX6UL/i.MX6UL L处理器,该开发板被米尔称之为经典王牌产品。本次测试目标是在此开发板上进行神经网络框架ncnn的移植与测试开发,测试ncnn在此开发板上的性能与应用测试。01.什么是ncnnncnn 是腾讯优图推出的在手机端极致优化的高性能神经网
2022-11-24
FPGA+MPU+MCU三芯合一!米尔全自动血细胞分析仪解决方案
全自动血细胞分析仪是医院临床检验应用非常广泛的仪器之一,用来检测红细胞、血红蛋白、白细胞、血小板等项目。是基于电子技术和自动化技术的全自动智能设备,功能齐全,操作简单,依托相关计算机系统在数据处理和数据分析等方面具有出色表现,可同时进行多个参数的可靠分析,通过联网互通和交互式触摸屏可以实现线上信息共享等功能,被广泛应用在医院临床检验中
2022-10-18
基于Zynq-7000高速数据采集解决方案—米尔MYD-C7Z010/20-V2开发板
近年来,科技日新月异,随着机器视觉、人工智能的迅速发展,相关行业对数据采集系统的性能要求更加苛刻,要求能够同时采样的通道更多,采样的精度和速度要求更高。在雷达,航天,视频传输,工业控制等领域,采样率、分辨率、传输速率成为评价超高速数据采集系统的最重要技术指标,所以芯片的选择就变得尤为重要,既需要具备高精度、高采样速率等模块,又需要可以嵌入操作便捷、用户体验更友好的操作系统,实现良好的人机交互功能。
2022-08-26
开发环境篇:Linux C按键控制LED--米尔MYD-YT507H开发板
本篇测评由电子工程世界的优秀测评者“qinyunti”提供。此次板卡的测试,是Linux C开发环境下按键控制LED的操作实录。前言对于核心板或者开发板的选型我们一样会考虑二次开发的便捷性,开发环境,手册等的易用性和完整性。下面我们就从开发者的角度体验,从Linux C开发,Qt开发,python开发等常见开发入手进行体验。现在开始第一部分Linux C开发环境的简单体验。准备串口登录丝印Debu
2022-08-22
第一视角体验国产处理器全志T507-H开发板
现在车规级芯片市场潜力巨大,需求旺盛,芯片都在逐渐走向国产化。本期要介绍的主角是米尔基于全志T507-H的MYD-YT507H开发板,是米尔结合国产工业级平台CPU:全志T507-H芯片研制的CPU模组,集成了四核Cortex-A53的CPU和G31MP2的GPU,具有强大的图像处理功能,并拥有多路视频输入和输出的接口。
2022-08-05
米尔的国产T507-H开发板怎么玩?macOS如何将Ubuntu系统烧录到eMMC的完全调教指南!
本篇测评由电子发烧友的优秀测评者“HonestQiao”提供。此次板卡的测试,是用macOS将Ubuntu系统烧录到eMMC的操作实录。米尔MYD-YT507H开发板,官方提供了HMI系统和Ubuntu18.04镜像,体验过默认的HMI系统后,我就换上了我喜欢的Ubuntu系统了。一、系统烧录参考官方的文档,使用全志的图形界面烧录工具,在Windows下烧录简单又方便:因为我使用的是macOS系统
2022-07-15
如何实现异构处理器间相互通讯——米尔带您玩转i.MX 8M Plus开发板
本篇测评由电子工程世界的优秀测评者“bloong”提供。此次测试的项目,是异构处理器间相互通讯项目。MYD-JX8MPQ配备了一颗异构的Cortex-M7协处理器,可以同时运行Linux和RTOS。本文主要介绍协处理器M7使用方法。M7在运行时可能会涉及到和A53核共用资源,这里列举出会冲突资源如下:ECSPI0/ECSPI2,FLEXCAN,GPIO1/GPIO5,GPT1,I2C3,I2S3,