首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeRTOS任务未恢复

FreeRTOS任务未恢复
EN

Stack Overflow用户
提问于 2016-08-18 10:15:50
回答 1查看 1.5K关注 0票数 0

我正在使用ARM Cortex-M4微控制器来开发一个FreeRTOS应用程序。

为了精确的计时,我想使用一个基于中断的计时器。中断具有适当的优先级,因此它应该能够调用FreeRTOS API。ISR被周期性地调用,并且应该像给定的代码那样唤醒一个任务:

代码语言:javascript
复制
/* This function is executed by the task I'd like to resume */
void hello_task() {
    while (1) {
        vTaskSuspend(task);
        printf("Tick\n");
    }
}

/* The ISR is called by an interrupt about 200 times per second */
void Timer_IRQHandler() {
    CLEAR_INTERRUPT_FLAG();
    xTaskResumeFromISR(task);
}

ISR被正确地执行,但是任务之后不会继续。有人对这种行为有解释吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-18 14:59:44

xTaskResumeFromISR()文档。它告诉你不要做你正在做的事。

直接到任务通知提供了最好的(最轻和最有效)的方法来完成你所描述的事情。下面的页面上有一个有用的示例:Semaphore.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39015586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档