Skip to content

# 5. 常用工具介绍

## 5.1. 采集/设置系统信息的工具集

### 5.1.1. 获取开发板SOM状态工具

[LINUX] hrut_somstatus 是用来获取当前开发板SOM状态的工具，包含温度、 cpu频率、bpu状态。

用法：

    hrut_somstatus [-n count] [-d second]

### 5.1.2. 获取开发板boardid工具

[LINUX] hrut_boardid 是用来获取当前开发板boardid的工具。

用法：

    hrut_boardid

### 5.1.3. 获取芯片unique id的工具

[LINUX] hrut_socuid 是用来获取当前芯片unique id的工具。

用法:

    hrut_socuid

### 5.1.4. 获取开发板somid工具

[LINUX] hrut_somid 是用来获取当前开发板somid的工具。

用法:

    hrut_somid

### 5.1.5. 设置开发板IP地址工具

[LINUX] hrut_ipfull 是用来设置开发板IP地址的工具，支持设置，获取，清空三个功能，重启后生效，在系统起来后会自动配置上。

用法:

    #设置IP地址
    hrut_ipfull s <eth0/eth1> IP<x.x.x.x> MASK<y.y.y.y> GATEWAY<z.z.z.z>
    #获取IP地址
    hrut_ipfull g <eth0/eth1>
    #清空IP地址
    hrut_ipfull c <eth0/eth1>

举例：

    #设置IP地址，以eth0为例
    root@hobot:~# hrut_ipfull s eth0 192.168.0.100 255.255.255.0 192.168.0.1
    root@hobot:~#
    #获取IP地址，以eth0为例
    root@hobot:~# hrut_ipfull g eth0
    ip=192.168.0.100
    mask=255.255.255.0
    gw=192.168.0.1
    #清空IP地址，以eth0为例
    root@hobot:~# hrut_ipfull c eth0
    clear all ip related setting.

### 5.1.6. 设置开发板MAC地址工具

[LINUX] hrut_mac 是用来设置开发板mac地址的工具，支持设置，获取，清空三个功能，重启后生效，在系统起来后会自动配置上。

用法:

    #设置mac地址
    hrut_mac s <eth0/eth1> xx:xx:xx:xx:xx:xx
    #获取mac地址
    hrut_mac g <eth0/eth1>
    #清空mac地址
    hrut_mac c <eth0/eth1>

举例：

    #设置mac地址，以eth0为例
    root@hobot:~# hrut_mac s eth0 11:22:33:44:55:66
    root@hobot:~#
    #获取mac地址，以eth0为例
    root@hobot:~# hrut_mac g eth0
    11:22:33:44:55:66
    #清空mac地址，以eth0为例
    root@hobot:~# hrut_mac c eth0

## 5.2. Log系统使用

J6X系统软件支持自动抓取log到/log分区中，具体log内容如下表所示：

存储位置 | 存储内容说明 | 附加说明
--- | --- | ---
/log/kernel/message | kernel log。还包含通过syslog接口输出的日志。 |
/log/kernel/archive/ | 转存kernel log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/usr/message | user log。使用logcat命令抓取user log。 |
/log/usr/archive/ | 转存user log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/bl31/message | bl31 log。 |
/log/bl31/archive/ | 转存bl31 log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/dsp0/message | dsp0 log。 |
/log/dsp0/archive/ | 转存dsp0 log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/bpu/message | bpu log。 |
/log/bpu/archive/ | 转存bpu log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/mcu/message | mcu log。 |
/log/mcu/archive/ | 转存mcu log到archive目录，进行归档，日志文件命名包含时间戳。 |
/log/reset_reason.txt | 重启日志，记录每次重启时间和原因。 |
/log/pstore/ | pstore log，记录内核异常时的log信息，开机时根据重启原因记录。 | 其中的sched-ramoops-0是通过CONFIG_SCHED_LOGGER宏去控制的，默认打开，用于记录进程调度信息，开启会影响性能，上车建议关闭。
/log/uboot/archive/ | uboot log。记录每次启动时uboot的日志。 |
/log/coredump/ | coredump 文件，记录程序出错导致异常中断时的工作状态。 |

## 5.3. BPU 使用率测试工具

### 5.3.1. 工具位置以及所包含文件

本工具位于 Build 环境建立 中J6X全量代码编译产物的 `./out/release-gcc_12.2-64/target/product/tools/power_consumption_benchmark_tool.7z`。

以上软件包需手动解压到板端

BPU 工具存放在bpu目录，具体目录结构如下：

    root@hobot:~# cd bpu
    root@hobot:~# ls -al
    total 64236
    drwxr-xr-x.  3 root root     4096 May 21 22:01 .
    drwxr-xr-x. 13 root root     4096 May 21 20:50 ..
    -rwxrwxrwx.  1 root root  1667336 May 21 20:03 bpu_os_test
    -rw-r--r--.  1 root root   212992 May 21 19:07 input_1.bin
    -rw-r--r--.  1 root root   106496 May 21 19:07 input_2.bin
    drwxr-xr-x.  2 root root     4096 May 21 19:07 lib
    -rw-r--r--.  1 root root     1794 May 21 21:56 run.sh
    -rw-r--r--.  1 root root 63766544 May 21 19:07 yolov3.hbm

用法： sh yolo.sh -r xx 注：-r 数值为预设的BPU占用率，范围是 5-100，超过此范围会报输入错误。 可以通过hrut_somstatus命令查看实际的BPU占用率。 （实际使用过程中，出现占用率会出现与设置阈值+-5%的抖动为正常现象）

    root@hobot:~# sh yolo.sh -r 100
    #启动新的ssh终端查看对应group的占用值
    root@hobot:~# hrut_somstatus
    =====================1=====================
    temperature-->
            pvt_cmn_pvtc1_t1 : 36.893 (C)
            pvt_cmn_pvtc1_t2 : 36.342 (C)
            pvt_mcu_pvtc1_t1 : 39.283 (C)
            pvt_mcu_pvtc1_t2 : 39.099 (C)
            pvt_bpu_pvtc1_t1 : 39.834 (C)
    voltage-->
            FAKE     : 100.0 (mV)
            VDDQ_DDR2 : 492.0 (mV)
            VDD_MCU  : 742.0 (mV)

            ......

            MCU_PVTC1_V15 : 0.0 (mV)
            MCU_PVTC1_V16 : 0.0 (mV)
    cpu frequency-->
                    min   cur     max
            policy0: 1500000000     2000000000      2000000000
            policy4: 1500000000     2000000000      2000000000
    bpu status information---->
                    ratio
            bpu0:   99

## 5.4. 功耗测试工具

### 5.4.1. 工具概述

本工具可同时跑CPU、BPU、VDSP、Codec和GPU的负载加压用例，并实时记录各负载、芯片结温和DDR带宽等信息，用于功耗测试。

本工具位于 Build 环境建立 中J6X全量代码编译产物的 `./out/release-gcc_12.2-64/target/product/tools/power_consumption_benchmark_tool.7z`。

以上软件包需手动解压到板端，解压后的目录结构如下：

    .
    ├── bpu
    ├── codec
    ├── cpu
    ├── gpu
    ├── mdma
    ├── monitor
    ├── run.sh
    └── vdsp

备注

该软件包运行后，因实时记录各负载、芯片结温和DDR带宽等信息到文件中，需要较大空间，因此建议拷贝到有充足空间的目录下，如/map。

### 5.4.2. 运行

编译服务器参考 Build 环境建立 编译完J6X全量代码后，将软件包通过scp命令传至板端的/map，假设板端网络已通，且ip为board_ip：

    user.name@compile-server:~/work/J6/out/release-gcc_12.2-64/target/product/tools$ scp power_consumption_benchmark_tool.7z root@board_ip:/map

板端解压至/map/benchmark_tool目录下：

    root@hobot:/map# mkdir benchmark_tool
    root@hobot:/map# 7z x power_consumption_benchmark_tool.7z -o/map/benchmark_tool/

执行如下命令，默认同时跑CPU、BPU、VDSP、Codec和GPU的负载加压用例：

    root@hobot:/map/benchmark_tool# bash run.sh

#### 5.4.2.1. BPU配置

##### 5.4.2.1.1. 运行说明

BPU加压程序使用上述的 BPU 使用率测试工具，默认启动后会一直跑，除非终止程序，运行命令如下：

    root@hobot:/map/benchmark_tool/bpu# bash run.sh

BPU负载可通过指定-r参数来调节，参数范围是[5, 100]。

1. 并行跑多个用例时，默认负载是100%，可通过修改/map/benchmark_tool目录下的run.sh进行调节。

示例：设置BPU负载为80%。

    cd ${SCRIPT_DIR}/bpu && bash run.sh -r 80

2. 单独跑BPU负载用例时，直接执行BPU目录下的run.sh，加上-r参数进行调节。

示例：设置BPU负载为100%。

    root@hobot:/map/benchmark_tool/bpu# bash run.sh -r 100

##### 5.4.2.1.2. 负载查看

运行bpu加压程序后，可在/map/benchmark_tool/monitor/output/bpu_load文件中查看BPU的实时负载，每秒记录一次：

    root@hobot:/map/benchmark_tool/monitor/output# cat bpu_load
    Tue Jun  4 19:04:13 CST 2024: bpu load: 0
    Tue Jun  4 19:04:14 CST 2024: bpu load: 0
    Tue Jun  4 19:04:15 CST 2024: bpu load: 0
    Tue Jun  4 19:04:16 CST 2024: bpu load: 69
    Tue Jun  4 19:04:17 CST 2024: bpu load: 97
    Tue Jun  4 19:04:18 CST 2024: bpu load: 99
    Tue Jun  4 19:04:19 CST 2024: bpu load: 99
    Tue Jun  4 19:04:20 CST 2024: bpu load: 98

#### 5.4.2.2. CPU配置

##### 5.4.2.2.1. 运行说明

CPU加压程序默认启动后会一直跑，除非终止程序，运行命令如下：

    root@hobot:/map/benchmark_tool/cpu# bash run.sh

并行跑多个用例时，默认跑满所有CPU核的100%负载。

可通过指定cpu的run.sh参数来调节CPU负载。

    root@hobot:/map/benchmark_tool/cpu# bash run.sh core_num load time

1. 第一个参数core_num设置跑的cpu核数，范围是[1，6]；

2. 第二个参数load设置各个核的负载，范围是[50，100]；

3. 第三个参数设置运行时长，单位为秒，大于0。

示例：同时跑3个核，各个核的负载为50%，运行5秒。

    root@hobot:/map/benchmark_tool/cpu# bash run.sh 3 50 5

##### 5.4.2.2.2. 负载查看

运行cpu加压程序后，可在/map/benchmark_tool/monitor/output/cpu_load文件中查看CPU的实时负载，每秒记录一次：

    root@hobot:/map/benchmark_tool/monitor/output# cat cpu_load
    Tue Jun  4 19:04:13 CST 2024: cpu load: 83.33
    Tue Jun  4 19:04:14 CST 2024: cpu load: 30.05
    Tue Jun  4 19:04:15 CST 2024: cpu load: 34.49
    Tue Jun  4 19:04:16 CST 2024: cpu load: 26.80
    Tue Jun  4 19:04:17 CST 2024: cpu load: 23.75
    Tue Jun  4 19:04:18 CST 2024: cpu load: 44.50
    Tue Jun  4 19:04:19 CST 2024: cpu load: 100.00
    Tue Jun  4 19:04:20 CST 2024: cpu load: 100.00
    Tue Jun  4 19:04:21 CST 2024: cpu load: 100.00
    Tue Jun  4 19:04:22 CST 2024: cpu load: 100.00
    Tue Jun  4 19:04:23 CST 2024: cpu load: 100.00

#### 5.4.2.3. Codec配置

##### 5.4.2.3.1. 运行说明

Codec加压程序的运行命令如下：

    root@hobot:/map/benchmark_tool/codec# bash run.sh

并行跑多个用例时，默认跑满jpu和vpu的100%负载，均10000000s。

可通过指定codec的run.sh参数来调节运行时长。

    root@hobot:/map/benchmark_tool/codec# bash run.sh jpu_test_time vpu_test_time

1. 第一个参数jpu_test_time设置jpu运行时间，单位为秒，要求大于0；

2. 第二个参数vpu_test_time设置vpu运行时间，单位为秒，要求大于0；

示例：jpu跑1000s，vpu跑1000s。

    root@hobot:/map/benchmark_tool/codec# bash run.sh 1000 1000

##### 5.4.2.3.2. 负载查看

运行codec加压程序后，可在/map/benchmark_tool/monitor/output/jpu_load和vpu_load文件中查看jpu和vpu的实时负载，每秒记录一次：

    root@hobot:/map/benchmark_tool/monitor/output# cat jpu_load
    Tue Jun  4 19:04:13 CST 2024: jpu load: 0
    Tue Jun  4 19:04:14 CST 2024: jpu load: 0
    Tue Jun  4 19:04:15 CST 2024: jpu load: 0
    Tue Jun  4 19:04:16 CST 2024: jpu load: 0
    Tue Jun  4 19:04:17 CST 2024: jpu load: 0
    Tue Jun  4 19:04:18 CST 2024: jpu load: 0.7
    Tue Jun  4 19:04:19 CST 2024: jpu load: 38.9
    Tue Jun  4 19:04:20 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:21 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:22 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:23 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:25 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:26 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:27 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:28 CST 2024: jpu load: 100.0
    Tue Jun  4 19:04:29 CST 2024: jpu load: 100.0

    root@hobot:/map/benchmark_tool/monitor/output# cat vpu_load
    Tue Jun  4 19:04:13 CST 2024: vpu load: 0
    Tue Jun  4 19:04:14 CST 2024: vpu load: 0
    Tue Jun  4 19:04:15 CST 2024: vpu load: 0
    Tue Jun  4 19:04:16 CST 2024: vpu load: 0
    Tue Jun  4 19:04:17 CST 2024: vpu load: 0
    Tue Jun  4 19:04:18 CST 2024: vpu load: 1.0
    Tue Jun  4 19:04:19 CST 2024: vpu load: 39.0
    Tue Jun  4 19:04:20 CST 2024: vpu load: 99.0
    Tue Jun  4 19:04:21 CST 2024: vpu load: 99.0
    Tue Jun  4 19:04:22 CST 2024: vpu load: 100.0
    Tue Jun  4 19:04:23 CST 2024: vpu load: 100.0
    Tue Jun  4 19:04:25 CST 2024: vpu load: 100.0
    Tue Jun  4 19:04:26 CST 2024: vpu load: 99.0
    Tue Jun  4 19:04:27 CST 2024: vpu load: 100.0
    Tue Jun  4 19:04:28 CST 2024: vpu load: 100.0
    Tue Jun  4 19:04:29 CST 2024: vpu load: 100.0

#### 5.4.2.4. VDSP配置

##### 5.4.2.4.1. 运行说明

VDSP加压程序的运行命令如下：

    root@hobot:/map/benchmark_tool/vdsp# bash run.sh

并行跑多个用例时，默认跑满VDSP的100%负载，运行8小时。

可通过指定vdsp的run.sh参数来调节运行时长和负载。

    root@hobot:/map/benchmark_tool/vdsp# bash run.sh test_time loading

1. 第一个参数test_time设置vdsp运行时间，单位为秒，要求大于0；

2. 第二个参数loading设置vdsp负载，范围是[10，100]；

示例：vdsp跑50%负载，运行1小时。

    root@hobot:/map/benchmark_tool/vdsp# bash run.sh 3600 50

##### 5.4.2.4.2. 负载查看

运行vdsp加压程序后，可在/map/benchmark_tool/monitor/output/vdsp_load文件中查看VDSP的实时负载，每秒记录一次：

    root@hobot:/map/benchmark_tool/monitor/output# cat vdsp_load
    Tue Jun  4 19:04:19 CST 2024: vdsp load: 93
    Tue Jun  4 19:04:20 CST 2024: vdsp load: 96
    Tue Jun  4 19:04:21 CST 2024: vdsp load: 97
    Tue Jun  4 19:04:22 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:23 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:24 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:25 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:26 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:27 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:28 CST 2024: vdsp load: 98
    Tue Jun  4 19:04:29 CST 2024: vdsp load: 99
    Tue Jun  4 19:04:30 CST 2024: vdsp load: 99
    Tue Jun  4 19:04:31 CST 2024: vdsp load: 99
    Tue Jun  4 19:04:32 CST 2024: vdsp load: 99
    Tue Jun  4 19:04:33 CST 2024: vdsp load: 99
    Tue Jun  4 19:04:34 CST 2024: vdsp load: 99

#### 5.4.2.5. GPU配置

##### 5.4.2.5.1. 运行说明

GPU加压程序启动后，会一直运行，运行命令如下：

    # /map/benchmark_tool/run.sh
    cd ${SCRIPT_DIR}/gpu && bash run.sh

并行跑多个用例时，默认跑满GPU的100%负载。

### 5.4.3. 关键信息查看

#### 5.4.3.1. 芯片结温

并行跑多个用例时，芯片结温会每秒输出到终端上，同时保存到/map/benchmark_tool/monitor/output/temp文件中。

    root@hobot:/map/benchmark_tool/monitor/output# head -n 10 temp
    Tue Jun  4 19:04:13 CST 2024: Temp: pvt_cmn_pvtc1_t1  pvt_cmn_pvtc1_t2  pvt_mcu_pvtc1_t1  pvt_mcu_pvtc1_t2  pvt_bpu_pvtc1_t1
    Tue Jun  4 19:04:13 CST 2024:         43511000          44246000           42040000           41856000           43143000
    Tue Jun  4 19:04:14 CST 2024: Temp: pvt_cmn_pvtc1_t1  pvt_cmn_pvtc1_t2  pvt_mcu_pvtc1_t1  pvt_mcu_pvtc1_t2  pvt_bpu_pvtc1_t1
    Tue Jun  4 19:04:14 CST 2024:         43695000          44246000           42959000           42775000           43878000
    Tue Jun  4 19:04:15 CST 2024: Temp: pvt_cmn_pvtc1_t1  pvt_cmn_pvtc1_t2  pvt_mcu_pvtc1_t1  pvt_mcu_pvtc1_t2  pvt_bpu_pvtc1_t1
    Tue Jun  4 19:04:15 CST 2024:         43511000          45717000           43143000           42959000           44062000
    Tue Jun  4 19:04:16 CST 2024: Temp: pvt_cmn_pvtc1_t1  pvt_cmn_pvtc1_t2  pvt_mcu_pvtc1_t1  pvt_mcu_pvtc1_t2  pvt_bpu_pvtc1_t1
    Tue Jun  4 19:04:16 CST 2024:         47371000          46819000           48474000           48658000           49393000
    Tue Jun  4 19:04:17 CST 2024: Temp: pvt_cmn_pvtc1_t1  pvt_cmn_pvtc1_t2  pvt_mcu_pvtc1_t1  pvt_mcu_pvtc1_t2  pvt_bpu_pvtc1_t1
    Tue Jun  4 19:04:17 CST 2024:         49025000          48106000           50496000           49944000           51231000

#### 5.4.3.2. DDR带宽

并行跑多个用例时，会通过hrut_ddr工具，每秒实时将DDR带宽信息保存到/map/benchmark_tool/monitor/output/ddr_bandwidth文件中。

    root@hobot:/map/benchmark_tool/monitor/output# head -n 40 ddr_bandwidth
    Thu Jun 13 23:07:51 CST 2024
    ddr monitors devices all enabled
    subsys enabled:     all
    cmd output enabled
    sample config:
        period: 1000000, num: 100

    Elapsed time[1000.005] ms   localtime: 2024-06-13 23:07:52.043379
    ---------------------------------------------------------
                    Perf(MiB/s)|  Range1:all|   Bandwidth
    ---------------------------------------------------------
                            Read|        7523|        7477
    ---------------------------------------------------------
                            Write|         989|         968
    ---------------------------------------------------------

    Elapsed time[2000.006] ms   localtime: 2024-06-13 23:07:53.043380
    ---------------------------------------------------------
                    Perf(MiB/s)|  Range1:all|   Bandwidth
    ---------------------------------------------------------
                            Read|       18960|       18957
    ---------------------------------------------------------
                            Write|        1007|        1002
    ---------------------------------------------------------

    Elapsed time[2999.997] ms   localtime: 2024-06-13 23:07:54.043371
    ---------------------------------------------------------
                    Perf(MiB/s)|  Range1:all|   Bandwidth
    ---------------------------------------------------------
                            Read|       18860|       18858
    ---------------------------------------------------------
                            Write|         932|         928
    ---------------------------------------------------------

    Elapsed time[4000.000] ms   localtime: 2024-06-13 23:07:55.043374
    ---------------------------------------------------------
                    Perf(MiB/s)|  Range1:all|   Bandwidth
    ---------------------------------------------------------
                            Read|       18789|       18786
    ---------------------------------------------------------

#### 5.4.3.3. 运行期间log

为防止并行跑多用例时，各个负载用例log同时输出到终端错乱，默认将各负载用例运行期间的log保存到各用例对应的output/data文件中：

    root@hobot:/map/benchmark_tool/bpu/output# cat data
    ###################################
    Set bpu ratio is: 100
    ###################################
    ###################################
    Set bpu ratio is: 100
    ###################################

### 5.4.4. 终止运行

由于各负载用例都会在后台运行，所以终端执行Ctrl+C后，无法彻底终止用例，需额外执行如下命令：

终止所有benchmark负载用例和监控程序：

    root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -e

终止单个benchmark负载用例，以cpu为例：

    root@hobot:/map/benchmark_tool# bash monitor/monitor_cpu.sh -e

终止所有监控程序：

    root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -E all

终止单个监控程序，以vdsp为例：

    root@hobot:/map/benchmark_tool# bash monitor/monitor.sh -E vdsp

## 5.5. 静态指标工具

### 5.5.1. 工具概述

本工具可同时跑CPU、BPU、VDSP、Memory、Storage和OS的用例，并将运行所得静态指标记录到csv文件中，用于获取模块静态指标信息。

本工具位于 Build 环境建立 中J6X全量代码编译产物的 `./out/release-gcc_12.2-64/target/product/tools/static_indicator_benchmark_tool.7z`。

以上软件包需手动解压到板端，解压后的目录结构如下：

    .
    ├── 01_CPU_core
    ├── 02_BPU
    ├── 03_VDSP
    ├── 04_Memory
    ├── 05_Storage
    ├── 06_OS
    └── run.sh

### 5.5.2. 运行

编译服务器参考 Build 环境建立 编译完J6X全量代码后，将软件包通过scp命令传至板端的/map，假设板端网络已通，且ip为board_ip：

    user.name@compile-server:~/work/J6/out/release-gcc_12.2-64/target/product/tools$ scp static_indicator_benchmark_tool.7z root@board_ip:/map

板端解压至/map/static_indicator_benchmark目录下：

    root@hobot:/map# mkdir static_indicator_benchmark
    root@hobot:/map# 7z x static_indicator_benchmark_tool.7z -o/map/static_indicator_benchmark/

执行如下命令，默认同时跑CPU、BPU、VDSP、Memory、Storage和OS的用例：

    root@hobot:/map/static_indicator_benchmark# bash run.sh

输出结果在/map/static_indicator_benchmark/output/static_indicator_benchmark_results_xxx.csv文件中。

也可单独执行用例，如CPU：

    root@hobot:/map/static_indicator_benchmark/01_CPU_core# bash run.sh

执行结果在对应的output/static_indicator_benchmark_results_xxx.csv文件中，以下为输出示例：

    root@hobot:/map/static_indicator_benchmark/01_CPU_core/output# cat static_indicator_benchmark_results_2024_01_27_19_25_36.csv
    ---- 01 CPU Core ----
    dhrystone test:
    dhrystone,  35901815 , lps
    DMIPS,  61.296

    whetstone-double test:
    Calibrate
        0.00 Seconds          1   Passes (x 100)
        0.01 Seconds          5   Passes (x 100)
        0.05 Seconds         25   Passes (x 100)
        0.23 Seconds        125   Passes (x 100)
        1.11 Seconds        625   Passes (x 100)

    Use 5646  passes (x 100)

            Double Precision C/C++ Whetstone Benchmark

    Loop content                  Result              MFLOPS      MOPS   Seconds

    N1 floating point     -1.12398255667391744      1142.569              0.095
    N2 floating point     -1.12187079889291219      1102.110              0.689
    N3 if then else        1.00000000000000000               11961.375    0.049
    N4 fixed point        12.00000000000000000               355697996.813    0.000
    N5 sin/cos etc.        0.49902937281518261                 150.039    3.131
    N6 floating point      0.99999987890767417       806.871              3.774
    N7 assignments         3.00000000000000000                1999.434    0.522
    N8 exp/sqrt etc.       0.75100163018454191                 121.328    1.731

    MWIPS                                           5651.411              9.990