Skip to content

Releases: FreeRTOS/FreeRTOS-Kernel

V10.4.3 LTS Patch 2

12 Nov 19:00
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.3 LTS Patch 1 and FreeRTOS V10.4.3 LTS Patch 2

 + ARMv7-M and ARMv8-M MPU ports – prevent non-kernel code from calling the
   internal functions xPortRaisePrivilege and vPortResetPrivilege by changing
   them to macros.

V10.4.5

10 Sep 19:22
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.4 and FreeRTOS V10.4.5 released September 10 2021

 + Introduce configRUN_TIME_COUNTER_TYPE which enables developers to define
   the type used to hold run time statistic counters. Defaults to uint32_t
   for backward compatibility. #define configRUN_TIME_COUNTER_TYPE to a type
   (for example, uint64_t) in FreeRTOSConfig.h to override the default.
 + Introduce ulTaskGetIdleRunTimePercent() to complement the pre-existing
   ulTaskGetIdleRunTimeCounter(). Whereas the pre-existing function returns
   the raw run time counter value, the new function returns the percentage of
   the entire run time consumed by the idle task. Note the amount of idle
   time is only a good measure of the slack time in a system if there are no
   other tasks executing at the idle priority, tickless idle is not used, and
   configIDLE_SHOULD_YIELD is set to 0.
 + ARMv8-M secure-side port:  Tasks that call secure functions from the
   non-secure side of an ARMv8-M MCU (ARM Cortex-M23 and Cortex-M33) have two
   contexts – one on the non-secure side and one on the secure-side. Previous
   versions of the FreeRTOS ARMv8-M secure-side ports allocated the structures
   that reference secure-side contexts at run time.  Now the structures are
   allocated statically at compile time.  The change necessitates the
   introduction of the secureconfigMAX_SECURE_CONTEXTS configuration constant,
   which sets the number of statically allocated secure contexts.
   secureconfigMAX_SECURE_CONTEXTS defaults to 8 if left undefined.
   Applications that only use FreeRTOS code on the non-secure side, such as
   those running third-party code on the secure side, are not affected by
   this change.

V10.4.3 LTS Patch 1

10 Sep 19:05
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.3 LTS Patch 1 released September 10 2021

See https://www.FreeRTOS.org/FreeRTOS-V10.4.5.html

 + ARMv8-M secure-side port:  Tasks that call secure functions from the
   non-secure side of an ARMv8-M MCU (ARM Cortex-M23 and Cortex-M33) have two
   contexts – one on the non-secure side and one on the secure-side. Previous
   versions of the FreeRTOS ARMv8-M secure-side ports allocated the structures
   that reference secure-side contexts at run time.  Now the structures are
   allocated statically at compile time.  The change necessitates the
   introduction of the secureconfigMAX_SECURE_CONTEXTS configuration constant,
   which sets the number of statically allocated secure contexts.
   secureconfigMAX_SECURE_CONTEXTS defaults to 8 if left undefined.
   Applications that only use FreeRTOS code on the non-secure side, such as
   those running third-party code on the secure side, are not affected by
   this change.

V10.4.4

28 May 23:03
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.4 released May 28 2021

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

    + Minor performance improvements to xTaskIncrementTick() achieved by providing
      macro versions of uxListRemove() and vListInsertEnd().
    + Minor refactor of timers.c that obsoletes the need for the
      tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to
      post to its own event queue.  A consequence of this change is that auto-
      reload timers that miss their intended next execution time will execute
      again immediately rather than executing again the next time the command
      queue is processed.  (thanks Jeff Tenney).
    + Fix a race condition in the message buffer implementation.  The
      underlying cause was that length and data bytes are written and read as
      two distinct operations, which both modify the size of the buffer. If a
      context switch occurs after adding or removing the length bytes, but
      before adding or removing the data bytes, then another task may observe
      the message buffer in an invalid state.
    + The xTaskCreate() and xTaskCreateStatic() functions accept a task priority
      as an input parameter.  The priority has always been silently capped to
      (configMAX_PRIORITIES - 1) should it be set to a value above that priority.
      Now values above that priority will also trigger a configASSERT() failure.
	+ Replace configASSERT( pcQueueName ) in vQueueAddToRegistry with a NULL
      pointer check.
    + Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration
      constant that enables the stack allocated to tasks to come from a heap other
      than the heap used by other memory allocations.  This enables stacks to be
      placed within special regions, such as fast tightly coupled memory.
    + If there is an attempt to add the same queue or semaphore handle to the
      queue registry more than once then prior versions would create two separate
      entries.  Now if this is done the first entry is overwritten rather than
      duplicated.
    + Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from
      their respective repositories.
    + Correct a build error in the POSIX port.
    + Additional minor formatting updates, including replacing tabs with spaces
      in more files.
    + Other minor updates include adding additional configASSERT() checks and
      correcting and improving code comments.
    + Go look at the smp branch to see the progress towards the Symetric
      Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp

V10.4.3

15 Dec 15:29
9c048e0
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020

V10.4.3 is included in the 202012.00 LTS release.  Learn more at https:/freertos.org/lts-libraries.html

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Changes to improve robustness and consistency for buffer allocation in
  the heap, queue and stream buffer.
+ The following functions can no longer be called from unprivileged code.
  - xTaskCreateRestricted
  - xTaskCreateRestrictedStatic
  - vTaskAllocateMPURegions

V10.4.2

10 Nov 22:56
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.1 and FreeRTOS V10.4.2 released November 10 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Fix an issue in the ARMv8-M ports that caused BASEPRI to be masked 
  between the first task starting to execute and that task making 
  a FreeRTOS API call.
+ Introduced xTaskDelayUntil(), which is functionally equivalent to
  vTaskDelayUntil(), with the addition of returning a value to 
  indicating whether or not the function placed the calling task into
  the Blocked state or not.
+ Update WolfSSL to 4.5.0 and add the FIPS ready demo.
+ Add support for ESP IDF 4.2 to ThirdParty Xtensa port.
+ Re-introduce uxTopUsedPriority to support OpenOCD debugging.
+ Convert most dependent libraries in FreeRTOS/FreeRTOS to submodules.
+ Various general maintenance and improvements to MISRA compliance.

V10.4.1

08 Oct 22:13
375b085
Compare
Choose a tag to compare

Changes between FreeRTOS V10.4.0 and FreeRTOS V10.4.1 released September 17 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

+ Fixed an incorrectly named parameter that prevented the 
  ulTaskNotifyTakeIndexed macro compiling, and the name space clash in the 
  test code that prevented this error causing test failures.

V10.4.0

11 Sep 17:24
2428081
Compare
Choose a tag to compare

Changes between FreeRTOS V10.3.1 and FreeRTOS V10.4.0 released September 10 2020

See https://www.FreeRTOS.org/FreeRTOS-V10.4.x.html

Major enhancements:

+ Task notifications:  Prior to FreeRTOS V10.4.0 each created task had a
  single direct to task notification.  From FreeRTOS V10.4.0 each task has
  an array of notifications.  The direct to task notification API has been
  extended with API functions postfixed with "Indexed" to enable the API to
  operate on a task notification at any array index.  See
  https://www.freertos.org/RTOS-task-notifications.html for more information.
+ Kernel ports that support memory protection units (MPUs): The ARMv7-M and
  ARMv8-M MPU ports now support a privilege access only heap. The ARMv7-M
  MPU ports now support devices that have 16 MPU regions, have the ability
  to override default memory attributes for privileged code and data
  regions, and have the ability to place the FreeRTOS kernel code outside of
  the Flash memory. The ARMv8-M MPU ports now support tickless idle mode.
  See https://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
  for more information.

Additional noteworthy updates:

+ Code formatting is now automated to facilitate the increase in
  collaborative development in Git.  The auto-formated code is not identical
  to the original formatting conventions.  Most notably spaces are now used
  in place of tabs.
+ The prototypes for callback functions (those that start with "Application",
  such as vApplicationStackOverflowHook()) are now in the FreeRTOS header
  files, removing the need for application writers to add prototypes into
  the C files in which they define the functions.
+ New Renesas RXv3 port layer.
+ Updates to the Synopsys ARC code, including support for EM and HS cores,
  and updated BSP.
+ Added new POSIX port layer that allows FreeRTOS to run on Linux hosts in
  the same way the Windows port layer enables FreeRTOS to run on Windows
  hosts.
+ Many other minor optimisations and enhancements. For full details  
  see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/main