你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

我的STM32U5 项目秀+STM32U5的CoreMark移植跑分

[复制链接]
落花又见流水 发布时间:2023-1-19 23:26
CoreMark是一项测试处理器性能的基准测试。代码使用C语言写成,包含:列举,数学矩阵操作和状态及CRC等运算法则。目前CoreMark已迅速成为测量与比较处理器性能的业界标准基准测试。CoreMark的得分越高,意味着性能更高。在CoreMark的官网上可以大家可以看到各家处理器型号的CoreMark得分。也可以从CoreMark的官网上下载测试代码,亲自测一下自己手中的片子的性能。
$ `9 b& i  C- Y  @1 Z7 V
( M+ |( k( n8 ?% fCoreMark官网的地址:https://www.eembc.org/coremark/2 @# P, a& B. F* I3 J3 K. V+ q
CoreMark代码地址:https://github.com/eembc/coremark6 X* I! A! k$ |* L! C# V

% f; `2 n2 ^6 j) Y下面就试试在STM32U5上移植CoreMark测试一番。官方的STM32U5CoreMark测试分数在651分。可以在CoreMark管网查看分数排名。
* H) {  g0 ]. Z* D% v: N( \ 1.jpg , {% s- z* ]: b" z" e9 f- r4 \" m
' }$ M7 k: g9 j0 ]3 R1 w
首先下载CoreMark的代码,等下备用。
0 W3 U! t0 y8 k/ W& O 5.jpg
2 ~  Y, j  y; N& A. i4 O4 G# X; d, ]. q+ J7 [
红色框内为移植所需要的文件,到时候需要将这些文件添加到工程中。* j" p# W+ M* M* I* X( R" d9 |4 L
下面先生成STM32U5的一个最小工程。打开STM32CubeMX,新建工程前确保下载STM32U5的代码库。下载方法如下:点击PACKAGESINSTALL/REMOVE,找到STM32U5芯片代码支持包下载。
S0.jpg
通过NUCLEO-U575ZI-Q板子方式新建工程。点击右上角的StartProject
S1.jpg
下面开始配置初始化MCU。通过开发板新建的基本板上使用的IO都默认配置了。
S2.jpg
因为要测试CoreMark,所以要打开ICACHEDCACHE,不打开的话跑分会差很多。下面是设置打开ICACHEDCACHE
S7.jpg
S8.jpg
( J8 y" ]7 R4 J. G; {% W0 A" |& W6 ^
下面是设置时钟主频160MHz。其他默认
S3.jpg
下面设置代码工程保存路径和IDE,以及堆栈空间大小。我选的KEIL MDK
S4.jpg
S5.jpg
S6.jpg
下面生成代码工程,点击右上角的红框。生成代码工程完成后,就可以打开工程了。
S9.jpg
下一步就是移植CoreMark代码了。
打开KEIL工程,可以直接编译通过。
A1.jpg
下面添加printf打印函数,通过串口输出。如下图所示,勾选STDOUT,然后实现stdout_putchar函数。
A2.jpg
下面是实现的stdout_putchar函数。
int stdout_putchar (int ch)
{
    LL_USART_TransmitData8(USART1,ch&0xff);
    while(!(USART1->ISR & (0x1UL << 7)));
    return 0;
}
添加之后可以编译下载测试一下printf输出是否正常。
A3.jpg
下面添加CoreMark代码。CoreMark主要移植修改在core_portme.ccore_portme.h文件。再就是core_main.c中有main函数与我们的main.c中重复了。所以我修改了core_main.cmain函数名称为coremark_main
A4.jpg
A5.jpg
修改core_portme.h文件。查看一些宏定义选项,选择适合的参数。这里我主要修改如下。增加迭代次数,要满足运行时间要求。以及编译器优化选项。
A6.jpg
编译器优化设置,使用LTO加—Omax参数。
A7.jpg
因为CoreMark需要知道运行时间,所以还要修改时间计时处理。修改core_portme.c文件中关于计时处理宏定义。使用SysTick1ms定时。如下图:
A8.jpg
最后在mian.cmain函数中调用CoreMark的修改的coremark_main()函数。然后编译下载。
如图
A9.jpg
最终串口输出结果如下:CoreMark得分为641。与官方的651很接近了。
2.jpg
也测试了下不打开ICACHEDCACHE的情况下,得分在400多。还有其他编译优化选项时,都达不到600分。
3.jpg
4.jpg
至此,CoreMark移植跑分就完成了。
, @' P4 O& s0 V4 E9 a; K
收藏 1 评论1 发布时间:2023-1-19 23:26

举报

1个回答
y369369 回答时间:2023-1-31 16:00:49
写的相当详细啊
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版