Follow andstar our official account to not miss out on exciting content.
A few days ago, FreeRTOS upgraded from V10.3.1 to V10.4.0, which updated and enhanced many features.
The FreeRTOS source code GitHub link:
1. Version Management
So far, the FreeRTOS zip file releases have included the version number of the kernel version they contain. For example, FreeRTOSv10.4.0.zip contains version 10.4.0 of the FreeRTOS kernel. However, the kernel is not the only separately versioned library included in the zip file, and the number of libraries in the zip file will increase in future releases. Therefore, to better reflect the collection of libraries integrated together that the zip file actually contains, future releases willuse timestamp versions instead of kernel versions.
2. Backward Compatibility
The FreeRTOS upgrade made many changes, but to maintain backward compatibility, in addition to the commented versions, certain management was done in the upgraded code, such as: setting TRC_CFG_FREERTOS_VERSION to TRC_FREERTOS_VERSION_10_4_0 in the trcConfig.h file.
3. Code Formatting
Now the FreeRTOS code formatting has been “automated” to facilitate collaborative development in Git. The automatically formatted code retains the original formatting conventions. The most noticeable change is that it now uses spaces instead of TABs.
Here are some of the updates:
1. Task Notifications
In versions prior to FreeRTOS V10.4.0, each created task had a single unidirectional task notification. Starting from FreeRTOS V10.4.0, each task has a series of notifications. The direct task notification API has been expanded with API functions suffixed with “Indexed” to allow the API to operate on task notifications at any array index.
In versions prior to FreeRTOS V10.4.0, tasks only had one notification value instead of an array of values, so to maintain backward compatibility, if configTASK_NOTIFICATION_ARRAY_ENTRIES is not defined, it defaults to 1.
For more details, please refer to the link below:
2. Kernel Ports Supporting Memory Protection Units (MPUs)
The ARMv7-M and ARMv8-M MPU ports now support privileged access to the heap only. The ARMv7-M MPU port now supports devices with 16 MPU regions covering privileged code and data with default memory attribute regions, and can place FreeRTOS kernel code in Flash. The ARMv8-M MPU port now supports a tickless idle mode.
For more details, please refer to the link below:
https://www.freertos.org/FreeRTOS-MPU-memory-protection-unit.html
1. The prototypes for callback functions (prototypes starting with “Application”, such as vApplicationStackOverflowHook()) are now located in FreeRTOS header files, eliminating the need for application authors to add the prototypes to their C files where they define functions.
2. A new POSIX port layer has been added, allowing FreeRTOS to run on a Linux host with a Windows port layer, enabling FreeRTOS to run in the same way on Windows hosts.
3. The new version fixes a long-standing scheduler bug: two tasks could run simultaneously during a context switch.
For more content, please refer to:
(The official account does not support external links, please copy the link to your browser to open)
What domestic IoT operating systems are there, and who holds the power?
How to avoid buffer overflow caused by the standard C library?
ARM compilation tools keil and IAR command line compilation and downloading
Long press to go to the official account included in the image to follow