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 8.1.1 发布,小型嵌入式系统
FreeRTOS 8.1.1 发布,此版本修复了从中断处理器给一个互斥型信号量(优先级继承)的功能。
FreeRTOS 8.1.0 在 26 号发布,此版本最主要的特性是支持非连续堆栈(heap_5.c),需要分配内存(创建任务,队列等等)。
之前版本的改进记录:
FreeRTOS是一个迷你操作系统内核的小型嵌入式系统。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。
功能和特点
混合配置选项
提供一个高层次的信任代码的完整性
目的是小,简单易用
以开发C,非常便携代码结构
支持两项任务和共同例程
强大的执行跟踪功能
堆栈溢出检测
没有软件任务的限制数量
没有软件优先事项的限制数量
没有施加的限制,优先转让,多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
Mutexes优先继承权
免费开发工具
免费嵌入式软件的源代码
从一个标准的Windows主机交叉发展