0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用RT-Thread对树莓派4进行性能测试?

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2021-02-20 17:17 次阅读

测试背景

树莓派4是芯巴客社区非常热门的一款创客电脑,是全世界单板电脑的一个新标杆,作为Raspberry Pi 最新一代的产品,并且得益于处理器芯片使用了4个Cortex A72架构的计算核心,主屏高达1.5GHz,具有接近日常办公电脑的性能。

近年来随着物联网行业的发展,涌现出很多优秀的物联网操作系统IoT OS),这些IoT OS的内核以LinuxVxWorksRTOS等为基础,常见的RTOS有uCOS、ChibiOSFreeRTOSRT-Thread等。今天我们要用来测试树莓派4的就是小而美的RT-Thread(简称RTT),他是国人自主开发并且是目前国内最广泛使用的开源RTOS。

RTT最近提供了树莓派4的板级支撑,我们可以从RTT源码的SBC目录找到树莓派4的分支。通过RTT系统,树莓派可以与其他主流的Cortex-M内核的单片机在相同的系统下进行跑分测试,这是件非常有趣的事情。于是便有了今天这个评测。

考虑到部分时间宝贵玩家没有时间看完全文,我们把重要的内容放在最前面汇报,直接说重点,树莓派4的测试成绩是3.772 DMIPS/MHz。该计算速度达到了行业内领先水平。全剧终^_^

玩笑开大了,小伙伴们,我们收。

编译环境搭建

树莓派的RTT系统在windows下使用RT-Studio作为IDE,编译环境通过ENV工具实现,其中编译器ARM GCC集成在ENV工具里。当然,您也可以像我一样自定义最小化搭建这个编译环境。

我先安装了env工具。注意前面那个“env工具”上的蓝色带下划线的超链接符号了吗?大家可以点进去下载了。env工具下载后解压到你喜欢的路径便可。

然后安装gcc工具到env文件夹下的编译工具目录,我用的是gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf。发现这里的“gcc工具”又有超链接符号了吗?大家又可以点进去下载了。

接下来,把gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf解压出来放到env的工具目录里。完成后的路径应该是长这样(我特意在描述路径时省略了盘符和env上一级的目录,也许有的同学是放在program files目录,而有的同学是直接放在根目录):

env/tools/gnu_gcc/arm_gcc/gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf

最后,下载RTT的源代码,命令如下:

git clone https://github.com/RT-Thread/rt-thread.git

RTT源码下载完毕后,进入rt-thread/bsp/raspberry-pi/raspi4-64路径,修改一下rtconfig.py文件,把EXEC_PATH的值修改到一直指到gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf下面的bin目录。然后,在当前路径下(raspi4-64)打开env,在env里输入scons回车。

如果你发现scons回车后编译报错信息如下,这表明环境搭建完成。至于怎么解决这个报错,后面我们再填坑。

07358550-71ad-11eb-8b86-12bb97331649.jpg

别走开,下面的第3小节教您修复方法。

scons编译报错修复方法

也许你跟着RTT源码里的readme教程一步步做,也卡在scons这一步了,那么我的这一小节教程可以帮到您。

scons报错原理很简单,它与源代码被其他项目编译过有关。

解决的思路很简单,我们只需要先执行一下清理。

清理命令:

scons -c

然后,你就可以正常使用scons编译了。

解决过程的截图如下:

0794deba-71ad-11eb-8b86-12bb97331649.jpg

编译完成后会在raspi4-64目录生成一个rtthread.bin文件,把它放到树莓派系统TF卡的boot目录里,修改boot目录里的config.txt的内容为如下:

enable_uart=1
arm_64bit=1
kernel=rtthread.bin
core_freq=250

以上这个config.txt文件设置了串口调试和内核文件,并把主频设置为250MHz。会玩的小伙伴还可以把主频设置高一点。

树莓派4串口调试使用方法

给树莓派的调试串口接上串口调试线,注意这里5V接口是不需要连接的,我们只使用GND、TX和RX。

确保TF卡插好后,先把USB转串口模块插到电脑上,启动串口调试工具,然后给树莓派上电。注意树莓派上电在最后做,顺序不要反。你应该能在串口调试助手里看到下图的启动打印输出。我的这个RTT系统是新编译的,所以编译日期是今天,1月20日。串口调试打印如下图所示:

0a140b7a-71ad-11eb-8b86-12bb97331649.jpg

给RTT系统增加Dhrystone软件

下面我们回到RTT系统编译环境,重新制作一个带有性能跑分软件的系统。

在前面env环境里输入menuconfig回车进入RTT内核设置,在online packages里的tools packages里找到DHRYSTONE,按空格给他打上勾,如下图所示。

0a652140-71ad-11eb-8b86-12bb97331649.jpg

Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响。因此我们测试时候一定要把编译器版本和编译时候的优化级别也一起考虑,尽量不要把不同优化级别的程序放在一起比较。

另外,上图里另一个CoreMark也是个跑分软件,但是我测试有些问题,先不管那个CoreMark。

编译器设置文件在rtconfig.py,本次使用的gcc版本为8.3,如下图所示

0ab48500-71ad-11eb-8b86-12bb97331649.jpg

默认优化级别是O2,如下图所示,我们先用这个默认优化级别把Dhrystone的编译过程走通,后一小节再做O0级别优化的测试。

0b08518a-71ad-11eb-8b86-12bb97331649.jpg

Dhrystone属于online package,没有集成在默认的源码里,需要在线下载,做完menuconfig以后还需要用命令pkgs update把Dhrystone的源码下载,如下图所示。这步很重要,别忘了下载,不然白白让费编译时间。

0b56c022-71ad-11eb-8b86-12bb97331649.jpg

用scones命令编译出新的rtthread.bin,并放入树莓派的boot目录替换。这次启动后可以用help命令查看可以使用的命令,并找到dhrystone_test,如下图所示:

0ba3e6b8-71ad-11eb-8b86-12bb97331649.jpg

跑一下试试,默认参数是循环320000次,如下图所示:

0bebc942-71ad-11eb-8b86-12bb97331649.jpg

因为速度太快,来不及计时,所以测试失败,如下图所示:

0c3c9ca0-71ad-11eb-8b86-12bb97331649.jpg

因此,接下来,我们要回去修改一下menuconfig的设置参数,给循环次数再多加两个0...

原文标题:测评|使用RT-Thread对树莓派4进行性能测试

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38868
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104737
  • RTThread
    +关注

    关注

    7

    文章

    129

    浏览量

    40518

原文标题:测评|使用RT-Thread对树莓派4进行性能测试

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 04-16 08:35 88次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深嵌入式软件工程师农晓明老师为您讲
    的头像 发表于 03-27 11:36 420次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到RT-Thread资深
    的头像 发表于 03-27 08:34 151次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    基于rt-thread的socket通信设计

    最近再研究 rt-thread 的通信 ,想设计出 eps8266(多个) rt-thread(作为中控) 服务器的通信框架,使用的开发板是 潘多拉
    的头像 发表于 10-13 15:02 687次阅读
    基于<b class='flag-5'>rt-thread</b>的socket通信设计

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 570次阅读
    试用<b class='flag-5'>RT-Thread</b> Studio(VSCode)

    RT-Thread v5.0.2 发布

    RT-Thread 代码仓库地址: ●  https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本发布日志详情: ●  htt
    的头像 发表于 10-10 18:45 775次阅读
    <b class='flag-5'>RT-Thread</b> v5.0.2 发布

    使用RT-Thread Master+QEMU模拟器进行RT-Thread原型快速开发

    前段时间分别在Win和Mac M1/M2 Silicon硬件环境下折腾了VS Code + RT-Thread的编译问题。
    的头像 发表于 09-27 14:50 1877次阅读
    使用<b class='flag-5'>RT-Thread</b> Master+QEMU模拟器<b class='flag-5'>进行</b><b class='flag-5'>RT-Thread</b>原型快速开发

    基于 RT-Thread 的 RoboMaster 电控框架(一)

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择 RT-Thread 进行项目开发
    的头像 发表于 09-19 19:55 416次阅读

    基于RT-Thread的RoboMaster电控框架设计

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择 RT-Thread 进行项目开发。
    发表于 09-06 15:21 408次阅读

    新书上架|RT-Thread带你解密“芯”世界

    夏木荫荫,人间八月,RT-Thread又上新了!自2018年RT-Thread首本书籍问世后,越来越多的创作者因为RT-Thread的自主可控、稳定可靠、友好生态,把RT-Thread
    的头像 发表于 08-22 20:10 452次阅读
    新书上架|<b class='flag-5'>RT-Thread</b>带你解密“芯”世界

    使用RT-Thread Studio进行智能家居终端的设计

    本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等功能。
    的头像 发表于 07-28 16:41 1377次阅读
    使用<b class='flag-5'>RT-Thread</b> Studio<b class='flag-5'>进行</b>智能家居终端的设计

    教你手上没有开发板如何跑RT-THREAD STM32应用?

    首先打开 RT-Thread Studio,新建RT-Thread
    的头像 发表于 07-18 16:09 1050次阅读
    教你手上没有开发板如何跑<b class='flag-5'>RT-THREAD</b> STM32应用?

    RT-Thread中的Github Actions

    RT-Thread中一共有五个Github Action(rt-thread/.github/workflow) 分别是: RT-Thread BSP build check(.github
    的头像 发表于 06-01 03:10 351次阅读
    <b class='flag-5'>RT-Thread</b>中的Github Actions

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 2580次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习

    如何在RT-Thread OS环境下使用ncnn进行AI推理

    今天简报较短,主要演示一下如何在RT-Thread OS环境下使用ncnn进行AI推理
    的头像 发表于 05-04 16:29 807次阅读
    如何在<b class='flag-5'>RT-Thread</b> OS环境下使用ncnn<b class='flag-5'>进行</b>AI推理