Arduino FreeRTOS Library Versions Save

A FreeRTOS Library for all Arduino ATmega Devices (Uno R3, Leonardo, Mega, etc).

10.4.6-6

1 year ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1, 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint8_t) in FreeRTOSConfig.h to override the default.
  • Introduce configUSE_PORT_DELAY to redefine the Arduino delay() function to the FreeRTOS provided vTaskDelay() function where the delay requested is longer than one Tick.
  • Deleted all references to Coroutines.

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.

10.4.6-5

1 year ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint8_t) in FreeRTOSConfig.h to override the default.
  • Deleted all references to Coroutines.
  • Defined Arduino delay() to the FreeRTOS provided vTaskDelay() function where the delay required is longer than one Tick.

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.

10.4.6-4

2 years ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint16_t) in FreeRTOSConfig.h to override the default.
  • Deleted all references to Coroutines.
  • Defined Arduino delay() to the FreeRTOS provided vTaskDelay() function where the delay required is longer than one Tick.

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.

10.4.6-2

2 years ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint16_t) in FreeRTOSConfig.h to override the default.
  • Deleted all references to Coroutines.

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.

10.4.6-1

2 years ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint16_t) in FreeRTOSConfig.h to override the default.
  • Deleted all references to Coroutines.

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.

10.4.6-0

2 years ago

Changes between FreeRTOS V10.4.5 and V10.4.6 snapshot January 1 2022

  • Extend use of the configSTACK_DEPTH_TYPE which enables developers to define the type used to hold stack counter variables. Defaults to uint16_t for backward compatibility. #define configSTACK_DEPTH_TYPE to a type (for example, uint16_t) in FreeRTOSConfig.h to override the default.
  • Deleted all references to Coroutines.

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.

10.4.4-2

2 years ago

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

  • 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.
  • Other minor updates include adding additional configASSERT() checks and correcting and improving code comments.
  • Renamed variables affected by configSTACK_DEPTH_TYPE to match their type.

10.4.4-1

3 years ago

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

  • 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.
  • Other minor updates include adding additional configASSERT() checks and correcting and improving code comments.

10.4.3-8

3 years ago

Final 10.4.3 LTS Release

V10.4.3 is included in the FreeRTOS 202012.00 LTS release.

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.

Additional noteworthy updates:

  • Code formatting is now automated to facilitate the increase in collaborative development in Git. The auto-formatted 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.
  • Create macro versions of uxListRemove() and vListInsertEnd() for use in xTaskIncrementTick(). This provides a minor optimisation to remove the need for a few function calls.
  • Added further examples.
  • Added contribution guidelines.
  • Many other minor optimisations and enhancements. For full details see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/master

10.4.3-6

3 years ago

V10.4.3 is included in the FreeRTOS 202012.00 LTS release.

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.

Additional noteworthy updates:

  • Code formatting is now automated to facilitate the increase in collaborative development in Git. The auto-formatted 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.
  • Create macro versions of uxListRemove() and vListInsertEnd() for use in xTaskIncrementTick(). This provides a minor optimisation to remove the need for a few function calls.
  • Many other minor optimisations and enhancements. For full details see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/master