前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >芯昇科技CM32M433R-START开箱评测

芯昇科技CM32M433R-START开箱评测

作者头像
bigmagic
发布2022-04-15 15:30:55
8780
发布2022-04-15 15:30:55
举报
文章被收录于专栏:嵌入式iot嵌入式iot

CM32M433R-START开箱评测

1.概述

中国移动芯昇科技发布CM32M4xxR,该芯片基于RISC-V内核的MCU,性能主要对标Cortex-M4。如今RISC-V架构的通用MCU在市场上也并不少见,但是该芯片也有其自己的特点,在探索应用领域方面也有自己独特的设计。

最开始拿到CM32M433R-START这个板子,板子设计简单,接口很多,但是板载资源比较少,与前几年比较热门的物联网开发板不太一样,从芯片CM32M4xxR的特点上来说,主频是144MHz,待机功耗3uA,动态功耗113uA/MHz。

资源方面,可以查看下面的图表

特性

资源

内核

芯来科技N308内核(RV32IMACFSPU)

主频

144MHz

存储

内置512KB Flash、144KB SRAM

U(S)ART

3 * USART、4*UART

SPI

3

QSPI

1

I2C

4

CAN

2

XFMC

1

ADC

4

GPIO

最多97

DMA

2

WWDG

1

IWDG

1

定时器

2*高级定时器,4*通用定时器

从上面的表格来看,主要值得关注的是riscv扩展架构,支持除了一般RISCV都会支持的RV32IMAC,另外还有F(单精度浮点),S(监督模式Supervisor Mode),U(用户模式User Mode),P(DSP)。支持了这些扩展,赋予了该芯片特殊的用途。当加入了S与U扩展,可以做TEE,安全加密等用途,而P扩展的加入,赋予了该MCU多媒体计算加速功能。在应用领域方面。官方宣传应用领域主要是:智能门锁、物联网网关、交互面板、测控终端、学生教育、消费电子相关领域。

2.上手体验

CM32M433R-START只需要接上Micro USB与电脑相连,即可实现板子程序下载与串口调试功能,不需要额外的串口模块与额外的调试器。其实是CM32M433R-START板载了调试芯片,支持了调试功能。其原始接口支持4-wire JTAG与2-wire JTAG调试接口。支持J-Link硬件与RV-Link调试器。

芯片的编程IDE,采用的是NucleiStudio,其IDE底层设计也是属于RISC-V MCU中常用的eclipse进行的整体功能的支持。与兆易创新GD32VF103类似,在IDE的引导下,可以一步一步创建一个工程。

该IDE创建工程提供了很多的示例程序支持,这对于芯片的使用与功能的开发来说,也是非常的重要的。

该芯片例程配合NucleiStudio软件包管理功能,使用起来还是比较方便的。从上手难度上来看,该芯片上手还是相对比较容易的,例程也比较多。与GD32VF103芯片的 RV-STAR总体上手难度差不多。例程丰富,底层库基本上都是开源的。但是有一些加密算法库似乎是通过库函数的方式进行提供,目前未看到源代码实现。

底层驱动库,算法库,以及DSP使用都有着丰富的例程。这些对于芯片使用者来说,还是可以做出一些上层应用功能出来。与其他同类型RISC-V MCU类似,都是一种国产芯片的替代方案。

在ARM芯片替代上,可能最大的区别就是中断管理,这部分CM32M433R-START采用了与兆易创新GD32VF103一样的设计ECLIC,关于ECLIC的分析可以参考下面的文章:

浅析riscv中的plic与eclic

其他的编程方式应该都差不多。做应用开发应该没有太多难度。

3.DSP功能

这芯片相比之前的RISCV MCU,特色之一应该就是DSP支持。但是这也需要硬件、工具链、库三者配合才能使用的很好。

因为做底层软件的研究,所以对这部分我也做了一点研究,从库和编译器方面进行简单的使用体验。

NucleiStudio自动的编译器是支持DSP扩展的,也就是可以采用DSP指令进行编程,库方面,采用的是NMSIS库提供上层函数,直接支持利用头文件提供的DSP函数功能进行编程,这与ARM的CMSIS基本的使用方式上是一样的。

因为直接手写DSP汇编,对于上层应用开发者来说还是比较复杂的。提供头文件进行编写也是一种非常好的方式。

因为研究过一段时间的DSP自动向量化,所以也想在该芯片上测试一下。

在优化等级中选择O3优化后。

代码语言:javascript
复制
uint32_t example5(const uint8_t *restrict in, const uint8_t *restrict in2)
{
    uint32_t sum = 0;
    for (int i = 0; i < 32; i++)
    {
        sum += in[i] * in2[i]; /* => maddr32 */
    }
    return sum;
}

在函数中写一段C语言测试代码,通过编译后的elf文件。

可以看到和加运算确实会被dsp自动向量化,关于dsp自动向量化功能,只能从一定程度上生成对应的DSP指令,很多智能化的操作还需要riscv编译器的不断支持和完善,这也是编译工具链不断智能化的一个重要的推进方向。如果需要人为的去操作DSP指令,则借助NMSIS库也是非常好方式。

4.与其他RISCV MCU比较

之前接触过类似于兆易创新的GD32VF103,沁恒CH32V103,中科蓝讯AB32VG1,乐鑫的ESP32C3等等。

国产RISCV MCU 沁恒CH32V103上手体验

GD32VF103 RISCV开发板试用体验

在资源上CM32M4xxR确实有着一定的优势和竞争力,有着内置512KB Flash、144KB SRAM,特别是加入了tee以及DSP扩展,使得其应用的领域可以更加广一些。MCU比起来确实有着一定的进步。但是我觉得还不够好,既然已经有了DSP以及单精度浮点的支持,完全可以在音视频方面提升一些特点出来。特别是语音编解码,图像编解码以及语音摄像头采集图像方面做出一定的设计。

总体上来说,CM32M4xxR作为通用的MCU,其功能完全可以说是riscv mcu中性能较好的芯片,由于目前还没有进行coremark的跑分测试数据,其评测标准无法量化,但是从资源的丰富程度上来说也是优秀的芯片了。

5.总结

对于CM32M4xxR的芯片,外设资源以及指令支持都还是不错的,只是作为一款通用的MCU来说,可以更加突出应用特点也许会更好。市面上的RISCV MCU越来越多,其易用性,价格,稳定性,出货等等都是重要的评判标准。中国移动芯昇科技是中国移动旗下的子公司,其研发能力和市场资源还是很不错的。只是期待CM32M4xxR能够做出更多的市场应用,为推动RISCV MCU生态发挥出重要的作用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式IoT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CM32M433R-START开箱评测
    • 1.概述
      • 2.上手体验
        • 3.DSP功能
          • 4.与其他RISCV MCU比较
            • 5.总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档