This talk deals with constrained transiently-powered embedded systems equipped with non volatile RAM (NVRAM). Transiently-powered systems may be autonomous sensors, sensor networks, mobile devices without batteries, systems where the use of batteries is infeasible. In our case, such systems are equipped with a super capacitor that gathers energy and restitutes that energy to the system for a short time (from a few tens of milliseconds to a few minutes). Programming on such a device is difficult because it operates only intermittently, as energy is available. Such devices must not reboot but continue their computations all along successive powered periods, meaning that they must keep their states and values even when loosing power. Using NVRAM may seem to be an easy solution, but that is not the case. Indeed, using NVRAM as a kind of RAM is likely to lead the system to an altered behaviour, an inconsistent state.
Our motivation is to provide a transiently-powered computing platform to accommodate both usual sensing and transmission functions as well as as heavy as possible computations aka edge computing. This platform shall abstract the use of NVRAM or at least assist the user in the design of its application.
Our based test platform is an Autosar compliant open source real time OS, Trampoline (https://github.com/TrampolineRTOS/trampoline), already used inside high-end vehicles. Trampoline is very light, configurable, suitable for constrained devices. We have made some experimentations on a MSP430FR5994 platform, it is equipped with a MSP430 and a 0.22F super capacitor. Our device shall start just once, and then restart from the last checkpoint on each power recovery.
During this talk we will present the current state of our experimentations. That is to say : - Real-time and estimation of remaining energy; - Task scheduling model for such devices; - Platform energy consumption models: start and restart; - Peripherals states and initializations.