FreeRTOS 8.1.1 发布,此版本修复了从中断处理器给一个互斥型信号量(优先级继承)的功能。
FreeRTOS 8.1.0 在 26 号发布,此版本最主要的特性是支持非连续堆栈(heap_5.c),需要分配内存(创建任务,队列等等)。
之前版本的改进记录:
Changes between V8.0.1 and V8.1.0 released August 26th 2014 FreeRTOS scheduler, kernel, demo and test updates: + Improved the priority inheritance algorithms to assist integration with off the shelf middleware that may hold multiple mutexes simultaneously. + Introduce heap_5.c, which is similar to heap_4.c but allows the heap to span multiple non-contiguous memory regions. + Updated all Cortex-A9 ports to help trap a couple of common usage errors - the first being when a task incorrectly attempts to exit its implementing function and the second being when a non interrupt safe API function is calLED from an interrupt. + Update all Cortex-A9 ports to remove obsolete mode switches prior to restoring a task context. + configUSE_PORT_OPTIMISED_TASK_SELECTION now defaults to 1 instead of 0. + Update all Cortex-M3/4F ports to trap a non interrupt safe API function being called from an interrupt handler. + Simplify the alignment checks in heap_4.c. + Update the MSVC Windows simulator demo to use heap_5.c in place of heap_4.c to ensure end users have an example to refer to. + Updated standard demo test code to test the new priority inheritance algorithms. + Updated the standard demo tasks to make use of stdint and the FreeRTOS specific typedefs that were introduced in FreeRTOS V8.0.0. + Introduce the pdMS_TO_TICKS() macro as a more user friendly and intuitive alternative to pdTICKS_PER_MS - both of which can be used to convert a time specified in milliseconds to a time specified in RTOS ticks. + Fix a bug in the Tasking compiler's Cortex-M port that resulted in an incorrect value being written to the basepri register. This only effects users of the Tasking compiler. + Update the Zynq demo to use version 14.2 of the SDK and add in an lwIP example that demonstrates lwIP being used with both its raw and sockets interfaces. + Updated the CCS Cortex-R4 port to enable it to be built with the latest CCS compiler. New ports and demo applications: + Two Renesas RX64M ports (RXv2 core) and demos introduced, one for the GCC compiler and one for the Renesas compiler. Both demos use e2 studio. + Generic IAR Cortex-A5 port (without any reliance on a GIC) introduced. The new port is demonstrated on an Atmel SAMA5D3 XPlained board. FreeRTOS+ component updates: + Update CyaSSL to the latest version. + Updated the FreeRTOS+ components supplied directly by Real Time Engineers Ltd. to make use of stdint and the FreeRTOS specific typedefs that were introduced in FreeRTOS V8.0.0. + Rework and simplify the FreeRTOS+FAT SL RAM disk driver. Miscellaneous updates and maintenance: + Update the IAR and DS-5/ARM RZ demos to target the official RZ RSK hardware in place of the previously targeted Renesas internal (not publicly available) hardware. + Various other maintenance tasks. Changes between V8.0.0 and V8.0.1 released 2nd May 2014 + Minor fixes to the event group functionality that was released in V8.0.0. The 'clear bits from ISR' functionality is now implemented using a deferred interrupt callback instead of a function, and the 'wait bits' and 'task sync' functions now correctly clear internal control bits before returning a value in every possible path through the respective functions. + Ensure the updating of internal control data is protected by a critical section after a task is deleted or suspended. + Minor fixes to FreeRTOS+FAT SL - namely seeking beyond the end of a file when the offset was not a multiple of the sector size. + Ensure Cortex-A9 system registers are only ever accessed as 32-bit values, even when only the lest significant byte of the register is implemented. Other updates: + Updated the XMC4200 IAR project so it links with version 7.x of the IAR tools. + Add RL78L1C demo. + Add pcTimerGetTimerName() API function. + Call _reclaim_reent() when a task is deleted if configUSE_NEWLIB_REENTRANT is defined. Changes between V7.6.0 and V8.0.0 released 19th Feb 2014 http://www.freertos.org/upgrading-to-FreeRTOS-V8.html FreeRTOS V8.x.x is a drop-in compatible replacement for FreeRTOS V7.x.x, although a change to the type used to reference character strings may result in application code generating a few (easily clearable) compiler warnings after the upgrade, and an updated typedef naming convention means use of the old typedef names is now discouraged. See http://www.freertos.org/upgrading-to-FreeRTOS-V8.html for full information. New features and functionality: + Event groups - see http://www.freertos.org/FreeRTOS-Event-Groups.html + Centralised deferred interrupt processing - see http://www.freertos.org/xTimerPendFunctionCallFromISR.html Other updates: + Previously, when a task left the Blocked state, a context switch was performed if the priority of the unblocked task was greater than or equal to the priority of the Running task. Now a context switch is only performed if the priority of the unblocked task is greater than the priority of the Running task. + New low power tickless demonstration project that targets the ST STM32L microcontroller - see http://www.freertos.org/STM32L-discovery-low-power-tickless-RTOS-demo.html + Add xPortGetMinimumEverFreeHeapSize() to heap_4.c. + Small change to the tickless low power implementation on the SAM4L to ensure the alarm value (compare match value) cannot be set to zero when a tickless period is exited due to an interrupt originating from a source other than the RTOS tick. + Update the GCC/Eclipse Win32 simulator demo to make better use of Eclipse resource filters and match the functionality of the MSVC equivalent. + xTaskIsTaskSuspended() is no longer a public function. Use eTaskGetState() in its place. + Improved trace macros, including tracing of heap usage. + Remove one level of indirection when accepting interrupts on the PIC32MZ. + Add Cortex-A9 GCC port layer. + Add Xilinx Zynq demo application
FreeRTOS是一个迷你操作系统内核的小型嵌入式系统。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。
功能和特点
混合配置选项
提供一个高层次的信任代码的完整性
目的是小,简单易用
以开发C,非常便携代码结构
支持两项任务和共同例程
强大的执行跟踪功能
堆栈溢出检测
没有软件任务的限制数量
没有软件优先事项的限制数量
没有施加的限制,优先转让,多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
Mutexes优先继承权
免费开发工具
免费嵌入式软件的源代码
从一个标准的Windows主机交叉发展