- 修改新API函数xTaskCreateStatic()的原型,去除一个参数并且改善和其它"CreateStatic()" API函数的兼容性。点击此处查看更多信息。
- GCC ARM Cortex-A移植层接口:增加configUSE_TASK_FPU_SUPPORT配置宏。当这个宏设置为2时,每一个任务自动使用浮点(FPU)环境。
- GCC ARM Cortex-A移植层接口:使用vApplicationFPUSafeIRQHandler()来代替vApplicationIRQHandler()可以在任意中断嵌套入口处自动保存和恢复所有浮点寄存器。
- 所有ARMCortex-M3/4F/7移植层接口:当使用ARM Cortex-M3/4/7架构文件而要求严格一致的创建任务时,清除位于任务堆栈中的任务入口地址的最低有效位(通常不会有什么明显作用,除非使用QMEU仿真器)。
- 增加GCC和Keil ARMCortex-M4F MPU移植层接口,之前仅ARM Cortex-M3支持使用MPU。
- ARM Cortex-M3/4F MPU移植层接口:现在完全支持FreeRTOS V9.0.0 API,增加一个演示例程,展示如何使用更新后的MPU移植层接口。演示例程位于:FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC。
- 所有ARMCortex-M3/4F/7移植层接口:在默认低功耗Tickless实现中增加同步指令。
- 所有ARMCortex-M0移植层接口:防止第一个运行任务堆栈的项目被丢弃。
- Win32移植层接口:减少堆栈的使用数目,改变删除Windows线程方法,增加最大执行时间。
- 增加用于MikroC编译器的ARMCortex-M4F移植层接口。
- MPS430X IAR移植层接口:更新至和最新的EW430工具一致。
- IAR32 GCC移植层接口:纠正当onfigMAX_API_CALL_INTERRUPT_PRIORITY == portMAX_PRIORITY时,函数vPortExitCritical()的错误。
- 更新一致性:函数vTaskGetTaskInfo()现在有一个别名为vTaskGetInfo()、函数xTaskGetTaskHandle()现在有一个别名为xTaskGetHandle()、函数pcQueueGetQueueName()现在有一个别名为pcQueueGetName()。
- 修改其它注释错误和编译器警告。
- 使用静态内存分配方法创建RTOS对象更简单了,如果传递的缓冲区参数是NULL,则不能转成动态内存分配,而是返回错误信息。
- 增加configSUPPORT_DYNAMIC_ALLOCATION配置宏,允许应用程序不使用堆空间(设置为0)。
- 小幅优化运行时间。
- 新增两个基于SiliconLabs EFM32微控制器的Tickless低功耗实现例子。
- 增加API函数xTimerGetPeriod()和xTimerGetExpireTime()。
- 主要新功能:现在可以使用静态分配内存创建任务、信号量、队列、定时器和事件组,因此可以完全不需要调用pvPortMalloc()函数。
- 主要新功能:增加API函数xTaskAbortDelay(),允许一个任务强制另一个任务立即离开阻塞状态,即使被阻塞的任务等待的事件还没发生,或者被阻塞的任务超时定时器还没有超时。
- 一些必要更新,允许FreeRTOS运行在64位架构上。
- 增加函数vApplicationDaemonTaskStartupHook()。当RTOS守护进程(被定时器服务任务调用)启动运行时执行。如果应用程序希望启动调度器后再执行某些初始化代码,这个函数是比较有用。
- 增加API函数xTaskGetTaskHandle(),用于根据任务名称获取任务句柄。这个函数使用多重字符串比较操作,比较费时,因此建议一个任务只使用一次,将获取的任务句柄保存到局部变量中,下次使用这个局部变量中保存的值。
- 增加API函数pcQueueGetQueueName(),用于根据队列句柄获取队列名字。
- 现在,即使configUSE_PREEMPTION配置为0,也可以使用Tickless空闲(用于低功耗应用,通过降低系统节拍定时器中断频率使CPU长期处于低功耗状态)了。
- 现在,如果一个任务删除另外一个任务,被删除任务的堆栈和TCB立即释放。如果一个任务删除自己,则任务的堆栈和TCB和以前一样,通过空闲任务删除。
- 在中断服务程序中,如果使用任务通知解除任务阻塞状态,但是参数xHigherPriorityTaskWoken并没有使用(正确情况下,使用这个参数来人为判断是否要进行上下文切换),则下次系统节拍时钟中断将会挂起一个上下文切换请求。
- heap_1.c和heap_2.c现在可以使用configAPPLICATION_ALLOCATED_HEAP设置选项,以前这个选项仅用在heap_4.c。configAPPLICATION_ALLOCATED_HEAP允许应用程序自己定义一个数组来代替FreeRTOS的堆,数组必须为:uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];这样做的好处是程序可以指定堆的存储位置,比如内部RAM或外扩RAM等。
- 现在,TaskStatus_t结构体包含任务堆栈的基地址了。TaskStatus_t结构体用于获取任务的详细信息,一般用在可视化追踪调试中。
- 增加API函数vTaskGetTaskInfo(),用于返回一个TaskStatus_t结构体,结构体包含单个任务的信息。以前这个信息只能通过调用一个获取所有任务信息的API函数(uxTaskGetSystemState())间接得到(使用TaskStatus_t结构体数组存储这些信息)。
- 增加API函数uxSemaphoreGetCount(),用于计数信号量,返回当前的计数值。
- 优化Cortex-M3移植层接口