支持Xenomai内核的实时系统有buildroot,debian和ubuntu。在buildroot系统中自带cyclictest ,如果是ubuntu系统或者debian系统,可以在开发板联网之后,使用apt安装,输入以下命令
apt-get install rt-tests
在烧写非实时内核的buildroot镜像之后,使用cyclictest测试,执行以下命令:
cyclictest -S -p 99 -m
在上图中,T:0~3 表示序号为0~3的线程,P:99 表示线程的优先级是99 ,C:257477表示计数器。线程的时间间隔每达到一次,计数器加一;I:1500表示时间间隔为1500微秒;Min表示最小延时(us);Act表示最近一次的延时(us);Avg表示平均延时(us); Max表示最大延时(us)。
在实际使用环境中,如果没有适当的负载,运行cyclictest所得到的延迟统计数据不准确,为了模拟一些负载类型,我们可以采用官方提供的 hackbench工具。然后基于这个负载,我们运行cyclictest软件来测试系统在事件发生时的响应时间。输入以下命令:
hackbench -l -1 -g 15 -f 25 -P &
cyclictest -S -p 99 -m
然后烧写迅为提供的Xenomai实时内核镜像,输入以下命令空载测试,测试1小时,如下图所示:
cyclictest -S -p 99 -m
在实际使用环境中,如果没有适当的负载,运行cyclictest所得到的延迟统计数据不准确,为了模拟一些负载类型,我们可以采用官方提供的 hackbench工具。然后基于这个负载,我们运行cyclictest软件来测试系统在事件发生时的响应时间。输入以下命令:
hackbench -l -1 -g 15 -f 25 -P &
cyclictest -S -p 99 -m
在这里,我们重点比较三组数据的最大延迟(max)参数,因为系统的实时性能取决于最大延迟时间。通过比较打实时系统前后的测试,可以明显看到延迟下降明显,实时效果显著提升。
下表列举了不同情况下的延迟参数。
通过上图的对比,可以明显看出延时从1418us 降低到52us,实时效果非常明显。注意! 测试结果仅供大家参考,如果运行不同程度的负载,测试情况会有所不同。
更多内容:可以B站搜索迅为RK3568开发板