阿瑟斯的小溪 发表于 2014-9-2 13:28:44

关于FreeRTOS中*xTaskResumeAll()的返回值问题

请问“如果一个挂起的上下文切换请求在*xTaskResumeAll()返回前得到执行,则函数返回pdTRUE,”这句话怎么理解,挂起调度器不是不会有任务执行么

divineliu 发表于 2014-9-2 14:34:39

这中文翻译的多别扭,看英文就清楚了。If resuming the scheduler caused a context switch then pdTRUE is returned, otherwise pdFALSE is returned.

divineliu 发表于 2014-9-2 14:34:39

这中文翻译的多别扭,看英文就清楚了。If resuming the scheduler caused a context switch then pdTRUE is returned, otherwise pdFALSE is returned.

阿瑟斯的小溪 发表于 2014-9-2 15:06:15

divineliu 发表于 2014-9-2 14:34
这中文翻译的多别扭,看英文就清楚了。If resuming the scheduler caused a context switch then pdTRUE is ...

首先谢谢大神解释啊,我可能明白了,这句话是说恢复调度产生上下文切换就返回pdtrue,我的疑问是假如一个上下文切换请求被挂起,在那应该在恢复调度之后再进行上下文切换,但是事实在*xTaskResumeAll()的函数执行过程中恢复调度后就会尝试进行上下文切换,而不是在*xTaskResumeAll()函数执行完成后,类似中断服务程序中的强制切换上下文,是这样理解的吧?还有,请问您那句英文解释是在哪个资料上面的

阿瑟斯的小溪 发表于 2014-9-2 15:29:30

divineliu 发表于 2014-9-2 14:34
这中文翻译的多别扭,看英文就清楚了。If resuming the scheduler caused a context switch then pdTRUE is ...

大神,请问您那句英文解释是在哪个资料上面的

divineliu 发表于 2014-9-3 09:45:16

阿瑟斯的小溪 发表于 2014-9-2 15:06
首先谢谢大神解释啊,我可能明白了,这句话是说恢复调度产生上下文切换就返回pdtrue,我的疑问是假如一个 ...

即使在xTaskResumeAll()的函数执行过程中进行了切换,
最终它还是要返回的呀,所以根据情况给你一个返回值呗。
因为FreeRtos有源代码,看看源代码就很清楚了。

divineliu 发表于 2014-9-3 09:47:46

阿瑟斯的小溪 发表于 2014-9-2 15:29
大神,请问您那句英文解释是在哪个资料上面的



我也忘记哪里下到的了。也许还是坛子里的。

阿瑟斯的小溪 发表于 2014-9-3 11:31:16

divineliu 发表于 2014-9-3 09:47
我也忘记哪里下到的了。也许还是坛子里的。

谢谢大神,呵呵。。再请教您个问题:我知道空闲任务钩子函数vApplicationIdleHook()是在启动调度器vTaskStartScheduler时创建prvIdleTask任务中创建的;那么定义心跳钩子函数vApplicationTickHook()是在哪里创建的?

divineliu 发表于 2014-9-3 13:20:31

阿瑟斯的小溪 发表于 2014-9-3 11:31
谢谢大神,呵呵。。再请教您个问题:我知道空闲任务钩子函数vApplicationIdleHook()是在启动调度器vTaskS ...

首先我不是大神啊。
这个你搜索源代码就知道了,是在 xTaskIncrementTick( void ) 中调用vApplicationTickHook()的。
不过你不用管这些,需要的话按照要求准备这个函数的实体就行了。
页: [1]
查看完整版本: 关于FreeRTOS中*xTaskResumeAll()的返回值问题