注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
fangkaixin的个人空间 https://home.eeworld.com.cn/space-uid-695502.html [收藏] [复制] [分享] [RSS]
日志

【STM32MP135F-DK】核心功能评估

已有 323 次阅读2023-12-17 20:30 |个人分类:STM32MP1

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



           
  1. 安装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中,说明执行生效了

           

  2.        
  3. 应用程序测试:交叉编译hello-world样例

            ST官方wiki文档提供了hello-world样例程序

           

           

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

           

  4.        
  5. 远程调试环境



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



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

           

  2.        
  3. 配置ip地址,使开发板和PC互通

           

           

            wsl2也可以ping通开发板

           

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

            用putty进行ssh连接测试:

           

           

           

  6.        
  7. 可以正常通信,到wsl2中拷贝编译好的应用程序到开发板中运行





ssh到开发板中运行




效果如下





           
  1. 处理器性能评估




           
  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

  2.        
  3. sysbench多线程性能测试

            安装:直接apt install sysbench

            测试4个线程结果如下

           

  4.        
  5. DDR性能测试




本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章