技术论文
RTOS 101:任务,优先事项和分析
发表于03/22/2017
作者:Terri Hawker,产品管理副总裁
实时操作系统(RTOS)的使用在嵌入式软件设计中越来越普遍,因为一个实时操作系统可以很容易地划分您的代码到较小的块,任务,似乎并行地执行并彼此独立。RTOS以可靠和可维护的方式提供多任务,这使得更容易设计具有多个并发功能的应用,例如控制,通信和HMI。现代32位处理器的RTO的开销可以忽略不计,并且通常超过多任务启用的更有效的设计。
IntervalZero的RTOS(实时操作系统)平台是一个标准的预集成应用程序开发平台,允许公司专注于交付增值应用程序。IntervalZero的RTX和RTX64软件取代了fpga和dsp来满足硬实时需求,从根本上降低了开发成本,并显著提高了嵌入式系统的质量。
RTOS通常使用周期性中断例程(“勾选”中断)在需要时切换运行任务的抢占式多任务。执行任务的决定被称为任务调度和大多数RTOS使用固定优先级调度(FPS),其中开发人员分配每个任务静态优先级以指示它们的相对紧迫性。RTOS调度程序始终从当前准备执行的任务中选择具有最高优先级的任务。这是一种非常简单而优雅的解决方案,允许RTOS调度程序非常小,高度优化和彻底验证。
然而,要分配合适的任务优先级,因此系统性能将受到影响,否则系统甚至可能会不会响应。这是因为如果它们消耗过多的处理器时间,则高优先级任务可能会阻止执行较低的优先级任务。分析基于RTOS的应用程序的任务优先级和运行时行为需要记录和可视化任务调度。为此,Percepio提供了具有超过25个交互式视图的TraceAlyzer工具,使录制的迹线更容易理解和分析。
图1显示了Tracealyzer的主视图,垂直时间专注于任务和中断处理程序的执行(a)注释文本标签显示事件(B)包括RTOS API调用和自定义“用户事件”(C)。“演员信息”面板(D)的显示属性突出任务和“查看过滤器”(E)允许过滤显示。双击任务片段或事件标签会打开其他相关视图,显示跟踪中的相关点,例如,一个按时间顺序列出所选任务的所有执行情况的列表。
The response time of a task, i.e., the time from activation until completion, is affected not just by the actual processor time used by the task itself (execution time), but also by higher priority tasks and interrupts that preempt the task, as illustrated in Figure 1. So if the response time is too long, optimizing the code of the problematic task might be a waste of time, unless you know what actually causes the long response time.
使用Tracealyzer,您可以获得运行时世界的许多透视图,包括任务执行时间和响应时间图,如图2所示。我们可以看到两个任务的执行时间都相当稳定,但有时“SensorZ”的响应时间要高得多。通过单击这样一个数据点,您可以在主跟踪视图(图1)中打开相应的间隔,并查看原因。Tracealyzer中的所有25个以上视图都以类似的方式相互连接。
TraceAlyzer可用于IntervalZero的RTX64 3.0产品。RTX64 is a key component of the IntervalZero RTOS Platform that comprises x86 and x64 multicore multiprocessors, Windows, and real-time Ethernet (e.g. EtherCAT or PROFINET) to outperform real-time hardware such as DSPs and radically reduce the development costs for systems that require determinism or hard real-time.