代码之家  ›  专栏  ›  技术社区  ›  Karthik Balaguru

减少空闲任务的资源使用

  •  0
  • Karthik Balaguru  · 技术社区  · 14 年前

    我发现在uC/OS-II实时操作系统中,有一个空闲任务在没有其他任务准备运行时执行。如果一个空闲的任务可以消耗资源,我们如何减少它?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Dan    14 年前

    通常情况下,空闲任务是将处理器置于低功耗(休眠)模式,如果它是低功耗系统,并且处理器具有这种模式。这通常是一个特定的汇编指令,例如在ARM上,您将执行“WFI”指令。在其他芯片上,内核外可能有一个特定的寄存器来管理电源(与指令相反)。

    通常在进入低功耗模式之前,您会关闭所有不需要的外围设备。再次检查芯片的数据表。另外,如果您要使用中断来唤醒,请确保外围设备没有断电,并且中断已启用,否则,您将无法唤醒。

    最后一点:通常在调试时(例如在JTAG设备的控制下),当进入低功耗模式时会发生奇怪的事情,因此您希望在调试时禁用空闲任务中的“睡眠”,并且只在没有调试器的情况下运行时才这样做。通常这是一个编译时决策(#ifdef…)

        2
  •  1
  •   Clifford    14 年前

    当然,如果您通过直接修改空闲任务或实现一个钩子来扩展空闲任务,那么资源的使用完全在您的控制范围内,但是您不能白白得到一些东西。