【树莓派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]