JeeH 6.1.0
July 29, 2024
JeeH version 6.1.0 release notes and highlights:
This is a minor release. I’m pushing this release out to prepare for some new ideas - mostly aimed at reducing overhead and complexity, and at improving JeeH’s low-power capabilities.
The current low-power design lets JeeH decide when to enter a low-power mode,
based on jeeh::lowestPower
and jeeh::resumePower
functions which can be
tweaked for a specific scenario. One problem is that these two functions have to
run in “handler” mode, i.e. as exceptions, which has very specific “rules of
engagement”. Another more pressing problem is that this code is simply … not
working correctly in all cases!
While exploring some code to enable the Low-Power Timer so it can wake up the µC from STOP2 mode (on L432), I discovered that you don’t really need an interrupt handler - all that’s needed is a “partly-enabled” interrupt and using WFE instead of WFI.
So now my mental model is pivoting to a somewhat different design, with fewer IRQ handlers and more logic using events to get out of low-power modes (without having to call exception handlers). With fewer “full” interrupts, the need to run several parts of JeeH inside SVCs should be reduced.
Fewer interrupts + fewer SVC calls = less overhead + faster context switches.
This is still vapourware for now, but it looks promising enough for me to investigate.
Onwards!