今天早上到公司收到了试用申请的开发板,包装简洁,拆开,设计简洁的一个最小系统板。ps:上次刷抖音看到的,这次又看到免费试用就挺好奇,申请回来看一看性能,开发生态,性价比之类的,cpu的运行速度什么的对物联网开发是很重要的,比如cjson的封装解析,传感器数据的处理运算,etc。
进入主题,准备就官方的SDK移植一个常用的CPU跑分工具,并和
STM32简单对比一下,这次使用的跑分软件组件就是coremark啦。
1、简介
CoreMark是由EEMBC(Embedded Microprocessor Benchmark Consor
tium)的Shay Gla-On于2009年提出的一项基准测试程序,CoreMark的主要目标是简化操作,并提供一套测试
单核处理器核心的方法。测试标准是在配置参数的组合下单位时间内运行的CoreMark程序次数(单位:CoreMark/MHz),该数字值越大则说明测试的性能越好。
目前在嵌入式CPU行业中普遍公认的性能测试指标的标准主要使用以下三种,MIPS、Dhrystone、Coremark,而CoreMark与Dhrystone一样,拥有体积小、方便移植、易于理解、免费并且显示单个数字基准分数。与Dhrystone不同的是,Dhrystone的主要部分实际上暴露了编译器优化工作负载的能力,而不是实际MCU或CPU的能力,的性能,而CoreMark具有特定的运行和报告规则,从而可以避免由于所使用的编译库不同而导致的测试结果难以比较。
2、获取源码
CoreMark的源码可以在CoreMark的官网或者官方GitHub代码仓库获取。
CoreMark官网:
https://www.eembc.org/coremark/
代码仓库:github.com/eembc/coremark
3、源码简介
源码主目录下需要添加到工程的文件:
除了以上的文件,barebones文件夹下为裸机移植需要的文件:
其中core_portme两个文件为移植必须修改的文件,ee_printf.c与cvt.c是为了在裸机平台实现printf打印输出。
W806的SDK中已经实现了printf,最终需要如下文件
修改宏和添加宏
wm_hal可以导入size_t
ITERATIONS能让程序运行大于10s,跑分才准,1万次跑16s左右
FLAGS_STR指示编译器的优化配置
已有printf可用,需要把HAS_PRINTF 等置 1
修改时基函数
运行前的准备(init)
这样基本就ok啦。
实际跑分如下:
这个跑分稍强于STM32F469@180MHz,稍低于ESP32,性价比很高啊!
另外这个开发环境到手即用,SDK中的硬件抽象层实现和STM32类似,开发生态莫名提高了,外设驱动的demo也是都有的,很不错了,比我想象中好用。
测试源码工程放到Gitee上,供大家测试讨论。
w806: 联盛德W806评测 (gitee.com)