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 :
بازگشت