JeeH 6.1.0

JeeH 6.1.0

July 29, 2024
News

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!