主要内容

检测和修复任务溢出德州仪器公司C2000硬件

您可以配置Simulink金宝app®模型在目标硬件上运行,以检测任务溢出并在发生任务溢出时通知您。如果在计划启动任务的下一个实例时,目标硬件仍在执行任务的一个实例,则会发生任务溢出。您可以通过降低计划运行任务的频率和/或通过减少模型定义的任务数量来修复溢出。

启用溢出检测:

  1. 单击工具菜单,并选择在目标硬件上运行>选项

  2. 在打开的“硬件实现”窗格中,选择被检测>使被检测复选框。

  3. 使用数字输出引脚设置超限参数指定数字输出的GPIO管脚编号。

    • 选择GPIO模式:设置、清除或切换

    • 如果需要,请选择附加通知选项,以便在发生任务溢出时发出通知:触发中断或调用用户定义函数

  4. 点击好的

当任务溢出时:

  • 指示的数字输出管脚的状态数字输出到overrun上设置参数由低(0伏)变为高(3.3伏)。

  • 如果“附加通知”选择为触发中断然后是提到的ISRCPUNumber将被触发。

    请注意

    设置中断的优先级值小于40(默认的基本速率优先级),以确保在超时时触发中断。

    如果“附加通知”选择为调用用户定义的函数那么C函数将在溢出时被调用。

  • 模型继续运行,但有效样本时间将比指定的时间长。

若要修复超限条件,可采用以下一种或多种解决方案,以减轻模型的处理负担:金宝搏官方网站

  • 分析可用于测量每个任务的执行时间并详细分析超越的任务。

  • 增加模型的采样时间。例如,增加值的值样品时间所有数据源块中的参数。

  • 简化模型。

如果您正在使用外部模式,且上述解决方案不能解决任务溢出的问题,请考虑禁用外部模式。金宝搏官方网站外部模式将一个轻量级服务器添加到目标硬件上运行的模型中。该服务器增加了目标硬件的处理负担,可能导致任务溢出。分析逻辑也会带来额外的开销。这也可能导致超限。

另请参阅

|

相关话题