在 ST 官网上查看 MCU 的介绍时,常常会看到下面的数据,例如 STM32F103的介绍:
php
上面的 1.25 DMIPS/MHz 表明什么意思,又是如何获得的呢?这就是 CPU 性能测试 (benchmark) 小工具
Dhrystone 测试获得的。
Dhrystone
Dhrystone 是 1984 年由 Reinhold P. Weicker 提出的通用处理器 (CPU) 性能测试标准,最先用 ADA 实现,随后 Rick Richardson 把它翻译为 C 语言,并很快成为了业界标准。不过 Dhdrystone 只测试整型运算,并不包含浮点运算,所以没法用它来判断 FPU 的性能。
最新的源码能够在这里:https://www.netlib.org/benchmark/dhry-c 找到,虽然说是最新,其实也有几十年历史了,这个连接里不只包含了介绍,也能够直接生成源码:html
1$ curl https://www.netlib.org/benchmark/dhry-c > dhry-c.sh
2$ chmod u+x dhry-c.sh
3$ ./dhry-c.sh
这样就能够看到目录下生成了源码和介绍了:git
1.
2├── RATIONALE
3├── README_C
4├── VARIATIONS
5├── dhry-c.sh
6├── dhry.h
7├── dhry_1.c
8├── dhry_2.c
9├── dhry_c.dif
10└── submit.frm
固然,若是是在 RT-Thread 平台的话,直接在 env 下面 menuconfig 就能够找到 Dhrystone 软件包了:
1RT-Thread online packages
2 tools packages --->
3 [*] DHRYSTONE: a benchmark that measures the performance of MCUs and CPUs.
选中软件包并编译,就能够在 msh 下输入:
github
1msh> dhrystone_test
就能够看到跑分结果了,例如:
STM32F103 (ARMCC -O3 -Otime) 跑分: 79 DMIPS & 1.09 DMIPS/MHz
1 \ | /
2- RT - Thread Operating System
3 / | \ 4.0.2 build Oct 15 2019
4 2006 - 2019 Copyright by rt-thread team
5msh >
6msh >dhrystone_test
7
8Dhrystone Benchmark, Version 2.1 (Language: C)
9
10Program compiled without 'register' attribute
11
12Execution starts, 320000 runs through Dhrystone
13Execution ends
14
15Final values of the variables used in the benchmark: