0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MM32F5270(STAR-MC1内核)适配RT-Thread教程

Rice嵌入式开发技术分享 来源:Rice嵌入式开发技术分享 作者:Rice嵌入式开发技术 2022-08-23 14:33 次阅读

概述

  • 2022年4月,灵动微电子发布了搭载安谋科技“星辰”STAR-MC1处理器的全新高性能 MM32F5 微控制器系列。该系列在内核、总线和外设配置等多个方面进行了创新,内核上更是首次搭载了 Armv8-M 架构的 “星辰” STAR-MC1 处理器。很高兴通过ARM中国拿到该芯片的开发板(可以搞事情)
709bbd4a-22ad-11ed-910d-dac502259ad0.png
  • MM32F5270 是一款搭载了安谋科技 STAR-MC1 内核的 MCU 产品,其工作频率可达 120MHz,内置多达 256KB Flash 和 192KB RAM,配置浮点运算单元(Floating Point Unit, FPU)、数字信号处理单元(Digital Signal Processing,DSP)、信号间互联矩阵 MindSwitch、可配置逻辑单元 CLU、三角函数加速单元 CORDIC 等算法加速单元,并集成了丰富的外设模块和充足的 I/O 端口。MM32F5270 相较于现有产品全面提升了性能、存储容量、总线架构和外设配置。

  • 芯片资源:

类型 描述
内核 Arm China STAR-MC1 处理器,基于 Armv8-M Mainline 指令集架构,集成FPU 和 DSP
主频 可达120MHz
Cache 4KB L1 I-Cache,4KB L1 D-Cache
FLASH 256KB
RAM 192KB(包括 32KB ITCM、32KB DTCM 和 128KB System RAM)
USB OTG 1个,全速接口
以太网 10M/100M 以太网控制器
CAM 2 个 FlexCAN 接口
  • 拿到开发板,就想着移植个操作系统。嘻嘻嘻,那必须先上RT-THREAD,组件资源丰富,易于后续功能的各项开发。

RT-Thread完整版的移植说明

移植之前须知内容:

  1. 芯片是什么内核?
  • 答:MM32F5270是基于Armv8-M 架构的 “星辰” STAR-MC1 处理器。通过下图可以看出,我们可以参考CM33内核进行移植。
70dd7dc0-22ad-11ed-910d-dac502259ad0.png70ecfe44-22ad-11ed-910d-dac502259ad0.png
  1. 编译工具链?
  • 答:MM32F5270提供的demo是采用armclang(AC6),所以他跟ARMCC还不太一样。通过官方文档(https://www.keil.com/appnotes/files/apnt_298.pdf)可以看出AC6的汇编代码是可以兼容GUN的。所以这个对移植是非常友好的。
70fdbf36-22ad-11ed-910d-dac502259ad0.png

开始移植

  1. 复制模板 -- 通过查找,可以复制BSP-stm32l552-st-nucleo作为模板
  2. 修改rtconfig.py -- 修改CPU类型,修改编译选项

71128542-22ad-11ed-910d-dac502259ad0.png712c59b8-22ad-11ed-910d-dac502259ad0.png71391bd0-22ad-11ed-910d-dac502259ad0.png

  1. 修改libcpu--把m33的名字修改为star_mc1。
71536bac-22ad-11ed-910d-dac502259ad0.png
  1. 修改libcpu的汇编分割--复制libcpu的gcc汇编代码到keil的汇编代码中。从移植须知的第二点可知,AC6的汇编风格是和GUN一样的。所以直接拷贝。
716f62e4-22ad-11ed-910d-dac502259ad0.png
  1. 修改board.h--修正芯片资源宏定义。
717b24bc-22ad-11ed-910d-dac502259ad0.png
  1. 修改链接脚本--RT-Thread的动态内存堆是在ZI段结尾处到RAM尾部,而board.h中指向ZI段结尾处的变量(Image$$RW_IRAM1$$ZI$$Limit),所以需要修改MM32F5270的默认链接脚本为如下:
7188f236-22ad-11ed-910d-dac502259ad0.png71a12d4c-22ad-11ed-910d-dac502259ad0.png
  1. 替换mm32的库--将mm32f5270的sdk中的库porting到libraies目录中,并创建SConscript脚本文件。注意需要定义宏定义-BRD_PLUS_F5270
71d347d2-22ad-11ed-910d-dac502259ad0.png
  1. 初始化系统时钟--将mm32f5279的sdk中系统时钟初始化拷贝到board.c中
71ee534c-22ad-11ed-910d-dac502259ad0.png
  1. 初始化系统tick--将函数rt_tick_increase()放在system tick中断中。
71fa1862-22ad-11ed-910d-dac502259ad0.png
  1. 以上步骤基本把rtt移植到mm32f5270中。

移植验证

  • 在main.c中main函数添加点灯的代码。如果能够看到led在闪烁,就说明移植成功了。
7210bf22-22ad-11ed-910d-dac502259ad0.png
  • 现象

shell适配

  1. 适配uart驱动
  • 实现ops的5个函数
  • 将ops注册到serial框架中
  • 注册serial中断,在中断服务程序中调用rt_hw_serial_isr()函数
structrt_uart_ops
{
rt_err_t(*configure)(structrt_serial_device*serial,structserial_configure*cfg);
rt_err_t(*control)(structrt_serial_device*serial,intcmd,void*arg);

int(*putc)(structrt_serial_device*serial,charc);
int(*getc)(structrt_serial_device*serial);

rt_size_t(*dma_transmit)(structrt_serial_device*serial,rt_uint8_t*buf,rt_size_tsize,intdirection);
};

voidrt_hw_serial_isr(structrt_serial_device*serial,intevent);

rt_err_trt_hw_serial_register(structrt_serial_device*serial,
constchar*name,
rt_uint32_tflag,
void*data);
  1. 将对应的串口驱动名设置到rt_console_set_device()函数中。

shell验证

  • 串口终端可以正常输入输出
72251c2e-22ad-11ed-910d-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RT-Thread
    +关注

    关注

    29

    文章

    976

    浏览量

    38373
  • MM32F5
    +关注

    关注

    0

    文章

    12

    浏览量

    477
  • MM32
    +关注

    关注

    1

    文章

    100

    浏览量

    428
收藏 人收藏

    评论

    相关推荐

    RT-Thread系统完整版的移植说明

    STAR-MC1 处理器。很高兴通过ARM中国拿到该芯片的开发板(可以搞事情)MM32F5270 是一款搭载了安谋科技 STAR-MC1 内核的 MCU 产品,其工作频率
    发表于 08-22 16:37

    基于MM32F5270开发板获取雨滴传感器的数据相关资料介绍

    1、基于MindSDK对接雨滴传感器我们还是来介绍一下开发板的相关参数。灵动MM32F5270开发板是搭载安谋科技“星辰”STAR-MC1处理器的全新高性能 MM32F5270微控制器,这个
    发表于 08-24 15:20

    基于MM32F5270开发板RT-Thread SPI驱动适配指南

    RT-Thread的bsp中,STM32驱动貌似是最为完整的。因此,决定开始MM32F5270RT-Thread SPI驱动适配后,我首先参考了RT-Thread主仓STM32 BSP下面
    发表于 09-02 14:59

    MM32F5270(STAR-MC1内核)RT-Thread完整版的移植教程

    RT-Thread完整版的移植说明移植之前须知内容:芯片是什么内核?答:MM32F5270是基于Armv8-M 架构的 “星辰” STAR-MC1 处理器。通过下图可以看出,我们可以
    发表于 12-23 17:17

    RT-Thread文档_内核基础

    RT-Thread文档_内核基础
    发表于 02-22 18:28 0次下载
    <b>RT-Thread</b>文档_<b>内核</b>基础

    MM32F5270 产品手册(中文版)

    MM32F5270 产品手册(中文版)
    发表于 02-23 18:45 1次下载
    <b>MM32F5270</b> 产品手册(中文版)

    MM32F5270 产品手册(英文版)

    MM32F5270 产品手册(英文版)
    发表于 02-23 18:45 0次下载
    <b>MM32F5270</b> 产品手册(英文版)

    MM32F5270 用户手册(中文版)

    MM32F5270 用户手册(中文版)
    发表于 02-23 18:46 6次下载
    <b>MM32F5270</b> 用户手册(中文版)

    MM32F5270 用户手册(英文版)

    MM32F5270 用户手册(英文版)
    发表于 02-23 18:46 0次下载
    <b>MM32F5270</b> 用户手册(英文版)

    MM32F5270 勘误表(中文版)

    MM32F5270 勘误表(中文版)
    发表于 02-23 18:47 0次下载
    <b>MM32F5270</b> 勘误表(中文版)

    MM32F5270 勘误表(英文版)

    MM32F5270 勘误表(英文版)
    发表于 02-23 18:48 0次下载
    <b>MM32F5270</b> 勘误表(英文版)

    RT-Thread记录(二、RT-Thread内核启动流程)

    RT-Thread Studio工程基础之上讲一讲RT-Thread内核启动流程.
    的头像 发表于 06-20 00:30 3898次阅读
    <b>RT-Thread</b>记录(二、<b>RT-Thread</b><b>内核</b>启动流程)

    基于MM32F5270控制器的I2S音频播放

    MM32F5270 系列控制器支持 I2S 总线接口,本章节在接下来会对 MM32F5270 I2S进行介绍,并使用 MM32F5270 和 CS4344 芯片进行 I2S 通信来演示播放一段声音。
    的头像 发表于 09-16 10:39 1166次阅读

    灵动MM32F5270斩获 2022全球电子成就奖之“年度微控制器/接口”奖

    MM32F5270 是一款搭载了安谋科技 Arm China STAR-MC1 内核的 MCU 产品,其工作频率可达 120MHz,内置多达256KB Flash 和 192KB RAM,配置浮点
    的头像 发表于 11-11 11:07 492次阅读

    灵动股份推出基于STAR-MC1MM32G5330

    MM32G5330微控制器搭载了由安谋科技授权的 Armv8-M 架构“星辰”STAR-MC1 内核,性能上比传统的Cortex-M3/M4提升了近20%
    的头像 发表于 05-23 17:24 689次阅读