628|0

135

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【STM32MP135F-DK】核心功能评估 [复制链接]

本帖最后由 fangkaixin 于 2023-12-17 22:03 编辑
在上一期中,我们对STM32MP135F-DK探索套件进行了简单的开箱和亮机测试,熟悉了开发环境,并且结合当前的开发环境(基于win10+wsl2)下载安装了必要的工具和软件。这一期里将使用下载好的SDK,对这块板子进行初步的调试与开发,并且完成处理器性能测试与评估。

安装SDK

将下载好的SDK包放到WSL2虚拟机中并解压,我的WSL2虚拟机就作为后续HOST开发环境,用的是Ubuntu20.04


在线安装其他需要用到的包,并且扩展mmc为16个分区,为编译系统内核做准备。如果只是开发应用程序,可以忽略这一步

sudo apt-get update
sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib chrpath socat cpio python3 python3-pip python3-pexpect
sudo apt-get install libssl-dev libgmp-dev libmpc-dev lz4 zstd
sudo apt-get install build-essential libncurses-dev libyaml-dev libssl-dev
sudo apt install python-is-python3
sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html libxml2-utils
echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf

 

解压SKD包


进入到解压好的文件夹下,执行里面的shell脚本安装SDK

需要注意的是,安装过程中会提示修改路径,我选择的默认路径(输入Y后回车),大家也可以存放在自己想要的路径下。安装成功后有一个提示,当在一个新的窗口下使用SDK,需要执行SDK里提供的一个脚本来配置当前窗口的环境变量。我怕自己搞忘了,就把这个脚本添加profile文件里,这样就不用每次手动刷环境变量了。
SDK目录结构
 
先打开脚本文件确认下确实是用来export各种环境变量的

查看当前环境变量测试一下

加入到当前用户的.profile下(~/.profile),或者直接加到系统profile下也可以(/etc/profile)

重启WSL2虚拟机,新建一个shell,发现SDK中的路径已经包含在PATH中,说明执行生效了

应用程序测试:交叉编译hello-world样例
ST官方wiki文档提供了hello-world样例程序



这里由于当前用户下的环境变量都已经设置好了,$(CC)就指代了交叉编译工具链,make之后就得到了aarch64下的应用程序的可执行文件

远程连接

下一步就是将可执行程序导入到开发板中运行,使用ssh远程到开发板即可,ssh服务是默认系统中就自带的,不需要修改配置,登录名为root,无密码。

(1)连接网线,开发板的ETH1,ETH2丝印下的网口分别对应系统中的eth0,eth1网卡,我这里将ETH1连到家里的交换机上,使之和开发用的PC在同一个局域网中

(2)配置ip地址,使开发板和PC互通



wsl2也可以ping通开发板

(3)通过ssh连接,ssh服务已默认开启,而且可以通过root用户免密登录,但比较奇怪的是我在文件系统中找了一下,没有找到ssh的配置文件。
用putty进行ssh连接测试:



(4)到wsl2中拷贝编译好的应用程序到开发板中运行

 ​

(5)在开发板中运行
 
效果如下

处理器性能评估

(1)Dhrystone基准测试:
背景介绍:Dhrystone基准测试是通过执行一系列的算术、逻辑和字符串操作来评估计算机系统的整体性能。测试的结果是每秒钟可以执行的Dhrystone指令数量,即DMIPS(Dhrystone Million Instructions Per Second)。将Dhrystones per second除以1757是为了将结果转换为DMIPS的单位。这个常数1757是经验性的值,用来使得DMIPS的范围在可读性良好的范围内。这样,DMIPS的数值通常比较容易理解和比较。需要注意的是,DMIPS只是一个基准测试的指标,它并不一定完全反映实际应用的性能。在实际情况下,还需要考虑其他因素,如处理器架构、缓存、内存等等。因此,在进行性能比较时,不仅仅依靠DMIPS是不够的,还需要综合考虑其他因素。
github下载源码,交叉编译后将可执行文件拷贝到开发板执行,编译优化参数设置为O2级别


(不需要改代码的同学可以直接在板子上在线安装:apt install dhrystone)

执行测试程序:
echo 50000000 | ./dhrystone
下面贴一下测试结果

Please give the number of runs through the benchmark:
Execution starts, 50000000 runs through Dhrystone
Execution ends
Final values of the variables used in the benchmark:
Int_Glob:            5
        should be:   5
Bool_Glob:           1
        should be:   1
Ch_1_Glob:           A
        should be:   A
Ch_2_Glob:           B
        should be:   B
Arr_1_Glob[8]:       7
        should be:   7
Arr_2_Glob[8][7]:    50000010
        should be:   Number_Of_Runs + 10
Ptr_Glob->
  Ptr_Comp:          90832
        should be:   (implementation-dependent)
  Discr:             0
        should be:   0
  Enum_Comp:         2
        should be:   2
  Int_Comp:          17
        should be:   17
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
  Ptr_Comp:          90832
        should be:   (implementation-dependent), same as above
  Discr:             0
        should be:   0
  Enum_Comp:         1
        should be:   1
  Int_Comp:          18
        should be:   18
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc:           5
        should be:   5
Int_2_Loc:           13
        should be:   13
Int_3_Loc:           7
        should be:   7
Enum_Loc:            1
        should be:   1
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRING
        should be:   DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRING
        should be:   DHRYSTONE PROGRAM, 2'ND STRING
Register option selected?  YES
Microseconds for one run through Dhrystone:     0.3
Dhrystones per Second:                       3851526.1
VAX MIPS rating =   2192.104

BogoMIPS(参考)

 

(2)sysbench多线程性能测试
安装:apt install sysbench
测试4个线程结果如下

(3)DDR性能测试

 
整体来看,STM32MP135F-DK 在仅有一颗单核心32位,最大主频1Ghz的Cortex-A7处理器,linux中的性能表现还是不错的
此帖出自stm32/stm8论坛
点赞 关注
个人签名

矛盾的我

 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表