DocumentCode
3662506
Title
Well-formed control flow for critical sections in RTFM-core
Author
Per Lindgren;Marcus Lindner;Andreas Lindner;David Pereira;Luís Miguel Pinho
Author_Institution
Luleå
fYear
2015
fDate
7/1/2015 12:00:00 AM
Firstpage
1438
Lastpage
1445
Abstract
The mainstream of embedded software development as of today is dominated by C programming. To aid the development, hardware abstractions, libraries, kernels and lightweight operating systems are commonplace. Such kernels and operating systems typically impose a thread based abstraction to concurrency. However, in general thread based programming is hard, plagued by race conditions and dead-locks. For this paper we take an alternative outset in terms of a language abstraction, RTFM-core, where the system is modelled directly in terms of tasks and resources. In compliance to the Stack Resource Policy (SRP) model, the language enforces (well-formed) LIFO nesting of claimed resources, thus SRP based analysis and scheduling can be readily applied. For the execution onto bare-metal single core architectures, the rtfm-core compiler performs SRP analysis on the model and render an executable that is deadlock free and (through RTFM-kernel primitives) exploits the underlying interrupt hardware for efficient scheduling. The RTFM-core language embeds C-code and links to C-object files and libraries, and is thus applicable to the mainstream of embedded development. However, while the language enforces well-formed resource management, control flow in the embedded C-code may violate the LIFO nesting requirement. In this paper we address this issue by lifting a subset of C into the RTFM-core language allowing arbitrary control flow at the model level. In this way well-formed LIFO nesting can be enforced, and models ensured to be correct by construction. We demonstrate the feasibility by means of a prototype implementation in the rtfm-core compiler. Additionally, we develop a set of running examples and show in detail how control flow is handled at compile time and during run-time execution.
Keywords
"Switches","Programming","Hardware","Kernel","Concurrent computing","Synchronization","Libraries"
Publisher
ieee
Conference_Titel
Industrial Informatics (INDIN), 2015 IEEE 13th International Conference on
ISSN
1935-4576
Electronic_ISBN
2378-363X
Type
conf
DOI
10.1109/INDIN.2015.7281944
Filename
7281944
Link To Document