Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Andreas Lindner is active.

Publication


Featured researches published by Andreas Lindner.


conference on industrial electronics and applications | 2015

RTFM-core: Language and implementation

Per Lindgren; Marcus Lindner; Andreas Lindner; David Pereira; Luis Miguel Pinho

Robustness, real-time properties and resource efficiency are key properties to embedded devices of the CPS/IoT era. In this paper we propose a language approach RTFM-core, and show its potential to facilitate the development process and provide highly efficient and statically verifiable implementations. Our programming model is reactive, based on the familiar notions of concurrent tasks and (single-unit) resources. The language is kept minimalistic, capturing the static task, communication and resource structure of the system. Whereas C-source can be arbitrarily embedded in the model, and/or externally referenced, the instep to mainstream development is minimal, and a smooth transition of legacy code is possible. A prototype compiler implementation for RTFM-core is presented. The compiler generates C-code output that compiled together with the RTFM-kernel primitives runs on bare metal. The RTFM-kernel guarantees deadlock-lock free execution and efficiently exploits the underlying interrupt hardware for static priority scheduling and resource management under the Stack Resource Policy. This allows a plethora of well-known methods to static verification (response time analysis, stack memory analysis, etc.) to be readily applied. The proposed language and supporting tool-chain is demonstrated by showing the complete process from RTFM-core source code into bare metal executables for a lightweight ARM-Cortex M3 target.


emerging technologies and factory automation | 2014

Real-time execution of function blocks for Internet of Things using the RTFM-kernel

Per Lindgren; Marcus Lindner; Andreas Lindner; Johan Eriksson; Valeriy Vyatkin

Function Blocks provides a means to model and program industrial control systems. The recently acclaimed IEC 61499 standard allows such system models to be partitioned and executed in a distributed fashion. At device level, such models are traditionally implemented onto programmable logic controllers that underneath have an operating system and a software run-time environment which implies high resource demands. However, there is a current trend to involve small embedded systems (so called Internet of Things devices) integrated into such distributed control systems. To this end, we seek to address the outsets for real-time execution of Function Block based designs onto light-weight controllers (MCUs) with limited resources (memory and CPU). Furthermore, we propose a mapping of the Function Block execution semantics onto the RTFM-kernel, and discuss opportunities for off-line (design time) analysis with respect to response time, overall schedulability and memory requirements.


emerging technologies and factory automation | 2015

A real-time semantics for the IEC 61499 standard

Per Lindgren; Marcus Lindner; Andreas Lindner; Valeriy Vyatkin; David Pereira; Luis Miguel Pinho

The IEC 61499 standard provides an executable model for distributed control systems in terms of interacting function blocks. However, the current IEC 61499 standard lacks appropriate timing semantics for the specification of timing requirements, reasoning on timing properties at the model level, and for the timing verification of a specific deployment. In this paper we address this fundamental shortcoming by proposing Real-Time-4-FUN, a real-time semantics for IEC 61499. The key property is the preservation of non-determinism, allowing us to reason on (and verify) timing properties at the model level without assuming any specific scheduling policy or stipulating specific order of execution for the deployment. This provides for a clear separation of concerns, where the designer can focus on properties of the application prior to, and separately from, deployment verification. The proposed timing semantics is backwards compatible to the current standard, thus allow for reuse of existing designs. The transitional property allows timing requirements to propagate to downstream sub-systems, and can be utilized for scheduling both at device and network level. Based on a translation to RTFM-tasks and resources, IEC 61499 models can be analyzed, compiled and executed. As a proof of concept the timing semantics has been experimentally implemented in the RTFM-core language and the accompanying (thread based) RTFM-RT run-time system.


international symposium on industrial embedded systems | 2014

RTFM-4-FUN work in progress

Per Lindgren; Marcus Lindner; Andreas Lindner; Johan Eriksson; Valeriy Vyatkin

Function Blocks provides a means to model and program industrial control systems. The recently acclaimed IEC 61499 standard allows such system models to be partitioned and executed in a distributed fashion. At device level, such models are traditionally implemented onto programmable logic controllers and industrial PCs. In this paper, we discuss work in progress on developing a mapping allowing to implement a subset of IEC 61499 models onto light-weight embedded devices (MCUs). We propose and detail an event semantics, and its mapping to the notions of task and resources for Stack Resource Policy based analysis and scheduling. Moreover, we show how the proposed mapping can be efficiently implemented under the RTFM-kernel. Finally we outline a prototype tool-chain and discuss related, ongoing and future work.


emerging technologies and factory automation | 2015

RTFM-RT: A threaded runtime for RTFM-core - towards execution of IEC 61499

Andreas Lindner; Marcus Lindner; Per Lindgren

The IEC 61449 standard provides an outset for designing and deploying distributed control systems. Recently, a mapping from IEC 61499 to the RTFM-kernel API has been presented. This allows predictable real-time execution of IEC 61499 applications on light-weight single-core platforms. However, integrating the RTFM-kernel (bare-metal runtime) into potential deployments requires developing device drivers, protocol stacks, and the like. For this presentation, we apply the mapping from IEC 61499 to the RTFM-MoC task and resource model implemented by the RTFM-core language. The compilation from RTFM-core can be targeted to both, RTFM-kernel and the introduced runtime system RTFM-RT. In this paper, we detail the generic RTFM-RT runtime architecture, which allows RTFM-core programs to be executed on top of thread based environments. Furthermore, we discuss our implementation regarding scheduling specifics of Win32 threads (Windows) and Pthreads (Linux and Mac OS X). Using our RTFM-RT implementation for deployment, predictable IEC 61499 execution together with access to abovementioned operating system functions are achieved. For further developments, we discuss the needed scheduling options to achieve hard real-time and analysis required to eliminate deadlocks.


workshop on embedded and cyber-physical systems education | 2014

RTFM-core: Course in Compiler Construction

Marcus Lindner; Andreas Lindner; Per Lindgren

The course in Compiler Construction is part of the Computer Science masters program at Luleå University of Technology (LTU). Since the fall of 2014, the course is given by the Embedded Systems group. This paper outlines the course syllabus and its relation to CPS/IoT and embedded systems in general. In particular, the course introduces domain specific language design with the outset from the imperative RTFM-core language. Students are exposed to design choices for the language, spanning from programming model, compiler design issues, back-end tools, and even runtime environments. The intention is to give a holistic perspective and motivate the use of compilation techniques towards robust, efficient, and verifiable (embedded) software. Of course, developing basic skills is not overlooked and as part of the laboratory assignments, students extend the minimalistic Object Oriented language RTFM-cOOre and develop the compiler accordingly targeting the RTFM-core language as an intermediate representation. As the RTFM-core/-cOOre compilers are implemented using OCaml/Menhir, the students are also exposed to functional languages and to their advantages in the context of compiler construction. However, for their own development they may choose alternative design tools and languages. This gives us the opportunity to review and correlate achievements and efficiency to the choice of tools and languages and it is an outset for future course development.


ACM Sigbed Review | 2016

Abstract timers and their implementation onto the ARM Cortex-M family of MCUs

Per Lindgren; Emil Fresk; Marcus Lindner; Andreas Lindner; David Pereira; Luis Miguel Pinho

Real-Time For the Masses (RTFM) is a set of languages and tools being developed to facilitate embedded software development and provide highly efficient implementations geared to static verification. The RTFM-kernel is an architecture designed to provide highly efficient and predicable Stack Resource Policy based scheduling, targeting bare metal (single-core) platforms. We contribute by introducing a platform independent timer abstraction that relies on existing RTFM-kernel primitives. We develop two alternative implementations for the ARM Cortex-M family of MCUs: a generic implementation, using the ARM defined SysTick/DWT hardware; and a target specific implementation, using the match compare/free running timers. While sacrificing generality, the latter is more flexible and may reduce overall overhead. Invariants for correctness are presented, and methods to static and run-time verification are discussed. Overhead is bound and characterized. In both cases the critical section from release time to dispatch is less than 2us on a 100MHz MCU. Queue and timer mechanisms are directly implemented in the RTFM-core language (-core in the following) and can be included in system-wide scheduling analysis.


international conference on industrial informatics | 2015

Response time for IEC 61499 over Ethernet

Per Lindgren; Johan Eriksson; Marcus Lindner; Andreas Lindner; David Pereira; Luis Miguel Pinho

The IEC 61499 standard provides means to specify distributed control systems in terms of function blocks. The execution model is event driven (asynchronous), where triggering events may be associated with data (and seen as a message). In this paper we propose a low complexity implementation technique allowing to assess end-to-end response time of event chains spanning over a set of networked devices. In this paper we develop a method to provide safe end-to-end response time taking both intra- and inter-device delivery delays into account. As a use case we study the implementation onto (single-core) ARM-cortex based devices communicating over a switched Ethernet network. For the analysis we define a generic switch model and an experimental setup allowing us to study the impact of network topology as well as 802.1Q quality of service in a mixed critical setting. Our results indicate that safe sub millisecond end-to-end response times can be obtained using the proposed approach.


emerging technologies and factory automation | 2016

Safe tasks: Run time verification of the RTFM-lang model of computation

Marcus Lindner; Andreas Lindner; Per Lindgren

Embedded systems for critical applications are typically specified with requirements on predictable timing and safety. While ensuring predictable timing, the RTFM-lang (Real-Time For the Masses) model of computation (MoC) currently lacks memory access protection among real-time tasks. In this paper, we discuss how to safely verify task execution given a specification using the RTFM-MoC. Furthermore, an extension to the RTFM-core infrastructure is outlined and tested with use cases of embedded development. We propose a method for run time verification exploiting memory protection hardware. For this purpose, we introduce memory resources to the declarative language RTFM-core allowing compliance checks. As a proof of concept, compiler support for model analysis and automatic generation of run time verification code is implemented together with an isolation layer for the RTFM-kernel. With this verification foundation, functional run time checks as well as further overhead assessments are future research questions.


international conference on industrial informatics | 2015

Well-formed control flow for critical sections in RTFM-core

Per Lindgren; Marcus Lindner; Andreas Lindner; David Pereira; Luis Miguel Pinho

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.

Collaboration


Dive into the Andreas Lindner's collaboration.

Top Co-Authors

Avatar

Marcus Lindner

Luleå University of Technology

View shared research outputs
Top Co-Authors

Avatar

Per Lindgren

Luleå University of Technology

View shared research outputs
Top Co-Authors

Avatar

Johan Eriksson

Luleå University of Technology

View shared research outputs
Top Co-Authors

Avatar

Valeriy Vyatkin

Luleå University of Technology

View shared research outputs
Top Co-Authors

Avatar

Emil Fresk

Luleå University of Technology

View shared research outputs
Top Co-Authors

Avatar

Luis Miguel Pinho

International Student Exchange Programs

View shared research outputs
Researchain Logo
Decentralizing Knowledge