961|0

92

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【BIGTREETECH PI开发板】+02.CPU/DDR功能测试(zmj) [复制链接]

 

【BIGTREETECH PI开发板】+02.CPU/DDR功能测试(zmj)

本章节针对 BIGTREETECH PI 开发板例进行CPU/DDR功能测试说明。

 

1. U-Boot信息

在U-Boot阶段用户可以查看到CPU和DDR的基本信息。如图所示用户可以查看到如下信息:

//------U-Boot信息
CPU:   Allwinner H616 (SUN50I)
Model: BQ-H616
I2C:   ready
DRAM:  1 GiB
//------信息解读
1. CPU: 全志 H616,四核 Cortex-A53 @1.5GHz
2. RAM: 1GB DDR3L SDRAM

//------U-Boot信息截图:

2. CPU性能测试

2.1 查看CPU信息

查看CPU信息,反馈结果是ARM Cortex-A55四核,支持32-bit/64-bit两种模式。

//------查看CPU信息:lscpu
//---指令
lscpu
cat /proc/cpuinfo
//---结果
指令集:Cortex-A53 64bit
4核CPU:编号0~3
//------查看CPU频率:
//---指令
sudo cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_cur_freq
sudo cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_max_freq
sudo cat /sys/bus/cpu/devices/cpu0/cpufreq/cpuinfo_min_freq
//------示例Log信息:
biqu@BTT-CB1:~/zmj_ws/$ lscpu
Architecture:                    aarch64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          4
On-line CPU(s) list:             0,1,2,3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
Vendor ID:                       ARM
Model:                           0
Model name:                      Cortex-A53
Stepping:                        r2p0
CPU max MHz:                     1200.0000
CPU min MHz:                     150.0000
BogoMIPS:                        48.00
L2 cache:                        256 KiB
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Not affected
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp
biqu@BTT-CB1:~/zmj_ws/$ 

//------其他指令
CPU内核: lscpu | grep 'Core(s) per socket:' | awk '{printf$4}' && echo ""
CPU主频: cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
CPU温度: cat /sys/class/thermal/thermal_zone0/temp

 

2.2 CPU 压力测试

CPU 的压力的测试方式有很多,我们通过 bc 命令来计算圆周率方法来测试 CPU 在运算过程中的稳定性。

//------CPU压力测试:PI(派)运算
//---执行PI(派)运算
echo "scale=5000; 4*a(1)" | bc -l -q &
//---计时模式执行PI(派)运算:统计时间只能当作参考
time echo "scale=5000; 4*a(1)" | bc -l -q &
上述命令将在后台计算的 PI,并精确到小数点后 5000 位,计算过程需要一段时间。
约 1.25 分钟后,PI 结果被计算出来。 在此期间 CPU 使用率达到 100%,没有发生异常,说明 CPU 压力测试通过。还可以继续增加精确值,可进一步提高测试压力。

2.3 CoreMark性能测试

2.3.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具有特定的运行和报告规则,从而可以避免由于所使用的编译库不同而导致的测试结果难以比较。

2.3.2 CoreMark源码获取

//------CoreMark源码获取

EEMBC 在将 CoreMark 源码托管在 GitHub 上可以访问github.com/eembc/coremark直接点击下载获得源码;也可以通过 git 命令下载到本地。

//------CoreMark源码获取
//---直接下载
https://github.com/eembc/coremark
//---Git下载
git clone https://github.com/eembc/coremark.git

CoreMark 项目的详细介绍,可以查阅当前目录下 “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.mak

2.3.3 运行coremark.exe测试性能

运行coremark.rvexe测试性能。

//------CoreMark测试
//---指令
./coremark.exe
//---CoreMark得分
CoreMark 1.0 : 4348.456298
//---EEMBC的CoreMark结果(CoreMark得分排行)
https://www.eembc.org/coremark/scores.php
//---示例
biqu@BTT-CB1:~/zmj_ws/5_coremark/coremark$ ./coremark.exe

 

3. DDR内存性能测试

BIGTREETECH PI开发板采用 1GB DDR3L SDRAM ,下面进行内存测试。

3.1 DDR内存基本信息

通过“free -h”指令读取内存DDR的使用情况。

//------测试工具(BIGTREETECH PI开发板系统已带)
free
//---测试指令
free -h
或者
free -m
//---参数解析
-h 参数代表单位为 GByte
-m 参数代表单位为 MByte
total :内存总量
used :被使用的内存量
free :可使用的内存量

 

3.2 查看内存信息

读取系统中的内存的参数信息,则可以通过/proc/meminfo 文件得到。

//------查看内存信息
cat /proc/meminfo
//---参数解析
MemTotal:所有可用的 RAM 大小,物理内存减去预留位和内核使用
MemFree :LowFree + HighFree
Buffers:用来给块设备做缓存的大小
Cached:文件的缓冲区大小
SwapCached:已经被交换出来的内存。与 I/O 相关
Active:经常(最近)被使用的内存
Inactive:最近不常使用的内存
//---示例
biqu@BTT-CB1:~/zmj_ws/5_coremark/coremark$ cat /proc/meminfo

3.3 内存功能压力测试-memtester

内存功能压力测试-memtester

通过给定测试内存的大小和次数, 可以对系统现有的内存进行压力上的测试。可使用系统工具 memtester 进行测试,如指定内存大小 512MB,测试次数为 10,测试命令为“memtester 512M 10"。

下列以使用 512MB 内存空间,单次测试为例:

//------测试工具(MYD-YG2LX系统已带)
memtester
//------测试指令
memtester 512M 1
//---指令说明
指定内存大小 512MB,测试次数为 1
//---示例
biqu@BTT-CB1:~/zmj_ws/5_coremark/coremark$ memtester 512M 1
memtester version 4.3.0 (64-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).

pagesize is 4096
pagesizemask is 0xfffffffffffff000
want 512MB (536870912 bytes)
got  512MB (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

Done.
biqu@BTT-CB1:~/zmj_ws/5_coremark/coremark$

4. 编译程序测试性能

网络上下载rtl8192fu的驱动,尝试编译测试CPU/DDR性能。

测试结果:编译期间4核CPU跑满,DDR一共占用约0.40GB.

//------编译流程:

//------查看编译进程(htop指令进入查看模式)

 

//------END

点赞 关注
 
 

回复
举报

92

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
启动htop后,DDR增加了0.08GB的占用空间。
 
 
 

您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表