|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +lang: en |
| 4 | +title: µOS++ v7.0.0 released |
| 5 | +author: Liviu Ionescu |
| 6 | + |
| 7 | +date: 2023-07-19 13:09:00 +0200 |
| 8 | + |
| 9 | +categories: |
| 10 | + - releases |
| 11 | + - rtos |
| 12 | + - micro-os-plus |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +Version v7.0.0 is a new **µOS++** major release. It represents |
| 17 | +a major milestone, being the first release that includes extensive |
| 18 | +tests running in scriptable CI environments. |
| 19 | + |
| 20 | +The main functional changes |
| 21 | +are several updates required to avoid warnings with the new toolchains. |
| 22 | + |
| 23 | +## Affected packages |
| 24 | + |
| 25 | +- [micro-os-plus-iii](https://github.com/micro-os-plus/micro-os-plus-iii) |
| 26 | + |
| 27 | +## Install |
| 28 | + |
| 29 | +As a source code library, µOS++ can be integrated into another project |
| 30 | +in the traditional way, |
| 31 | +by either copying the relevant files into the target project, or by linking |
| 32 | +the relevant project as Git submodules. |
| 33 | + |
| 34 | +However, the workflow can be further automated and the most convenient way is |
| 35 | +to **add it as a dependency** to the project via **xpm**. |
| 36 | + |
| 37 | +## New features |
| 38 | + |
| 39 | +- [[#78](https://github.com/micro-os-plus/micro-os-plus-iii/issues/78)]: |
| 40 | + add a `clear()` method to thread statistics and to the scheduler. |
| 41 | + |
| 42 | +- [[#79](https://github.com/micro-os-plus/micro-os-plus-iii/issues/79)]: |
| 43 | + add the `this_thread` address and name when displaying the assert error |
| 44 | + |
| 45 | +- [[#81](https://github.com/micro-os-plus/micro-os-plus-iii/issues/81)]: |
| 46 | + add a thread attribute to check if the thread constructor is called |
| 47 | + only after destroy |
| 48 | + |
| 49 | +## Addressed bugs |
| 50 | + |
| 51 | +- [[#82](https://github.com/micro-os-plus/micro-os-plus-iii/issues/82)]: |
| 52 | + GCC 12 spotted a name clash between the `file_system()` method and |
| 53 | + the class; the method was renamed to `get_file_system()` |
| 54 | + |
| 55 | +- [[#83](https://github.com/micro-os-plus/micro-os-plus-iii/issues/83)]: |
| 56 | + GCC 12 spotted a name clash between the unscoped enum `socket` definition |
| 57 | + and the top definition; the definition was changed to a scoped `enum class`. |
| 58 | + |
| 59 | +Note: those were both breaking changes, which required to increase |
| 60 | +the version major number. |
| 61 | + |
| 62 | +## Other changes |
| 63 | + |
| 64 | +- [[#77](https://github.com/micro-os-plus/micro-os-plus-iii/issues/77)]: |
| 65 | + the arm-none-eabi-gcc 12 complains about some new warnings; |
| 66 | + silenced |
| 67 | + |
| 68 | +- [[#80](https://github.com/micro-os-plus/micro-os-plus-iii/issues/80)]: |
| 69 | + in a normal use case, during thread destruction, a debug message |
| 70 | + says _already gone_; fixed, do not call `kill()` in the destructor if |
| 71 | + it was already called explicitly. |
| 72 | + |
| 73 | +- [[#84](https://github.com/micro-os-plus/micro-os-plus-iii/issues/84)]: |
| 74 | + the stack underflow condition was tested only when asserts were enabled; |
| 75 | + fixed, the condition is always tested and `abort()` is invoked |
| 76 | + |
| 77 | +## Known problems |
| 78 | + |
| 79 | +- the header files are still located below a `cmsis-plus` folder; to be |
| 80 | +replaced by `micro-os-plus` in a future major release. |
| 81 | +- the `file_descriptors_manager` class is not yet synchronised |
| 82 | + |
| 83 | +## Future developments |
| 84 | + |
| 85 | +This will hopefully be the final release of µOS++ in the current monolithic |
| 86 | +structure (IIIe). Work on the next version (IVe) is already under way; |
| 87 | +the main change is that it'll use a modular structure, based on xPacks. |
0 commit comments