测试背景
树莓派4是芯巴客社区非常热门的一款创客小电脑,是全世界单板电脑的一个新标杆,作为Raspberry Pi 最新一代的产品,并且得益于处理器芯片使用了4个Cortex A72架构的计算核心,主屏高达1.5GHz,具有接近日常办公电脑的性能。
近年来随着物联网行业的发展,涌现出很多优秀的物联网操作系统(IoT OS),这些IoT OS的内核以Linux、VxWorks、RTOS等为基础,常见的RTOS有uCOS、ChibiOS、FreeRTOS、RT-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回车后编译报错信息如下,这表明环境搭建完成。至于怎么解决这个报错,后面我们再填坑。

别走开,下面的第3小节教您修复方法。
scons编译报错修复方法
也许你跟着RTT源码里的readme教程一步步做,也卡在scons这一步了,那么我的这一小节教程可以帮到您。
scons报错原理很简单,它与源代码被其他项目编译过有关。
解决的思路很简单,我们只需要先执行一下清理。
清理命令:
scons -c
然后,你就可以正常使用scons编译了。
解决过程的截图如下:

编译完成后会在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日。串口调试打印如下图所示:

给RTT系统增加Dhrystone软件
下面我们回到RTT系统编译环境,重新制作一个带有性能跑分软件的系统。
在前面env环境里输入menuconfig回车进入RTT内核设置,在online packages里的tools packages里找到DHRYSTONE,按空格给他打上勾,如下图所示。

Dhrystone是测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。程序是用C语言编写的,因此C编译器的编译效率对测试结果也有很大影响。因此我们测试时候一定要把编译器版本和编译时候的优化级别也一起考虑,尽量不要把不同优化级别的程序放在一起比较。
另外,上图里另一个CoreMark也是个跑分软件,但是我测试有些问题,先不管那个CoreMark。
编译器设置文件在rtconfig.py,本次使用的gcc版本为8.3,如下图所示

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

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

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

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

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

因此,接下来,我们要回去修改一下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 快速原型开发平台正式上市!| 产品动态
2025年RT-Thread开发者巡回培训报名正式启动!
rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?
STM32cubeMX生成配置rt-thread引用问题求解
Windows上使用ENV工具开发基于先楫MCU的RT-Thread应用
在Ubuntu上开发基于先楫MCU的RT-Thread应用指南
【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结
RT-Thread 遇上 Rust:安全内核 RusT-Thread 的诞生
RT-Thread荣获2025优秀开源项目 | 新闻速递
揭秘RT-Thread上的AUTOSAR CP系统
2025 RT-Thread全球技术大会议程正式发布!
RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进
中新社:RT-Thread携“睿擎平台”亮相工博会 | 媒体视角
如何将RT-Thread移植到NXP MCUXPressoIDE上

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