风雨同舟 · 2 天前

【Mini-F5375-OB开发板评测】移植FreeRTOS,实现多线程点灯和串口打印

1. 引言

  • 2025年1月,灵动微电子隆重发布了基于Armv8-M架构的旗舰级MM32F5370新品。它搭载安谋科技“星辰”处理器,内核动力强劲,具备强大的实时控制性能,可满足三电机控制、数字能源、人性机器人等领域的高可靠性应用开发需求。此外,该产品提供丰富的双向存储系统,可全面保障数据和代码的安全。本期评测的Mini-F5375-OB开发板正是基于MM32F5370新品打造。
  • 极术社区与灵动微电子再度合作启动基于灵动MM32F5370产品的Mini-F5375-OB开发板评测活动,有幸参加了试用。
  • 收到开发板后,进行了初步试用,移植了FreeRTOS到Mini-F5375-OB开发板,本文介绍了初步试用的过程。

    2. 开箱

    开箱照:
    image.png
    防静电包装,很专业:
    image.png
    正面照,布局中规中矩,标识清晰
    image.png
    背面照,清楚标识了使用的主控型号为MM32F5375G7PV
    image.png
    image.png

3. 环境搭建,更换了几个版本的MDK,成功安装开发包

3.1 下载开发资源

1. 灵动MM32F5370新产品及Mini-F5375-OB开发板详细介绍,含文档资料下载 - 极术社区
2. MDK542a IDE
3. 上海灵动微电子股份有限公司 官网 MM32F5370系列资料页
4. MM32F5370数据手册
5. MM32F5370用户手册
6.MM32F5370库函数与历程
7.Mini-F5375-OB开发板原理图
8. MM32系列 Keil 设备支持包Packs

3.2 MDK和Packs安装过程的问题和解决

  • 最初安装了MDK529版本,然后安装了MindMotion.MM32F5370_DFP.0.4.3.pack,但在Keil IDE的Device选择中看不到MM32F5370系列的器件。
  • 后来,重新安装了MDK524a版本,安装Pack后可看到和选择Device,可用选择MM32F5375G7PV。

4. 初次加电,体验出厂测试代码功能

  • 开箱后,第一次上电,体验出厂测试代码功能
  • 使用TypeC USB线连接USB-DBG口
  • image.png
  • 上电后,D1和D2灯同步闪烁。打开串口终端MobaXterm,选择对应串口,按下复位键,此时串口终端会打印出厂测试代码信息,如下图:
  • image.png
  • 按下c,后,循环打印ADC结果
  • image.png
  • 重新按复位键,依次输入d,e,f,查看结果
  • image.png

5. 移植FreeRTOS

5.1 初试FreeRTOS代码

  • 体验完官方出厂测试代码的功能后,就要开始自己的创造了。起初是想移植RT-Thread到MM32F5375,后来查看MM32F5370库函数与历程,发现里面有FreeRTOS例程,于是决定从这个例程入手,实现自己的点灯和串口打印。
  • LibSamples_MM32F5370_V0.10.3下,有一个FressRTOS_Blinky Demo.
  • image.png
  • 进入MDK-ARM目录下,打开工程
  • image.png
  • 首先确认更改一下主控芯片型号,选择开发板上的MM32F5375G7PV
  • image.png
  • 点击编译,会出现一个报错,如下图所示,提示找不到mindpwm.c
  • image.png
  • 注意到其他驱动代码都是hal_开头的文件,于是在驱动源码目录HAL_Lib/src目录下看到有hal_mindpwm.c文件。
  • image.png
  • 将这个文件添加工程目录HAL_LIB下
  • image.png
  • 然后移除mindpwm.c
  • image.png
  • 重新编译,通过了,0错误,0警告
  • image.png
  • 烧写代码前,先选择调试下载器
  • image.png
  • 选择Settings,可以看到识别出了芯片ID,说明配置正确
  • image.png
  • 选择Flash Download 页面,勾选Reset and Run,避免每次下载后按复位键
  • image.png
  • 然后,点击下载代码,烧写后,原来出厂代码就没有了,双灯也不亮了,串口也没有输出了,程序有问题。
  • 查看代码说明,发现这个代码是用于EVB-F5375开发板的,使用的主控是MM32F5375G8PV,不适用于目前的Mini-F5375-OB开发板。
  • image.png

    5.2 移植LED控制代码

  • 查看Mini-F5375-OB开发板上LED资源
  • image.png
  • 而原代码中LED的初始代码如下
  • image.png
  • 对照原理图,修改LED初始化代码
  • image.png
  • image.png
  • image.png
  • 更改后,重新编译下载,可以看到2LED分别以不同频率闪烁。FreeRTOS点灯成功。
  • WeChat_20250618204414.gif
  • 修改一下2个线程的LED闪烁参数,重新编译下载,LED以不同频率闪烁。
  • image.png

    5.2 移植串口代码

  • 代码中可以看到有打印输出的功能,但从串口终端看不到任何输出。
  • 同样,查看原理图中所使用的串口资源
  • image.png
  • image.png
  • image.png
  • 从图中可以看出Mini-F5375-OB开发板使用了USART3作为输出串口,查看代码设置情况
  • image.png
  • 可以看出代码中初始化的是USART1,所以没有输出。于是修改代码改为USART3.查阅用户手册,找到USART3使用的时钟源信息。修改初始化代码如下:
  • image.png
  • 修改打印输出底层函数
  • image.png
  • 修改对应打印输出信息,于使用的开发板对应
  • image.png
  • 编译下载,运行代码,结果如下,可以看到正确打印输出
  • image.png
  • 至此,FreeRTOS在Mini-F5375-OB开发板上可以正常运行了。下一步是增加串口输入接收功能和测试其他功能

    6 结束语

    本文介绍了Mini-F5375-OB开发板的开箱试用,FreeRTOS的移植,实现FreeRTOS在开发板上通过2个线程分别控制2个LED,并实现了打印信息输出。初步体验了开发板和代码库的使用。

    后续计划

  • 实现串口接收功能,实现通过控制台输入信息,控制程序运行。
  • 移植RT-Thread到开发板
  • 测试SPI功能,为读取磁编码器数据奠定基础
推荐阅读
关注数
0
文章数
2
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息