Coremark 现在经常被用来作为微控制器或者处理器性能的评判标准,代码完全用的是 C 语言,通过运算列举,矩阵,状态机以及 CRC 等来获得完成这些运算所需要的时间,最后得到一个分数。
看到网上有表示 STM32F0 的 Coremark 在 68 分,一直想亲自测试一下,看看数据是否接近,通过从 Coremark 的官网下载 coremark 1.0 并进行代码少许修改后,测试得到的结果是 STM32F091RC 跑分在 80 分左右,比之前网上公开的要高不少,但我觉得也是在合理的范围之内。
我使用的编译器是 uVision5.15 - ARMCCV5.05 update 2 (build 169),编译标志是 --device DLM -O3 -Otime --apcs=interwork。
不过在 EEMBC 也找到对 STM32F051 的未经官方验证的测试结果,采用 IAR 编译,跑分达到了 105 分。
附上工程代码,有兴趣的可以下载来试试,看看你的测试结果是多少呢。
后续我会在测试一下 STM32F446 的 Coremark 跑分。在正确的安装 Necleo 的开发板上 ST-LINK/V2-1 的驱动后,电脑上会虚拟出一个串口,这个串口默认是和 MCU 的 USART2 相连接的,所以可以用这个 USART2 来打印结果,方便很多。一开始没有仔细看手册,以为是需要自己连接 TX 和 RX 到 IO 上,后来在调试 USART2 的时候,发现死活不输出数据。一搜索,才发现原来在板子的背面已经通过 SB13 和 SB14 将 ST-LINK 与 USART2 连接上了。
所以以后还是要仔细先看看手册了,不然走了弯路还以为是代码的问题。
本帖最后由 academic 于 2015-8-30 22:35 编辑