摘要:
4.2.20 空闲任务调用1--prvCheckTasksWaitingTermination 删除所有终止的任务, 释放资源。简单描述就是清空xTasksWaitingTermination列表,释放资源,递减uxCurrentNumberOfTasks和uxDeletedTasksWaiting 阅读全文
摘要:
4.2.14 退出阻塞--xTaskAbortDelay 接口:BaseType_t xTaskAbortDelay( TaskHandle_t xTask )形参1:xTask ,想要退出阻塞态的任务;返回:pdPASS:退出成功;pdFAIL:退出失败。 1 BaseType_t xTaskAb 阅读全文
摘要:
4.2.13 继续任务--vTaskResume 接口:void vTaskResume( TaskHandle_t xTaskToResume )形参1:xTaskToResume ,想要继续的任务handle; 首先是vTaskResume调用的一个内部函数:static BaseType_t 阅读全文
摘要:
4.2.9 周期任务用的延迟--xTaskDelayUntil 接口:BaseType_t xTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) 形参1:pxPrevious 阅读全文
摘要:
4.2.6 任务删除--vTaskDelete 这个接口并不复杂,主要是在判断是否要放到xTasksWaitingTermination列表里,还是直接处理。 1 void vTaskDelete( TaskHandle_t xTaskToDelete ) 2 { 3 TCB_t * pxTCB; 阅读全文
摘要:
4、tasks.c解析 时隔两年,还是决定继续把这个系统解析完成,有始有终。不过这次源码又从官网上下载了最新的,可能和我以前看的略有区别,但应该基本不影响理解。 接下来正式开始。 4.1.3 新增或是遗漏的两个宏 1 /* Returns pdTRUE if the task is actively 阅读全文
摘要:
4、tasks.c解析 task.c中包含任务创建、任务调度、delay等等接口,很多需要仿真才能弄清楚里面的机制,文章里只能尽可能详细地描述每一个流程。 4.1 宏和数据结构 源码中有涉及的几个宏和数据结构需要先说明一下,其中几个宏是之前讲链表时遗漏的,在这里再补充一下。 4.1.1 链表中遗漏的 阅读全文
摘要:
接着上一篇继续解析。 2、port.c源码解析 2.6 vPortEndScheduler 这个函数的作用我还不清楚,暂时先按函数名字面意思来理解,就是用于结束调度器的。 1 void vPortEndScheduler( void ) 2 { 3 /* Not implemented in por 阅读全文
摘要:
接着上一篇,了解了头文件里一些宏和内联函数后,就可以开始看点c里的代码了。在源文件中所有关于FPU和MPU的内容将不会涉及,笔者暂时也没有去了解过相关的原理。 源文件中的一些代码还涉及了汇编、以及函数调用的一些规则的知识,在碰到的时候再做相关介绍。下面正式开始。 2、port.c源码解析 2.1 p 阅读全文
摘要:
源码目录:\FreeRTOS\portable\RVDS\ARM_CM4F\portmacro.h、\FreeRTOS\portable\RVDS\ARM_CM4F\port.c 1、先分析portmacro.h中的几个宏,基本都是汇编代码,还涉及一些cortex-m3/4的知识。 1.1 port 阅读全文