| layout | post | ||||
|---|---|---|---|---|---|
| lang | en | ||||
| title | µOS++ v7.0.0 released | ||||
| author | Liviu Ionescu | ||||
| date | 2023-07-19 13:09:00 +0200 | ||||
| categories |
|
||||
| tags |
|
Version v7.0.0 is a new µOS++ major release. It represents an important milestone, being the first release that includes extensive tests running in scriptable CI environments, and CMake support.
The main functional changes are several updates required to avoid warnings with the new toolchains.
- micro-os-plus/micro-os-plus-iii - v7.0.0
- micro-os-plus/micro-os-plus-iii-cortexm - v1.0.0
- micro-os-plus/micro-os-plus-iii-posix-arch - v1.0.0
- xpacks/arm-cmsis - v4.5.0-7
- xpacks/arm-cmsis-rtos-validator - v1.0.0-1
- xpacks/chan-fatfs - v0.13.1-3
- xpack-3rd-party/raspberrypi-pico-sdk-xpack - v1.5.1-1
- xpack-3rd-party/libucontext-xpack - v1.2.0-1
As a source code library, µOS++ can be integrated into another project in the traditional way, by either copying the relevant files into the target project, or by linking the relevant project as Git submodules.
However, the workflow can be further automated and the most convenient way is to add it as a dependency to the project via xpm. For details, please see the project README file.
- [#78]:
there was no support to clear the statistics;
add a
clear()method to thread statistics and to the scheduler - [#79]:
identifying the thread which issued an assert was difficult;
add the
this_threadaddress and name when displaying the assert error - [#81]: thread reuse via placement new was error prone; add a thread attribute to check if the thread constructor is called only after destroy
- [#82]:
GCC 12 spotted a name clash between the
file_system()method and the class; the method was renamed toget_file_system() - [#83]:
GCC 12 spotted a name clash between the unscoped enum
socketdefinition and the top definition; the definition was changed to a scopedenum class
Note: although minor, those were both breaking changes, which according to semver rules, required to increase the version major number.
- [#77]: the arm-none-eabi-gcc 12 complains about some new warnings; silenced
- [#80]:
in a normal use case, during thread destruction, there was an already gone
debug message; fixed, do not call
kill()in the destructor if it was already called explicitly - [#84]:
the stack underflow condition was tested only when asserts were enabled;
fixed, the condition is always tested and
abort()is invoked if necessary
- a
CMakeLists.txtfile was added to each project, providing a convenient way to integrate them in projects built with CMake
- the header files are still located below a
cmsis-plusfolder; to be replaced bymicro-os-plusin a future major release - the
file_descriptors_managerclass is not yet synchronised
This will hopefully be the final release of µOS++ in the current monolithic structure (IIIe). Work on the next version (IVe) is already under way; the main change will be the migration to a modular structure, based on xPacks.