【发布时间】:2013-05-30 11:32:10
【问题描述】:
我正在使用 LPC1769 和 FreeRTOS 编写应用程序。 有两个任务,每个任务都做一些事情并调用vTaskDelay一段时间。
我有兴趣在任务延迟时加入睡眠模式...
在 FreeRTOSConfig.h 我已经设置了
#define configUSE_IDLE_HOOK 1
在vApplicationIdleHook(void)中
void vApplicationIdleHook( void )
{
LPC_SC -> PCON = 0x0;
SCB->SCR = 0x0;
__WFI();
}
但应用永远不会进入 vApplicationIdleHook... 我已经尝试输入代码来切换 LED 并且什么都没有......
怎么了?在 FreRTOS 文档中,我能看到的唯一必要条件是设置 configUSE_IDLE_HOOK....
谢谢! ...对不起我的英语
【问题讨论】:
-
有时当您不知道从哪里开始时,对整个代码库进行递归 grep(搜索)以查找 USE_IDLE_HOOK 等标识符可以帮助您找到它启用的相关代码 - 然后您查看向上返回并弄清楚什么允许或不允许代码到达那里。
-
如果您有一个从不锁定其执行的线程,您可能永远不会进入 IDLEhook,因为系统永远不会处于空闲状态。
-
您正在使用什么类型的调度以及其他 2 个进程的优先级是什么?
标签: embedded freertos lpc consumption