今天为大家做一下米尔-STM32MP135开发板的环境搭建方法,首先先对开发板和核心板做个介绍:
米尔-STM32MP135开发板是一套非常优秀的开发板,板卡的STM32MP135处理器是一款基于单核 Cortex-A7 设计的高性价比,高可靠性工业级处理器;配备LCD-TFT并行显示接口、16位并行摄像头接口;处理器还支持2路千兆以太网接口、2个CAN FD接口、2个USB2.0接口、8个UART功能接口。
米尔-STM32MP135开发板的核心板简介
米尔电子,专注嵌入式处理器模块设计和研发的高新技术企业,是领先的嵌入式处理器模组厂商。米尔电子在嵌入式处理器领域具有10多年的研发经验,为客户提供基于ARM架构、FPGA架构的CPU模组及充电控制系统等产品和服务;为智能医疗、智能交通、智能安防、物联网、边缘计算、工业网关、人工智能等行业客户,提供定制解决方案和OEM服务。公司通过专业高效的服务帮助客户加速产品上市进程,目前已为行业内10000家以上的企业客户服务。
STM32MP135核心板采用高密度高速电路板设计,在大小为37mm*39mm板卡上集成了STM32MP135、DDR3L、 Nand Flash/eMMC、E2PROM、分立电源等电路。STM32MP135核心板以SMD贴片的形式焊接在底板,管脚为邮票孔封装,通过邮票孔引出信号和电源地共计148PIN。板卡采用10层高密度PCB设计,沉金工艺生产,独立的接地信号层,无铅。
智能工控平台STM32MP135的接口丰富
STM32MP135系列是ST最新发布在工业通用领域的一款高性价比、入门级MPU。此外支持摄像头接口、显示器接口(LCD-TFT)、USB2.0 接口、CAN FD接口、 双千兆以太网接口,因此特别适用于入门级工业人机界面(HMI)和能源电力管理的嵌入式设备等应用。
米尔-STM32MP135开发板的开发环境搭建:
1、开发环境
• Linux开发主机:Debian, Ubuntu, RHEL等。
• ST配套工具:STM32CubeProg、STM32CubeMX
• 安装米尔定制的 SDK
2、构建开发板镜像第1步:获取源码可以从米尔提供链接获取源码。http://down.myir-tech.com/MYD-YF13X/
也可以从github在线获取源码。
PCmkdirHOME/githubPCcdHOME/githubPCrepo init -u https://github.com/MYiR-Dev/myir-st-manifest.git --no-clone-bundle --depth=1 -m myir-stm32mp1-kirkstone.xml -b develop-yf13xPCrepo sync
第2步:快速编译镜像
这里我们需要使用米尔提供的 envsetup.sh 脚本进行环境变量的设置
PC$: DISTRO=openstlinux-weston MACHINE=myd-yf13x-emmc source layers/meta-myir-st/scripts/envsetup.sh
然后,构建 myir-image-full 镜像。注意,选择构建不同的系统镜像,需使用不同的 bitbake 命令参数(具体命令参数可以参看提供的文档)。
第3步:构建 SDK米尔已经提供较完整的 SDK 安装包,用户可直接使用。
3、烧录系统镜像这里使用ST官方的STM32CubeProg 工具进行烧写,可以在Windows平台,也可以在Linux平台。提示:烧录的时间可能有点久,需要耐心等待一会儿。
当然,如果觉得慢,也可以用SD卡启动(烧写)。
4、修改板级支持包这一节应该是相对比较重要的,也是相对比较难的,包括U-boot、 kernel等相关内容的编译与更新。
a.板载 TF-A 编译与更新获取 TF-A 源代码:
PCcd /home/workPCtar -jxvf MYiR-STM32-tf-a.tar.bz2PC$ cd MYiR-STM32-tf-a
配置和编译源代码:加载 SDK 环境变量到当前 shell:
PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
进入源代码目录:
PC$ cd myir-st-arm-trusted-firmware
配置与编译源代码:
PCmake -fPWD/../Makefile.sdk all
以上是在独立的交叉编译环境下编译 TF-A,也可以在 Yocto 项目下编译 TF-A。
更新 TF-A:编译好之后,将 TF-A 镜像烧录进 Micro SD 卡,然后使用 dd 命令将镜像烧录到 SD 卡指定分区:
PC: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p1 conv=fdatasyncPC: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p2 conv=fdatasync
b.板载 u-boot 编译与更新在独立的交叉编译环境下编译 u-boot,和上面编译 TF-A 类似,也是和常规的编译 u-boot 方法类似。
c.板载 Kernel 编译与更新加载 SDK 环境变量:
PC$ source /opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
配置内核:
PCmake ARCH=arm O="PWD/../build" myir_stm32mp135x_defconfig
编译内核:
PCmake ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040 O="PWD/../build"PCmake ARCH=arm modules O="PWD/../build"
这个配置可能相对比较复杂,编译时间也相对较长,具体可以参看官方手册。
5、适配硬件平台这一节就是芯片底层相关的适配(驱动),包括创建设备树、利用STM32CubeMX 配置GPIO、外设时钟等,以及配置自己用到的管脚。
然后,就是添加自己的一些应用了。到此,基本达到入门这一步了。
最后
如果你想从STM32单片机裸机、RTOS进阶到Linux,这款STM32MP135【MYC-YF13X开发板】是一个不错的选择。同时,也会用到一些熟悉的生态工具。