[STM32C5] 【STM32C5 开发板评测】五、MDK5.40实现C5跑分CoreMark

[复制链接]
28|0
地瓜patch 发表于 2026-9-4 22:30 | 显示全部楼层 |阅读模式
本帖最后由 地瓜patch 于 2026-9-5 12:36 编辑

Coremark代码可以从Gitee下载:
https://gitee.com/ssri-mirrors/coremark.git
或者直接从这里下载 coremark-main.zip (475.49 KB, 下载次数: 0)
下载后解压会出现很多文件,将这5个.c文件全部加入工程中,同时将simple文件夹下的CORE_PORTME.C文件加入工程。
在之前的*..uvprojx工程中,添加文件很简单,左侧工程树项目右键,add existing files....即可加入。
但是目前的MDK AC6工程是无法加入已存在的文件。
需要从stm32cubeMX2生成的文件中找到  *.cproject.yml 文件
修改其中的groups:字段,在该段中已经存在,
groups:
    - group: UserCode
      files:
        - file: main.c
          category: source
        - file: main.h
          category: header
    - group: CoreMark

main.c和main.h文件。这两个文件存在于UserCode文件夹,参照这种方式,可以将coremark的相关库文件加到工程中
如下
groups:
    - group: UserCode
      files:
        - file: main.c
          category: source
        - file: main.h
          category: header
    - group: CoreMark
      files:
        - file: coremark/core_list_join.c
          category: source
        - file: coremark/core_main.c
          category: source
        - file: coremark/core_matrix.c
          category: source
        - file: coremark/core_state.c
          category: source
        - file: coremark/core_util.c
          category: source
        - file: coremark/simple/core_portme.c
          category: source
        - file: coremark/simple/core_portme.h
          category: header
        - file: coremark.h
          category: header
  add-path:
    - ./

注意以上缩进全部为空格,不能用tab。会报错
可以用“命令提示符CMD”中的指令cbuild setup stm32c542_Uart.csolution.yml -S来进行验证,
比如其中的tab会报错,都是因为tab缩进。

PS E:\demo\Stm32C542Rc\stm32c5_CoreMark\stm32c542_Uart_open-cmsis> del project\..\stm32c542_Uart.cbuild-idx.yml
PS E:\demo\Stm32C542Rc\stm32c5_CoreMark\stm32c542_Uart_open-cmsis> cbuild setup stm32c542_Uart.csolution.yml -S
E:/demo/Stm32C542Rc/stm32c5_CoreMark/stm32c542_Uart_open-cmsis/project/stm32c542_Uart.cproject.yml:92:1 - error csolution: schema check failed, verify syntax
将coremark文件加入工程后的工程树如下图所示
280666a9ad5877a866.png
在main.c中调用    coremark_main(); 编译是能成功的,但是运行程序,就会发现程序一进入coremark_main()就死机。

通过仿真发现程序死在了HardFault_Handler
201406a9b9adfa3ce4.png

MSP和PSP两个指针都溢出了
689416a9b9a7026e95.png


于是需要加大stack的尺寸,在(工程名)_flash.sct总修改如下语句
#define __STACK_SIZE 0x2000
重新编译,等待几秒就能够出结果。用时16.458s,得分486分,crc无错误,符合跑分要求。
959926a9b9bfcea621.png





您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

2998

主题

17974

帖子

31

粉丝
快速回复 在线客服 返回列表 返回顶部
0