当前位置: 首页 > news >正文

MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

以前微处理器(MPU)与微控制器(MCU)是截然不同的两种设备,MPU支持丰富的软件系统,如Linux和相关的软件堆栈,而MCU通常将专注于裸机和RTOS。近年来,随着MCU的性能越来越高,MCU和MPU之间的区别变得越来越模糊。

STM32MP135是一款入门级的高性价比MPU,适用于MCU性能达不到要求或者需要跑Linux的场景。米尔的STM32MP135开发板提供基于STM32Cube的Bare metal裸机开发的软件,能够进一步加强实时性能支持以满足用户实现硬实时应用的需求。这一点尤其对习惯于使用MCU开发的用户来说非常友好,可以让开发者在使用MPU强大性能的同时获得类似MCU的开发体验。米尔提供了支持裸机开发环境,接下来就让我们介绍如何在米尔的STM32MP135开发板上进行裸机开发。

1.环境搭建

1.1.获取源码

下载米尔提供的04_Sources/STM32CubeMP13-1.0.0源码包,并使用 STM32CubeIDE导入STM32Cube_FW_MP13_V1.0.0ProjectsSTM32MP135C-DKExamplesDDRDDR_Init文件,点击File->Import->Existing Projects into Workspace。

1.2.编译源码

成功导入工程后进行编译,点击🔨进行编译,当下方出现0 errors, 0 warnings表示编译成功。

1.3.开发板接线

当工程源码编译完后,开发板需要连接ST-Link进行调试,并且将拨码开关拨到工程模式1-4:1000,用到的接口是J7,由于出厂时没有将引脚焊接,需要用户自行焊接,接线方式如下图:

1.4.调试工程

  • 在2.3中编译完后,接下来进行调试的操作,点击调试,如图:

  • 进入到界面之后点击全速运行,看到开发板的蓝灯在闪烁说明ddr初始化成功:

2.应用加载

2.1.应用环境配置

在初始化完ddr后,接下来就是让应用程序跑在ddr上,这里我们选用MYD-YF13X-20230601STM32CubeMP13-1.0.0ProjectsSTM32MP135C-DKTemplatesBSP_BasicTemplates路径下的工程应用:

  • 根据1.1中的方法导入工程,看到工程成功导入之后,右键点击工程文件名,然后点击properties:

  • 在执行以上操作后弹出Enter Value后添加USE_DDR字符并保存:

  • 继续右键点击工程文件名,然后点击properties:

  • 按照以上步骤打开STM32CubeMP13-1.0.0ProjectsSTM32MP135C-DKTemplatesBSP_BasicTemplatesSTM32CubeIDEMP13_BSP_BasicTemplates路径下的stm32mp13xx_a7_sysram.ld文件:

  • 将REGION_ALIAS("RAM", DDR_BASE);部分的注释删除,再把REGION_ALIAS("RAM", SYSRAM_BASE)给注释掉,保存并选中:

2.2.调试应用

将以上环境配置完成之后,在应用调试阶段也需要进行一个配置,打开工程的调试设置界面,点击startup,将monitor reset删除,保存并调试:

将开发板接上串口,全速运行,串口会打印Hello World - USE_STM32MP135 BOARD,至此应用调试成功。

3.创建应用

3.1.适配硬件

以米尔MYD-YF13x开发板上的心跳灯为例,首先要确定心跳灯用到的GPIO口。查看硬件原理图可以看到心跳灯连接的是SPI5_MOSI:

通过查看米尔的Pin List可知道SPI5_MOSI对应的引脚是PH12,那么接下来就开始创建工程来配置心跳灯的闪烁。

3.2.工程创建

米尔创建的工程位于STM32CubeMP13-1.0.0ProjectsSTM32MP135C-DKExamplesGPIOGPIO_EXTI路径下,根据1.1中的方法导入工程,如下:

开始对心跳灯进行配置,修改stm32mp13xx_disco.h里的心跳灯引脚配置:

修改完后回到main.c文件里在while函数中添加心跳灯的代码:

编译并调试后,让程序全速运行,可以看到开发板上的蓝灯闪烁:

至此创建的工程调试成功。


产品介绍

米尔STM32MP135开发板,基于STM32MP13系列处理器,单核Cortex-A7 设计,运行频率高达1GHz,专为入门级Linux、裸机或RTOS系统设计。开发板采用12V/2A直流供电,搭载了2路千兆以太网接口、1路USB2.0协议MINI PCIE插座的4G模块接口、1路RGB显示接口、1路音频输入输出接口、2路USB HOST Type A、1路 USB OTG Type-C接口、1路Micro SD接口等。开发板接口丰富,适用于能源电力、工业控制、工业网关、工业HMI等场景。

相关文章:

  • HANA中的内存及磁盘使用统计
  • 美国CPC认证如何办理?CPC审核不通过有哪些原因呢?
  • ArcGIS Pro横向水平图例
  • Android开发 OCR:通过Tesseract实现图片文字识别
  • 题目:新一的宝藏搜寻加强版(蓝桥OJ 4059)
  • 学习笔记——C语言基本概念指针(下)——(8)
  • 【Linux】文件查看命令(六)
  • AMD GPUs - Radeon™ PRO W7900与NVIDIA 4000系列GPU性能
  • 工作日志- 不定期更新
  • git 更改仓库地址
  • Java常见限流用法介绍和实现
  • Mysql的高级语句3
  • 蓝桥杯算法题-发现环
  • 【笔记】OpenHarmony设备开发:搭建开发环境(Ubuntu 20.04,VirtualBox 7.0.14)
  • 实时数据库测试-汇编小程序
  • 自己简单写的 事件订阅机制
  • 【5+】跨webview多页面 触发事件(二)
  • ES6语法详解(一)
  • Golang-长连接-状态推送
  • MobX
  • PHP的类修饰符与访问修饰符
  • React 快速上手 - 07 前端路由 react-router
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • text-decoration与color属性
  • v-if和v-for连用出现的问题
  • vue2.0项目引入element-ui
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • yii2权限控制rbac之rule详细讲解
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从零开始学习部署
  • 分享一份非常强势的Android面试题
  • 工作手记之html2canvas使用概述
  • 精彩代码 vue.js
  • 坑!为什么View.startAnimation不起作用?
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 通信类
  • ​configparser --- 配置文件解析器​
  • ​Java并发新构件之Exchanger
  • #etcd#安装时出错
  • #pragma once
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (12)目标检测_SSD基于pytorch搭建代码
  • (function(){})()的分步解析
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)Linux下编译安装log4cxx
  • (转)Scala的“=”符号简介
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器