【发布时间】:2020-01-06 02:32:53
【问题描述】:
我正在实施软件看门狗,以确保 1kHz 任务在其分配的期限内(即 1 毫秒)执行。但我想知道在 1kHz 开始和第 1 个滴答之间是否正好有 1ms。
据我了解,这就是 FreeRTOS 启动时发生的情况
vPortSetupTimerInterrupt(); // Tick 0 starts
...
prvPortStartFirstTick(); // Context switch
// After the context switch, the 1kHz task starts
在tick 0 和tick 1 之间,1kHz 任务没有得到完整的 1ms 来完成有用的工作,因为在调用 vPortSetupTimerInterrupt() 到 prvPortStartFirstTick() 上花费了一些时间。它是否正确?如果是这样,这是否值得关注?还是额外的延迟时间太短以至于可以忽略不计?
我正在开发 ARM Cortex M4(STM32F302 系列)。
【问题讨论】: