UCOS-II/II、FreeRTOS、RTX四大RTOS系统性能对比

大家好,感谢社区提供的板卡。这次的使用对象是安富莱的stm32-v6板卡。由于之前用过安富莱的v4板卡,所以安富莱给我留下了很深的印象,他们开发板的资料很过硬,售后完善,线上qq技术支持也很给力,作为学习,确实是一款很不错的板卡。唯一的是,安富莱很少出视频,其主要是编写pdf教学手册和程序例程。
另外他们的按键检测代码,很紧凑,有单发、连发、长按、短按、上升沿触发、下降沿触发等功能,是我见到最棒的按键检测代码。
stm32-v6是一款基于stm32f429单片机的开发板,整板采用4层板设计,本次选择它的目的,除了测试其能做常用外设开发驱动,安富莱还对它做了一个示波器的例程。虽然示波器的性能不强,但是去十分有意思。另外其支持vnc虚拟屏幕功能。开发者可以不用lcd显示屏幕,直接使用pc屏幕作为自己的开发板屏幕,十分方便。所以这个板子真的很强大。
拿到板子,在我查看他们的网络示波器例程后,发现安富莱只做了基于rtx的例程,并没有做基于ucos、freertos的例程,这样我感到很奇怪。因为安富莱的每个例程都会做三个os版本,唯独这个例程却只制作了一个基于rtx的。他们的技术支持回复是:“freertos的性能不行,所以对这个网络示波器的的应用来说,没有制作这方面的例程”,这让我感到很疑惑,freertos作为一款开源rtos,性能真有这么差么?到底他们之间的差距又有多大?
所以才有这次做ucos-ii、ucos-iii、freertos、rtx系统性能对比测试,本次我只是站在一个使用者的角度,测试四个rtos单一的系统调度性能。尽量使4个rtos处在同一水平上测试:
l 使用相同的硬件平台和相同的资源
l 单片机都使用相同的主频,只是单片机的uart资源
l 4个rtos并非都裁剪到极致,保留信号量、队列、消息等功能。
l 都使用相同的时间片1ms、任务数量、任务堆栈设置一样大小。
l 使用相同的编译工具mdk4.7,采用相同的优化等级。
l 测试任务代码逻辑以及优先级关系保持一致。
本次测试的系统版本为:
rtx v4.73
freertos v8.2.3
ucos-ii v2.92.11
ucos-iii v3.05.00
测试方法是,主要使用rtos的信号量,测试rtos任务切换速度。建立三个任务。
任务a:接收到任务b发的信号量b2a之后,发送信号量a2b;任务优先级率高
任务b:接收到任务a发的信号量a2b之后,发送信号量b2a,并计数;任务优先级低
主任务:初始化时,发送一次信号量b2a,是ab任务开始循环执行。并计时1s,打印出任务切换次数。任务优先级最高。
由于我个人对ucos和freertos比较熟悉,所以就先做了ucos-ii的测试。
一、ucos-ii任务信号量测试
程序的移植过程就不在这里说了,直接开始测试上代码:
建立任务堆栈和信号量,以及任务切换次数计数变量。
编写起始任务,这个任务的优先级最高。
任务a,任务优先级略高。其中红色框起来的代码是测试时候使用的。在任务b中也有类似的代码。
任务b,任务优先级低,但是比系统空闲任务要高。
在任务ab中框起来的代码主要是进行验证程序写的准确性,如果将上文中红色框中注释掉的代码恢复。按照1s的时间来算:a任务获取到信号量,延时100ms,在发送信号量给b;任务b获取到信号量,延时100ms,在发信号给a。ab任务循环,花掉大约是200ms的时间,最后主任务在1s的时间内,计数应该是5次才对。
实际程序也确实是5次,可以证明该例程无误,后面测试的os调度能力的时候,只需要去掉任务ab中的100ms的延时和printf打印即可。
同样的程序,我做了四份,分别基于ucos-ii、ucos-iii、freertos、rtx这个四个rtos系统
测试代码截图:
注释掉rtos任务ab中的延时和串口打印,使用相同的优化等级,分别编译烧录测试代码,串口打印如下:
上图都是在1秒的时间,ab任务调用的次数:
可以看到,就任务切换速度而言,在stm32单片机上rtx确实要快很多,rtx是keil开发的一款rtos,而keil早在2005年就被arm收购,对arm芯片的支持和优化应该也是被安排到日程的。
经过这次测试,虽然rtx在任务切换上的速度上确实要优秀很多,但不能说rtx就是这四款rtos中最优秀的系统,本次测试也仅仅是单一的一个方面,我相信freertos以及其他的os都有它自己的独到优势。
我们作为开发使用者,没有必要去纠结哪个是最强的rtos,我们只需要找到合适我们项目,方便我们开发的rtos即可。

更好的理解TensorFlow 2.0的新特性
第十代小金刚Redmi Note10官宣 全系列全球销量已突破2亿台
荣耀Magic2游戏性能实测 到底怎么样
晶圆尺寸从300毫米过渡到450毫米的技术挑战
PCB的层叠设计指南
UCOS-II/II、FreeRTOS、RTX四大RTOS系统性能对比
太阳能电池板的颜色种类、不均匀的原因分析
Axon 30 Pro特性曝光:首个基于Arm Cortex-X1打造的商用CPU子系统
电工最不想碰到的故障有哪些
SMT贴片加工中产生锡珠的原因
zpwsmile Steag系统执行CMP后清洁至0.12微米及以下
2019款iPhone最新消息汇总 到底香不香
直流隔离电源电路图大全(DC/DC/变压销隔离/精密开关电源电路图)
Q4季度阿里云首次实现盈亏平衡,营收同比增长50%
水产品药物残留快速检测仪的用途及性能
!销售/回收JSR AT2500来电显示分析仪AT-2500
是德科技Roger Nichols被任命为美国联邦通信委员
中国移动双千计划千兆宽带接入网的发展思路分析
电感阻抗频率曲线解析
液晶彩电高压板电路构成方案揭秘