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

    文章

    1540

    浏览量

    44281
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109709
  • RTThread
    +关注

    关注

    8

    文章

    133

    浏览量

    42544

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    在智能汽车迈向高集成与高安全的时代,VCU/ECU开发正面临效率与可靠性的双重考验。依赖单一硬件或拼凑软件方案的传统模式,已成为制约创新的瓶颈。为此,RT-Thread带来里程碑式的解决方案
    的头像 发表于 10-31 11:53 491次阅读
    首搭<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 1142次阅读
    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 953次阅读
    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 1231次阅读
    在Ubuntu上开发基于先楫MCU的<b class='flag-5'>RT-Thread</b>应用指南

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

    知识与实际应用。本书内容丰富、循序渐进,涵盖从RT-Thread的基础理论到高级应用的完整知识体系,并通过大量实践案例进行讲解。全书共15章,内容包括RT-Thre
    的头像 发表于 08-24 10:05 689次阅读
    【好书推荐】<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 3208次阅读
    <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 2432次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    揭秘RT-Thread上的AUTOSAR CP系统

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

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

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技术大会)是聚焦基础软件技术创新与实践的嵌入式技术盛会,持续推动技术价值转化
    的头像 发表于 05-27 19:28 1072次阅读
    2025 <b class='flag-5'>RT-Thread</b>全球技术大会议程正式发布!

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread作为全球领先
    的头像 发表于 05-21 18:02 1066次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进

    中新社:RT-Thread携“睿擎平台”亮相工博会 | 媒体视角

    4月23日,成都国际工业博览会拉开帷幕。中国新闻网专访RT-Thread睿赛德,以“国产操作系统再亮剑,睿擎平台开启工业新时代”为题,报道了“睿擎工业开发平台”在工博会上首发亮相。中国新闻网专访
    的头像 发表于 04-24 11:16 1107次阅读
    中新社:<b class='flag-5'>RT-Thread</b>携“睿擎平台”亮相工博会 | 媒体视角

    如何将RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。
    的头像 发表于 02-13 10:37 2440次阅读
    如何将<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    全志科技亮相2024 RT-Thread开发者大会

    近日,操作系统厂商睿赛德科技在上海举办“2024 RT-Thread开发者大会”。全志科技作为芯片设计厂商受邀参展并进行了主题分享。会上,全志科技系统软件中心资深架构师进行了名为《拥抱生态,和而共赢
    的头像 发表于 12-31 16:47 1562次阅读