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

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

3天内不再提示

极海Cortex-M52内核MCU G32R501在CoreMark的表现如何

Geehy极海半导体 来源:21ic论坛极海半导体专区 2026-03-09 14:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

《极海芯得》系列内容为用户使用极海系列产品的经验总结,均转载自21ic论坛极海半导体专区,全文未作任何修改,未经原文作者授权禁止转载。

1. 前言

要真正衡量一颗MCU的运算实力,CoreMark成绩往往是一个比较客观、公认的参考指标。到底这个G32R501跑起CoreMark来能交出怎样的成绩单?今天就让我们一起“探秘”一番,看这款Cortex-M52 MCU在CoreMark上的表现究竟是“平平无奇”还是“惊艳四座”!

本篇就给大家呈现各版本配置下跑分的情况——不同Flash/RAM运行区域会对CoreMark产生什么样滴影响?

2. CoreMark移植:前置准备

2.1 移植过程

其实,CoreMark移植到G32R501跟常见的APM32之类MCU的思路相差不大。

• 首先,下载官方CoreMark源码;

• 然后,根据Geehy的标准库/SDK修改工程环境、时钟配置;

• 最后,编写或引用标准的串口输出(printf重定向)让CoreMark测试完成后打印结果即可。

2.2 printf重定向

关于G32R501如何做串口打印,可参考“国内首款M52内核:G32R501 EVAL板卡开箱记录”(https://bbs.21ic.com/icview-3466854-1-1.html?_dsign=08ebddb2),其中展示了 GPIO28 / GPIO29 的 UART 通道配置,以及如何重载 fputc 函数。只要能让CoreMark结果顺利“跑”到终端,就万事OK了。

3. 跑分注意事项:G32R501内存访问花样多

在CoreMark跑分时,我们往往会精确追求“运行在哪个存储区域、主频几何、是否有等待周期”等等。G32R501有点特别之处就是Flash访问路径和可配置的内存结构。简单总结如下:

(1) Flash访问(FACC vs. CPU Cache) G32R501的CPU0和CPU1皆可通过两条不同路径读Flash:

ITCM -> FACC -> Flash:针对ITCM空间访问的加速逻辑;

CPU CACHE -> C-Bus -> busmatrix -> Flash:针对C-Bus空间访问,每次访问可由CPU Cache执行加速。

这意味着,在链接脚本中把代码放到不同“段”(ITCM Flash位置或C-Bus Flash位置),MCU的访问方式有所区别。ITCM段主要依赖FACC加速,而C-Bus段依赖CPU Cache加速。

这意味着,在链接脚本中把代码放到不同“段”(ITCM Flash位置或C-Bus Flash位置),MCU的访问方式有所区别。ITCM段主要依赖FACC加速,而C-Bus段依赖CPU Cache加速。

(2) SRAM灵活分区 G32R501总共有128KB的SRAM,可通过CFGSMS模块对其分块配置,比如可以划分一部分SRAM作为ITCM、另一些作为DTCM,或者纯粹当普通SRAM等。这样可满足不同应用场景的速度或灵活性需求。

有了这些可玩要素,自然而然就想看看CoreMark在三种常见场景下的差异:

从“C-Bus Flash”运行(即通过CPU Cache加速);

从“ITCM Flash”运行(FACC加速);

从“ITCM RAM”运行(这就更快了,理论上可直接贴近CPU)。

4. 跑分配置:三大场景

为了更好对比,我在工程中配置了不同的tag(运行位置各不同),分别使用Geehy SDK提供的链接脚本,路径:G32R501_SDK_V1.1.0device_supportg32r501commonsct

(1) g32r501_cbus_flash.sct

对应把代码映射到 C-Bus Flash

(2) g32r501_itcm_flash.sct

对应把代码映射到 ITCM Flash

(3) g32r501_itcm_ram.sct

对应把代码直接放进 ITCM RAM

需要注意的是,对于ITCM_RAM运行的核心可执行代码,默认情况下板卡的启动还是在Flash里。所以需要按照下面的流程才能让ram里面的代码顺利运行:

先用“g32r501_cbus_flash工程”擦除flash,

再启动“g32r501_itcm_ram工程”调试,进入仿真后让CPU以全速执行,最后退出仿真状态。这样它才能真正从ITCM_RAM去运行CoreMark。

5. 首轮PK:三大场景的表现

先看看在未手动启用CPU Cache的情况下,我们得到的CoreMark/MHz成绩(注:CoreMark量纲还可能和实际主频相关,这里以CoreMark/MHz为横轴做对比):

(1) C-Bus Flash

CoreMark/MHz 1.0 : 1.643746

这个数字不算出彩,和普通中端MCU跑分相当。

(2) ITCM Flash

CoreMark/MHz 1.0 : 3.861335

哇,翻个倍还多。说明走ITCM -> FACC方式确实给力。

(3) ITCM RAM

CoreMark/MHz 1.0 : 4.166570

再提升了一丢丢,果然直接跑在RAM上通常会速度更快。和理论的M52内核跑分差距不大

e0a9b4a8-192a-11f1-90a1-92fbcf53809c.png

可以看出,C-Bus Flash的1.64左右对比ITCM Flash和ITCM RAM,差距极大。不禁让人好奇:“C-Bus不是也有CPU Cache加速吗?为何比ITCM Flash慢这么多呢?”别急,我们还没手动打开CPU Cache呢,它应该是默认没启动。

6. 再进阶:开启CPU Cache 后的惊喜

既然C-Bus Flash可以配合CPU Cache,那我们就再来一试。只需要在代码里调用以下两行即可:

// Enable Instruction Cache

SCB_EnableICache();

// Enable Data Cache

SCB_EnableDCache();

然后重新测试,得到的新成绩是:

(1) C-Bus Flash(已启用Cache)

CoreMark/MHz 1.0 : 4.022346

哇,一下子从1.64飙到4.02,翻了两倍多,这才是真正领略到了Cache的力量啊。

(2) 其他两个就没什么变化了

ITCM Flash,它本来走的是FACC加速,不依赖CPU Cache。

ITCM RAM,说明这部分也本身就很快了,Cache不 Cache影响也不大。

e1027d72-192a-11f1-90a1-92fbcf53809c.png

如此一来,在C-Bus Flash开启CPU Cache后,甚至可以和ITCM RAM跑分平起平坐。看得出,给C-Bus这边加Cache能带来明显效能飞跃,也就合理解释了“为什么 ITCM Flash 在没有启用CPU Cache时就能跑到3.86”的现象——它本身有另一条加速通道 FACC 做后台支持。所以一旦给C-Bus运输线上再加个CPU Cache的“加速捷径”,差距就一下子被抹平甚至反超!

7. G32R501:性能、特色与更多想象

G32R501在不同内存访问配置下,CoreMark/MHz可稳定落在4.0~4.16之间,已非常接近纯官方Cortex-M52的参考值4.30。

e15df3f0-192a-11f1-90a1-92fbcf53809c.png

来源: https://armkeil.blob.core.windows.net/developer/Files/pdf/product-brief/arm-cortex-m-processor-comparison-table.pdf

精彩的部分在于,G32R501还是双核M52架构,并拥有自研“紫电数学指令扩展”与Arm Helium(MVE)矢量扩展,三重硬件“Buff”。CoreMark作为纯整数基准,本身并未包含大量DSP或矢量化测试。而在实际应用中,如果启用紫电扩展与Helium指令调度更多DSP或矢量运算,尤其是像电机矢量控制、滤波、FFT这类场景,性能提升空间会更大。

对于G32R501的CoreMark测试数据你还满意么?欢迎在评论区留言一起讨论吧。

注:文章作者在原帖中提供了代码文件,有需要请至原文21ic论坛

原文地址:https://bbs.21ic.com/icview-3467118-1-2.html?_dsign=fd1a5b81

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

    关注

    147

    文章

    19232

    浏览量

    405179
  • FlaSh
    +关注

    关注

    10

    文章

    1762

    浏览量

    156108
  • 内存
    +关注

    关注

    9

    文章

    3255

    浏览量

    76590
  • 极海半导体
    +关注

    关注

    0

    文章

    228

    浏览量

    4825

原文标题:极海芯得 EP.75 | G32R501:这个Cortex®-M52 CoreMark分数是几何?

文章出处:【微信号:geehysemi,微信公众号:Geehy极海半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    G32R501数据手册# 内置FPU,支持 Arm Helium,实时控制 MCU

    G32R501实时控制MCU : 基本信息 : G32R5系列实时控制MCU搭载Arm v8
    的头像 发表于 02-19 13:58 3670次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b>数据手册# 内置FPU,支持 Arm Helium,实时控制 <b class='flag-5'>MCU</b>

    使用CMake+VSCode环境移植ThreadX到G32R501 MCU

    我本人是 cmake+vscode 组合的忠实用户,之前写了一篇文章介绍了 cmake+vscode 环境下开发 G32R501 的一些实践经验。这篇文章准备更进一步:移植一个ThreadX。
    的头像 发表于 03-09 14:04 2842次阅读
    使用CMake+VSCode环境移植ThreadX到<b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b> <b class='flag-5'>MCU</b>

    G32R501实时控制 MCU 跨域新境界丨面向新一代高效能高实时控制设备

    首款基于Arm® Cortex®-M52双核架构的实时控制MCU——G32R501
    发表于 01-07 18:06 1683次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b>实时控制 <b class='flag-5'>MCU</b> 跨域新境界丨面向新一代高效能高实时控制设备

    介绍STM32F4Cortex-M4内核Cortex-M3内核方面的优势

    该视频通过STM32F4 MCU展示了音频处理应用方面Cortex-M4内核Cortex-M3内核
    的头像 发表于 07-03 04:19 1.6w次阅读

    Arm Cortex-M52的主要特性和规格

    Arm Cortex-M52是一款采Arm Helium 技术的新型微控制器内核,旨在将AI功能引入更小、成本更低的物联网设备,而不是基于Arm Cortex-M55内核的SoC,Ar
    的头像 发表于 01-02 11:12 3937次阅读
    Arm <b class='flag-5'>Cortex-M52</b>的主要特性和规格

    出席慕尼黑上海电子展,展示全球首款双核架构G32R5系列实时控制MCU

    半导体将在7月8日-10日的慕尼黑上海电子展现场,展示全球首款基于Arm Cortex-M52处理器Helium技术的双核架构G32R5系列实时控制
    的头像 发表于 06-28 11:23 1842次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b>出席慕尼黑上海电子展,展示全球首款双核架构<b class='flag-5'>G32R</b>5系列实时控制<b class='flag-5'>MCU</b>

    于electronica 2024展示G32R5高性能实时控制MCU

    LUPower Electronics论坛上发表了题为《最新基于 Arm® Cortex®-M52 及支持HeliumTM技术的
    的头像 发表于 12-16 13:42 1602次阅读

    高效双控 精准卓越 | G32R501低压无感双电机参考方案

    降低成本、提高系统可靠性以及简化电机结构方面具有显著优势。 随着无传感器电机控制技术的逐步成熟,其工业自动化、旋翼飞行器、空调外机等领域迎来广阔的市场应用前景。紧跟行业技术发展趋势,推出
    发表于 01-16 16:12 848次阅读
    高效双控 精准卓越 | <b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b>低压无感双电机参考方案

    高效转换 实时调控 | 基于G32R501的800W双路MPPT微型逆变器参考方案

    ,更是推动绿色能源普及的重要技术载体。 推出G32R501 800W双路MPPT微型逆变器参考方案,旨在以更高效、更智能的量产级技术方案,助力全球能源转型。该方案通过G32R501
    发表于 02-26 11:07 780次阅读
    高效转换 实时调控 | 基于<b class='flag-5'>G32R501</b>的800W双路MPPT微型逆变器参考方案

    半导体荣登2025中国IC设计Fabless100排行榜之TOP10微控制器公司

    近日,“中国IC设计成就奖”颁奖典礼中,微上榜中国微控制器公司Top 10,G32R501实时控制MCU斩获“2025年度
    的头像 发表于 04-01 09:43 2297次阅读

    半导体G32R501:面向具身机器人的高性能、高安全实时控制MCU/DSP

    要求。     今天,第十五届松山湖中国IC创新高峰论坛中,珠海半导体有限公司实时控制MCU/DSP产品线高级产品经理卢鹏升带来了面向具身机器人的高性能、高安全实时控制
    发表于 05-13 12:12 1697次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b>半导体<b class='flag-5'>G32R501</b>:面向具身机器人的高性能、高安全实时控制<b class='flag-5'>MCU</b>/DSP

    G32R501 基于Cortex-M52内核的32位实时微控制器数据手册

      G32R501 微控制器最高运行频率可达 250MHz,实现了 Arm Rv8-M 的自定义数据路径扩展(CDE),搭载基于矢量扩充方案(MVE)的Helium™技术,其通过创新的 Zidian
    的头像 发表于 05-14 15:25 1669次阅读
    <b class='flag-5'>G32R501</b> 基于<b class='flag-5'>Cortex-M52</b><b class='flag-5'>内核</b>的32位实时微控制器数据手册

    G32R501工业六轴机械臂参考方案释放工业4.0产业价值

    挥着重要作用,是现代工业自动化和智能化生产的核心工具。据Grand View Research数据分析,2024年全球工业机器人市场规模约为340亿美元,预计2025年至2030年将以9.9%的复合年增长率持续增长,展现出巨大的市场潜力。 工业六轴机械臂参考方案,采用
    发表于 06-23 13:52 2027次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b>工业六轴机械臂参考方案释放工业4.0产业价值

    工业“MCU+AI”技术发展的核心要点

    55,480MHz) G32R501Cortex-M52) ​ 集成专用NPU ​ ​ 特点 ​:硬件加速AI推理,支持复杂算法。 ​ 代表产品 ​: 国芯CCR4001S(自研
    的头像 发表于 07-18 14:34 2846次阅读

    G32R501芯片与Jlink适配的过程解析

    适配芯片至Jlink,网上已经有许许多多的博客介绍了,但今天我们的主角G32R501不太一般,要是我们按照普通的芯片适配流程,大家会发现在最终对芯片进行程序进行下载的时候无法成功,那这是为什么呢?本文给大家介绍一下G32R501芯片,
    的头像 发表于 02-25 13:47 763次阅读
    <b class='flag-5'>极</b><b class='flag-5'>海</b><b class='flag-5'>G32R501</b>芯片与Jlink适配的过程解析