赵美京₁₉⁸⁸⁸ 发表于 2024-3-27 11:25:57

【树莓派5 测评】 + 03.CPU、DDR与蓝牙测试(zmj)

本帖最后由 赵美京₁₉⁸⁸⁸ 于 2024-3-27 11:27 编辑

【树莓派5 测评】 + 03.CPU、DDR与蓝牙测试(zmj)

1.      CPU性能测试    .
1.1      查看CPU信息树莓派5采用了四核 2.4 GHz Cortex-A76 Arm CPU,支持32-bit/64-bit两种模式指令集。运行时CPU的低功耗模式CPU工作频率1.5GHz,高性能模式CPU工作频率2.4GHz。通过查看CPU信息的反馈结果可以确认上述信息。//------查看CPU信息:lscpu
//---指令
lscpu
cat /proc/cpuinfo
//---结果
指令集: Cortex-A76 Arm
4核CPU:编号0~3
//------查看CPU频率:
//---指令
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_cur_freq
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_min_freq
//---结果
工作频率:1.5GHz~2.4GHz
当前频率:1.5GHz
//---借助vcgencmd查看CPU频率
vcgencmd measure_clock arm
//------示例Log信息
zhaomeijing@raspberrypi5:~$ lscpu
Architecture:            aarch64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                  4
On-line CPU(s) list:   0-3
Vendor ID:               ARM
Model name:            Cortex-A76
    Model:               1
    Thread(s) per core:1
    Core(s) per cluster: 4
    Socket(s):         -
    Cluster(s):          1
    Stepping:            r4p1
    CPU(s) scaling MHz:62%
    CPU max MHz:         2400.0000
    CPU min MHz:         1500.0000
    BogoMIPS:            108.00
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
Vulnerabilities:
Gather data sampling:Not affected
Itlb multihit:         Not affected
L1tf:                  Not affected
Mds:                   Not affected
Meltdown:            Not affected
Mmio stale data:       Not affected
Retbleed:            Not affected
Spec rstack overflow:Not affected
Spec store bypass:   Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1:            Mitigation; __user pointer sanitization
Spectre v2:            Mitigation; CSV2, BHB
Srbds:               Not affected
Tsx async abort:       Not affected
zhaomeijing@raspberrypi5:~$ cat /proc/cpuinfo
processor       : 0
BogoMIPS      : 108.00
Features      : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant   : 0x4
CPU part      : 0xd0b
CPU revision    : 1

processor       : 1
BogoMIPS      : 108.00
Features      : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant   : 0x4
CPU part      : 0xd0b
CPU revision    : 1

processor       : 2
BogoMIPS      : 108.00
Features      : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant   : 0x4
CPU part      : 0xd0b
CPU revision    : 1

processor       : 3
BogoMIPS      : 108.00
Features      : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
CPU implementer : 0x41
CPU architecture: 8
CPU variant   : 0x4
CPU part      : 0xd0b
CPU revision    : 1

Revision      : c04170
Serial          : c4197593e8cb6150
Model         : Raspberry Pi 5 Model B Rev 1.0
zhaomeijing@raspberrypi5:~$ sudo cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_cur_freq
1500000
zhaomeijing@raspberrypi5:~$ cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
2400000
zhaomeijing@raspberrypi5:~$ cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_min_freq
1500000
zhaomeijing@raspberrypi5:~$ vcgencmd measure_clock arm
frequency(0)=1500016128
zhaomeijing@raspberrypi5:~$1.2      CoreMark性能测试
1.2.1      CoreMark简介//------CoreMark简介CoreMark是用来衡量嵌入式系统中心处理单元(CPU,或叫做微控制器MCU)性能的标准。该标准于2009年由EEMBC组织的Shay Gla-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。代码使用C语言写成,包含如下的运算法则:列举(寻找并排序),数学矩阵操作(普通矩阵运算)和状态机(用来确定输入流中是否包含有效数字),最后还包括CRC(循环冗余校验)。CoreMark是由EEMBC(Embedded Microprocessor Benchmark Consortium)的Shay Gla-On于2009年提出的一项基准测试程序,CoreMark的主要目标是简化操作,并提供一套测试单核处理器核心的方法。测试标准是在配置参数的组合下单位时间内运行的CoreMark程序次数(单位:CoreMark/MHz),该数字值越大则说明测试的性能越好。目前在嵌入式CPU行业中普遍公认的性能测试指标的标准主要使用以下三种,MIPS、Dhrystone、Coremark,而CoreMark与Dhrystone一样,拥有体积小、方便移植、易于理解、免费并且显示单个数字基准分数。与Dhrystone不同的是,Dhrystone的主要部分实际上暴露了编译器优化工作负载的能力,而不是实际MCU或CPU的能力,的性能,而CoreMark具有特定的运行和报告规则,从而可以避免由于所使用的编译库不同而导致的测试结果难以比较。1.2.2      CoreMark源码获取与编译//------CoreMark源码获取EEMBC 在将 CoreMark 源码托管在 GitHub 上可以访**ithub.com/eembc/coremark直接点击下载获得源码;也可以通过 git 命令下载到本地。//------CoreMark源码获取
//---CoreMark说明
https://www.eembc.org/coremark/
//---直接下载(CoreMark开源代码仓)
https://github.com/eembc/coremark
//---Git下载
git clone https://github.com/eembc/coremark.git
//---编译(生成可执行程序coremark.exe)
make run
或者
makeCoreMark 项目的详细介绍,可以查阅当前目录下 “coremark/docs/html/index.html” 。以下是当前目录的每个文件介绍:#在tree命令的输出中,作了部分删除(不影响分析整个CoreMark工程)
imaginemiracle@:coremark$ tree
.
├── barebones --移植到裸机环境下需要修改的目录
│   ├── core_portme.c --移植的目标平台配置信息
│   ├── core_portme.h --计时以及板级初始化实现
│   ├── core_portme.mak --该子目录的makefile
│   ├── cvt.c
│   └── ee_printf.c --打印函数串口发送实现
├── core_list_join.c --列表操作程序
├── core_main.c --主程序
├── coremark.h --项目配置与数据结构的定义头文件
├── coremark.md5
├── core_matrix.c --矩阵运算程序
├── core_state.c --状态机控制程序
├── core_util.c --CRC计算程序
├── cygwin --x86 cygwin和gcc 3.4(四核,双核和单核系统)的测试代码
│   ├── core_portme.c
│   ├── core_portme.h
│   └── core_portme.mak
├── freebsd --以下同理,是在不同操作系统下的测试代码
│   ├── ...
├── LICENSE.md
├── linux
│   ├── ...
├── linux64
│   ├── ...
├── macos
│   ├── ...
├── Makefile
├── README.md --自述文件,CoreMark项目的基本介绍
├── rtems
│   ├── ...
└──simple
   ├── ...
   └── core_portme.mak1.2.3      运行coremark.exe测试性能 运行coremark.exe测试性能,测试得分18078.823671。zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr $ git clone https://github.com/eembc/coremark.git
Cloning into 'coremark'...
remote: Enumerating objects: 379, done.
remote: Counting objects: 100% (163/163), done.
remote: Compressing objects: 100% (61/61), done.
remote: Total 379 (delta 121), reused 115 (delta 97), pack-reused 216
Receiving objects: 100% (379/379), 517.77 KiB | 1.06 MiB/s, done.
Resolving deltas: 100% (217/217), done.
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr $ ll
total 12
drwxr-xr-x3 zhaomeijing zhaomeijing 4096 Mar 24 19:49 ./
drwxr-xr-x3 zhaomeijing zhaomeijing 4096 Mar 24 19:49 ../
drwxr-xr-x 14 zhaomeijing zhaomeijing 4096 Mar 24 19:49 coremark/
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr $ cd coremark/
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr/coremark $ make
(省略编译过程,详细可以参考README.md)
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr/coremark $ ./coremark.exe
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 16594
Total time (secs): 16.594000
Iterations/Sec   : 18078.823671
Iterations       : 300000
Compiler version : GCC12.2.0
Compiler flags   : -O2 -DPERFORMANCE_RUN=1-lrt
Memory location: Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
crclist       : 0xe714
crcmatrix   : 0x1fd7
crcstate      : 0x8e3a
crcfinal      : 0xcc42
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 18078.823671 / GCC12.2.0 -O2 -DPERFORMANCE_RUN=1-lrt / Heap
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr/coremark $
1.3      CPU温度检测此处示例两种获取CPU温度的方式:lm-sensors和lm-sensors是一款linux的硬件监控的软件,可以帮助我们来监控主板,CPU的工作电压,风扇转速、温度等数据。当然,树莓派5还可以通过vcgencmd指令查看温度等信息。//------sensors
//---sensors安装
sudo apt install lm-sensors
//---snesors使用
sensors
//------vcgencmd
//---vcgencmd指令
vcgencmd commands
//---vcgencmd获取温度
vcgencmd measure_temp
//------示例Log信息
zhaomeijing@raspberrypi5:~$ sudo apt install lm-sensors
zhaomeijing@raspberrypi5:~$ sensors
rpi_volt-isa-0000
Adapter: ISA adapter
in0:            N/A

cpu_thermal-virtual-0
Adapter: Virtual device
temp1:      +37.5°C

rp1_adc-isa-0000
Adapter: ISA adapter
in1:         955.00 mV
in2:         2.52 V
in3:         1.40 V
in4:         1.42 V
temp1:      +42.1°C

zhaomeijing@raspberrypi5:~$ vcgencmd commands
commands="commands, set_logging, bootloader_config, bootloader_version, cache_flush, codec_enable pmicrd, pmicwr, read_ring_osc, version, readmr, otp_dump, pmic_read_adc, power_monitor"
zhaomeijing@raspberrypi5:~$ vcgencmd measure_temp
temp=37.8'C
zhaomeijing@raspberrypi5:~$2.      DDR内存性能测试树莓派5开发板采用4GB LPDDR4-SDRAM。2.1      DDR内存基本信息通过“free -h”指令读取内存DDR的使用情况;通过/proc/meminfo 文件读取系统中的内存的参数信息。//------测试工具
free
//---测试指令
free -h
或者
free -m
//---参数解析
-h 参数代表单位为 GByte
-m 参数代表单位为 MByte
total :内存总量
used :被使用的内存量
free :可使用的内存量
//------查看系统内存信息文件
cat /proc/meminfo

//------
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$ free -h
               total      used      free      sharedbuff/cache   available
Mem:         4.0Gi       874Mi       477Mi      82Mi       2.8Gi       3.1Gi
Swap:         99Mi          0B      99Mi
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$ free -m
               total      used      free      sharedbuff/cache   available
Mem:            4045         874         477          82      2840      3170
Swap:             99         0          99
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$ cat /proc/meminfo
MemTotal:      4142304 kB
MemFree:          488816 kB
MemAvailable:    3246416 kB
Buffers:          293648 kB
Cached:          2447392 kB
SwapCached:            0 kB
Active:          1915696 kB
Inactive:      1390080 kB
Active(anon):   649056 kB
Inactive(anon):      0 kB
Active(file):    1266640 kB
Inactive(file):1390080 kB
Unevictable:       41568 kB
Mlocked:            32 kB
SwapTotal:      102384 kB
SwapFree:         102384 kB
Zswap:               0 kB
Zswapped:            0 kB
Dirty:               0 kB
Writeback:             0 kB
AnonPages:      606528 kB
Mapped:         259216 kB
Shmem:             84320 kB
KReclaimable:   167568 kB
Slab:             213360 kB
SReclaimable:   167568 kB
SUnreclaim:      45792 kB
KernelStack:      6672 kB
PageTables:      18288 kB
SecPageTables:         0 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:   2173536 kB
Committed_AS:    3168656 kB
VmallocTotal:   68180246528 kB
VmallocUsed:       22672 kB
VmallocChunk:          0 kB
Percpu:             1280 kB
CmaTotal:         327680 kB
CmaFree:          195872 kB
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$2.2      内存功能压力测试-memtester内存功能压力测试-memtester需要安装://------安装内存功能压力测试工具memtester
sudo apt install memtester -y
或者
sudo apt-get install memtester -ymemtester通过给定测试内存的大小和次数, 可以对系统现有的内存进行压力上的测试。例如指定内存大小 512MB,测试次数为 10,则测试命令为“memtester 512M 10"。下列以使用 512MB 内存空间,单次测试为例: //------测试工具(MYD-YG2LX系统已带)
memtester
//------测试指令
memtester 512M 1
//---指令说明
指定内存大小 512MB,测试次数为 1
//---示例
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$ memtester 512M 1
memtester version 4.6.0 (64-bit)
Copyright (C) 2001-2020 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 16384
pagesizemask is 0xffffffffffffc000
want 512MB (536870912 bytes)
got512MB (536870912 bytes), trying mlock ...locked.
Loop 1/1:
Stuck Address       : ok
Random Value      : ok
Compare XOR         : ok
Compare SUB         : ok
Compare MUL         : ok
Compare DIV         : ok
Compare OR          : ok
Compare AND         : ok
Sequential Increment: ok
Solid Bits          : ok
Block Sequential    : ok
Checkerboard      : ok
Bit Spread          : ok
Bit Flip            : ok
Walking Ones      : ok
Walking Zeroes      : ok
8-bit Writes      : ok
16-bit Writes       : ok

Done.
zhaomeijing@raspberrypi5:~/workspace/01_cpu_ddr$3.      蓝牙功能测试(蓝牙键盘)树莓派5自带蓝牙5.0 /低功耗蓝牙(BLE),手上有一块蓝牙键盘正好用来测试(Device 15:03:02:62:10:C4 BT 5.1 keyboard-1503)。测试流程和详细日志参考下方://------蓝牙软件安装(准备工作,官方系统该镜像已经安装,此处仅作安装说明)
a.先升级软件安装包:
sudo apt-get update
b.下载蓝牙管理工具:
sudo apt-get install bluetooth bluez blueman
//------蓝牙连接使用(测试蓝牙键盘连接)
a.首先使待链接树莓派的蓝牙键盘处于被发现状态;
b.然后扫描蓝牙设备,记录设备蓝牙地址
sudo bluetoothctl scan on
借助grep指令查找具体某个设备
sudo bluetoothctl scan on | grep "1503"
c.蓝牙配对设备(需要使用设备地址)
sudo bluetoothctl pair Device-Address
sudo bluetoothctl pair 15:03:02:62:10:C4
d.查看蓝牙
bluetoothctl
//------示例Log日志
zhaomeijing@raspberrypi5:~/workspace $ sudo bluetoothctl scan on
zhaomeijing@raspberrypi5:~/workspace $ sudo bluetoothctl list
Controller D8:3A:DD:BF:C2:C7 raspberrypi5
zhaomeijing@raspberrypi5:~/workspace $ sudo bluetoothctl scan on | grep "1503"
Device 15:03:02:62:10:C4 BT 5.1 keyboard-1503
zhaomeijing@raspberrypi5:~/workspace $ sudo bluetoothctl pair 15:03:02:62:10:C4
Attempting to pair with 15:03:02:62:10:C4
Device 15:03:02:62:10:C4 Connected: yes
Device 15:03:02:62:10:C4 Bonded: yes
Device 15:03:02:62:10:C4 Modalias: usb:v0A5Cp8503d011B
Device 15:03:02:62:10:C4 UUIDs: 00001000-0000-1000-8000-00805f9b34fb
Device 15:03:02:62:10:C4 UUIDs: 00001124-0000-1000-8000-00805f9b34fb
Device 15:03:02:62:10:C4 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
Device 15:03:02:62:10:C4 ServicesResolved: yes
Device 15:03:02:62:10:C4 Paired: yes
Pairing successful
zhaomeijing@raspberrypi5:~/workspace $ bluetoothctl
Agent registered
#show
Controller D8:3A:DD:BF:C2:C7 (public)
      Name: raspberrypi5
      Alias: raspberrypi5
      Class: 0x006c0000
      Powered: yes
      Discoverable: no
      DiscoverableTimeout: 0x000000b4
      Pairable: yes
      UUID: A/V Remote Control      (0000110e-0000-1000-8000-00805f9b34fb)
      UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
      UUID: PnP Information         (00001200-0000-1000-8000-00805f9b34fb)
      UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
      UUID: Audio Source            (0000110a-0000-1000-8000-00805f9b34fb)
      UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
      UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
      UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
      UUID: Device Information      (0000180a-0000-1000-8000-00805f9b34fb)
      UUID: Handsfree               (0000111e-0000-1000-8000-00805f9b34fb)
      Modalias: usb:v1D6Bp0246d0542
      Discovering: no
      Roles: central
      Roles: peripheral
Advertising Features:
      ActiveInstances: 0x00 (0)
      SupportedInstances: 0x05 (5)
      SupportedIncludes: tx-power
      SupportedIncludes: appearance
      SupportedIncludes: local-name
# devices
Device 15:03:02:62:10:C4 BT 5.1 keyboard-1503
# exit
zhaomeijing@raspberrypi5:~/workspace $

//------end




页: [1]
查看完整版本: 【树莓派5 测评】 + 03.CPU、DDR与蓝牙测试(zmj)

Baidu
map