测试实时操作系统的硬度

时间:2009-07-08 04:17:59

标签: embedded real-time hard-real-time

我有一个广告实时功能的嵌入式设备(Technologic TS-7800),但没有说“硬”或“软”。当我等待制造商的回复时,我认为自己测试系统不会有什么坏处。

有哪些既定程序可以确定特定设备在实时/确定性行为(延迟和抖动)方面的“硬度”?

在大学时,我可以使用一些非常整洁的硬件(良好的示波器和信号发生器),所以我认为在测试设备方面我只会遇到任何问题,而不仅仅是专业知识。

6 个答案:

答案 0 :(得分:5)

使用这种设备,将o-scope同步到稳定的时钟应该相当容易,每次实时系统产生输出时产生尖峰,看看尖峰与中心的差异有多大。变化越小,硬度越大。

答案 1 :(得分:5)

澄清鲍勃的答案可能是:

使用信号发生器以某种不同的频率生成脉冲。 在某些范围内随机分布是最好的。

使用信号发生器(触发信号)启动示波器。

RTOS必须做出响应,做到这一点并发送输出脉冲。

将RTOS输出馈送到示波器的输入2中。

获取持久/收集模式的范围。 如果可以的话,让范围从A开始,在B.上停止。

在理想的工作中,让它来衡量你的分布。力科会。 从比预期慢得多的跟踪开始。你需要能够看到缓慢的异常值。 你将能够看到分布 假设正态分布,响应时间变化的SD是SOFTNESS。 (这在实践中并不会真正发生,但如果你没有得到异常值,它就会非常有用。) 如果存在大延迟的异常值,则RTOS不是很难。不符合截止日期。不合适的是实时工作。 许多类似RTOS的东西都具有良好的曲线左边缘,像1 / f曲线一样向下倾斜。 这表明联合紧张。需要注意的是范围右端​​的响应缓慢。如果没有异常值可以获得良好的斜率图像,请使用更快的迹线重复实验。应该对你的论文中的某些推测性结论有所帮助。

如果你的应用程序,说1uS的增量是可以的,你测量的是0.5us,那就太酷了。

无论如何,您可以发布结果(可能在发布意义上,但肯定会在网上发布。)

撰写本文时,请将该问题与论文联系起来。

答案 2 :(得分:2)

硬实时与软件的工作方式有关,而不是硬件本身。当询问某些内容是否真实时,它必须应用于整个系统(硬件,RTOS和应用程序)。这意味着硬实时或软实时是系统设计问题。

在超出规格的负载下,即使硬实时系统也会失败(希望有适当的故障指示),而低负载的软实时系统会给出硬实时结果。必须及时处理多少处理以及可以执行多少前/后处理是硬/软实时的真正关键。

在某些实时应用程序中,某些数据丢失并非失败,它应该只是低于某个级别,同样是系统标准。

您可以为电路板生成输入并让一个小应用程序对它们进行计数,并检查数据将丢失的级别。但是,这会为您提供特定于运行该应用程序的系统的评级。一旦你开始做更多的处理,你的计算负荷就会增加,你现在有了不同的硬实时限制。

这个主板运行一个裸骨调度程序将为大多数任务提供可预测的硬实时性能。 运行具有大量计算负载的完整RTOS,您可能只能获得实时的软件。

Edit after comment
我用来衡量软件性能的最有效和最简单的方法(假设您使用的是调度程序)是通过在电路板上使用自由运行的硬件定时器来为我的周期的开始和结束添加时间戳。或者,如果您运行完整的RTOS时间戳,则可以获取并转换。保存最长时间并在一秒钟内对值进行平均运行。如果您的平均值在50%左右,并且您的最大值在平均值的20%以内,那么您就可以了。如果没有,是时候重构你的申请了。随着应用程序的增长,循环时间将会增加。您可以监控所有软件更改对周期时间的影响。

另一种方法是使用硬件定时器生成循环中断。如果你及时重置中断。如果你错过截止日期,你就会有中断处理程序发出故障信号。但是,一旦您的应用程序耗时很长,它只会给您一个警告,但它依赖于硬件和中断,因此您不能错过。

这些解决方案还消除了连接范围以监视输出的要求,因为时间信息可以通过后台任务显示在任何类型的终端中。如果它易于监控,您将定期监控它,避免在最后解决时间问题,但一旦引入它们。

希望这有帮助

答案 3 :(得分:1)

我在这里有同样的董事会。它是一个稍微修改过的2.6内核,我相信......不是实时版本。

我不知道我已经阅读了文档中的任何内容,表明它适用于严格的RTOS工作。

答案 4 :(得分:1)

我认为这不是一个硬实时设备,因为它不运行RTOS。

答案 5 :(得分:-2)

我理解他是个极客,但使用示波器测试带有以太网/ usb /其他数字端口的计算机和巨大的内部状态(RAM)既无效又不可靠。

您可以将任何PC连接到输出端口并运行正确的统计分析,而不是观察波形。

建立的程序(如果输入信号本质上是模拟的)是针对几个特征输入测试系统 - 传统的尖峰,阶跃函数和不同频率的正弦波 - 并测量每种输入类型的相移和方差。最坏的情况然后用于系统的规范。

同样,如果您使用标准端口,则可以在PC上轻松生成这些端口。如果输入是真正模拟的,则需要单独的DAC或简单的声卡。

现在,对于操作系统是实时的没有任何意义 - 它可以运行vanilla Linux甚至是Win CE,如果硬件足够快,它们仍会在这些测试中产生良好稳定的结果。

因此,您需要模拟处理器,内存和所有端口上的重载和变化负载,让它加热并占用内存几个小时,然后重复测试。如果延迟保持不变,则很难实时。如果没有,在任何负载和输入信号类型下,增加到可接受的限制以上,它就是软的。否则就是广告。

P.S。:意味着即使对于关键系统,如果你有硬件,你实际上并不需要硬实时。