主题中讨论的其他器件: HALCOGEN
我正在使用 Halcogen 为 TMS570LC4357 MCU 生成的 FreeRTOS 代码。 此外使用 TI 的 ARM 编译器。
我设置以下示例任务、该任务每1ms 运行一次并切换 GPIO。 没有其他任务正在运行:

查看逻辑分析仪的结果如下:

这个结果符合预期、正如您看到的、GPIO 的频率为1000Hz
现在、如果我设置 opt_level = 2、则会看到以下结果:


通常 GPIO 切换行为符合预期、但有时会在延迟发生之前发生第一次 GPIO 切换。 在任务能够阻止前、好像某些代码正在任务中执行。
现在、如果我关闭 vTaskDelayUntil 的优化(但所有其他代码的 opt_level = 2)、如下所示:

我们又回到了预期的结果:

我想知道、Halcogen 生成的代码存在问题吗? 从我在线读到的内容可以看出、FreeRTOS 能够使用 ARM 编译器运行优化。 其他人是否看到过此问题?











