Robustness, real-time properties and resource eciency arekey properties to embedded devices of the CPS/IoT era. Inthis paper we propose a language approach RTFM-core,and show its potential to facilitate the development processand provide highly ecient implementations amendablefor static verication. Our programming model is reactive,based on the familiar notions of concurrent tasksand (single-unit) resources. The language is kept minimalistic,capturing the static task, communication and resourcestructure of the system. Whereas C-source can be arbitrarilyembedded in the model, and/or externally referenced,the instep to mainstream development is minimal, and asmooth transition of legacy code is possible. A prototypecompiler implementation for RTFM-core is presented. Thecompiler generates C-code output that compiled togetherwith the RTFM-kernel primitives runs on bare metal. TheRTFM-kernel guarantees deadlock-lock free execution andeciently exploits the underlying interrupt hardware forstatic priority scheduling and resource management underthe Stack Resource Policy. This allows a plethora of wellknownmethods to static verication (response time analysis,stack memory analysis, etc.) to be readily applied. The proposedlanguage and supporting tool-chain is demonstratedby showing the complete process from RTFM-core sourcecode into bare metal executables for a light-weight ARMCortexM3 target.
Godkänd; 2014; 20141204 (maalin)