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
    +关注

    关注

    32

    文章

    1664

    浏览量

    45543
  • 树莓派
    +关注

    关注

    122

    文章

    2086

    浏览量

    110985
  • RTThread
    +关注

    关注

    8

    文章

    132

    浏览量

    42887

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2026 RT-Thread全球技术大会议程正式发布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)是专注于基础软件技术创新与落地的嵌入式技术年度盛会,串联全球顶尖芯片厂商、创新
    的头像 发表于 05-21 18:35 141次阅读
    2026 <b class='flag-5'>RT-Thread</b>全球技术大会议程正式发布!

    RT-Thread 用上 HyperRAM——e2studio 工程配置详解 | 技术集结

    的帖子中介绍如何在e2sutido中结合RT-Thread的代码仓库(使用的是最新的RT-Thread版本),在e2stduio中调试和下载RT-Thread工程。配
    的头像 发表于 04-27 18:07 9596次阅读
    让 <b class='flag-5'>RT-Thread</b> 用上 HyperRAM——e2studio 工程配置详解 | 技术集结

    恩智浦亮相RT-Thread 20周年开发者大会

    日前,“开源向实·生产力进化启示录”全球峰会暨RT-Thread 20周年开发者大会在上海成功举办,恩智浦作为RT-Thread的紧密合作伙伴,在活动中重磅亮相,展示双方在共建RT-Thread OS开发生态方面的新成果、新方案
    的头像 发表于 01-26 09:07 883次阅读

    RT-Thread首款低功耗AI产品预售: Edgi Talk

    亲爱的RT-Thread开发者,我们非常激动的与您分享,RT-Thread与英飞凌联合打造的基于英飞凌PSOCEdge系列微控制器的低功耗AI产品EdgiTalk,即将于今日正式开启预售
    的头像 发表于 01-22 11:55 1772次阅读
    <b class='flag-5'>RT-Thread</b>首款低功耗AI产品预售: Edgi Talk

    首搭RT-Thread程翧车控平台| RT-Thread程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    在智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠性的双重考验。依赖单一硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解决方案
    的头像 发表于 10-31 11:53 1443次阅读
    首搭<b class='flag-5'>RT-Thread</b>程翧车控平台| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型开发平台正式上市!| 产品动态

    2025年RT-Thread开发者巡回培训报名正式启动!

    亲爱的RT-Thread社区成员们:新程再启,共赴热爱!2025年RT-Thread开发者巡回培训正式启动报名!今年,我们选择了西安、武汉、北京、杭州、深圳、上海、成都这7座城市,为大家带来
    的头像 发表于 09-27 10:39 2529次阅读
    2025年<b class='flag-5'>RT-Thread</b>开发者巡回培训报名正式启动!

    rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?

    rt-thread studio2.2.9如何使用最新的RT-Thread v5.2.0 released? 原先以为修改index_all.json,发现联网的时候,会自动覆盖 另lastet版本
    发表于 09-16 06:06

    STM32cubeMX生成配置rt-thread引用问题求解

    如题,本人小白,刚接触rt-thread,STM32F1/4简便配置起见利用cubeMX自动生成,测试几次后直接蒙了,不知道哪些文件是rt-thread项目必须的,网上说法也五花八门,
    发表于 09-12 07:21

    Windows上使用ENV工具开发基于先楫MCU的RT-Thread应用

    前言Env是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig提供了简单易用的配置剪裁
    的头像 发表于 08-29 12:22 1881次阅读
    Windows上使用ENV工具开发基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用

    在Ubuntu上开发基于先楫MCU的RT-Thread应用指南

    1、前言RT-ThreadEnv是RT-Thread推出的开发辅助工具,针对基于RT-Thread操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的menuconfig
    的头像 发表于 08-29 12:22 2285次阅读
    在Ubuntu上开发基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用指南

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    知识与实际应用。本书内容丰富、循序渐进,涵盖从RT-Thread的基础理论到高级应用的完整知识体系,并通过大量实践案例进行讲解。全书共15章,内容包括RT-Thre
    的头像 发表于 08-24 10:05 1449次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作系统<b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    RT-Thread 遇上 Rust:安全内核 RusT-Thread 的诞生

    大家好,我们是中国科学技术大学操作系统原理与设计(H)课oooooS小组。这个项目是我们的课程大作业:参考RT-Thread架构,使用Rust搭建一个原生的嵌入式操作系统内核。初识Rust是因为xk
    的头像 发表于 08-02 11:03 3844次阅读
    <b class='flag-5'>RT-Thread</b> 遇上 Rust:安全内核 RusT-<b class='flag-5'>Thread</b> 的诞生

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术创新与开源生态
    的头像 发表于 07-04 09:04 2927次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    深度剖析 RT-Thread 线程调度流程

    RT-Thread调度第一个线程的主要流程分如下:rtthread_startup:RTT的启动函数,主要负责板级驱动,调度器,系统线程初始化,启动调度的工作
    的头像 发表于 06-25 18:24 2039次阅读
    深度剖析 <b class='flag-5'>RT-Thread</b> 线程调度流程

    揭秘RT-Thread上的AUTOSAR CP系统

    本文探讨了RT-Thread与AUTOSARCP的融合,解决车载ECU开发中实时性、安全性与灵活性的平衡问题。通过分层安全内核(rt-safetyos/autoos)和工具链整合,兼容AUTOSAR
    的头像 发表于 06-23 20:22 3557次阅读
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系统