Skip to content

Commit 4638ba8

Browse files
Merge branch 'development' into temp/scheduler-get-perf
2 parents 291ed71 + 621214e commit 4638ba8

128 files changed

Lines changed: 4949 additions & 3741 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
release: patch
2+
summary: Fix incorrect usage of non-volatile buffers in peripherals. This wrong usage was causing undefined behaviour, since the compiler could optimize out reads and writes that should have been going directly to memory.
3+
4+
There's a minor API change: now the MPU macros for memory regions include the volatile keyword for the non-cached variants.

.changesets/hotfix-mpu-synamic-regions-linker-symbols.md renamed to .changesets/archive/v6.0.0/hotfix-mpu-synamic-regions-linker-symbols.md

File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
release: minor
2+
summary: move initialization outside constructor in PWM, DualPWM, Encoder and InputCapture
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
release: major
2+
summary: Redesign fault handling, protections, and Board bootstrap around explicit fault policies
3+
4+
This PR changes the public integration contract for applications built on ST-LIB.
5+
6+
Breaking changes:
7+
8+
- `Board` now takes the fault policy type as its first template parameter.
9+
- The global `FAULT` runtime is owned exclusively by `FaultController`.
10+
- User state machines are now nested under the global `OPERATIONAL` state through `FaultPolicy` or `FaultPolicyNoMachine`.
11+
- Protections are now compile-time `Board` request objects evaluated through `Board::ProtectionEngine`; the previous `ProtectionManager` and boundary split is no longer the active model.
12+
- Runtime reporting is unified under `PANIC(...)`, `FAULT(...)`, `WARNING(...)`, and `INFO(...)`.
13+
- The real bootstrap path is `Board::init()`. Legacy `STLIB::start()`, `STLIB::update()`, `STLIB_LOW::start()`, and `STLIB_HIGH::start()` must not be used as the integration path.
14+
15+
Migration notes:
16+
17+
- Declare the board as `Board<YourFaultPolicy, ...>`.
18+
- Use `FaultPolicy<app_machine, on_fault_enter>` when you want an operational state machine nested under the global runtime.
19+
- Use `FaultPolicyNoMachine<on_fault_enter>` when you only need a fault-entry callback.
20+
- Use `DefaultFaultPolicy` when you want neither an operational machine nor a fault-entry callback.
21+
- Declare protections with `Protections::protection<"name", source>(...)` and pass the resulting request objects to `Board`.
22+
- In the main loop, drive the runtime through `FaultController::check_transitions()`, `Board::evaluate_protections()`, and `Diagnostics::Hub::flush()`.
File renamed without changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
release: minor
2+
summary: It is just a one word change, makes it possible to use `Board::instanceof()` to get a `constexpr auto& obj`. It works perfectly as long as you don't try using the reference before `Board::init()`.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
release: patch
2+
summary: Fix reorder issue in PWM constructor

0 commit comments

Comments
 (0)