29.10.2013 SIMPLIFYING COMPLEX EMBEDDED DEVELOPMENT PROCESSES WITH MBEDDR Stefan Schmierer Markus Völter, Bernd Kolb
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 3
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 4
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 5
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 6
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 7
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 8
CONTEXT. WHAT IS MBEDDR? An extensible set of integrated languages for embedded so3ware engineering. mbeddr, 29.10.2013 Page 9
CONTEXT. WHAT IS MBEDDR? And an IDE for everything. Mbeddr, 29.10.2013 Page 10
CONTEXT. WHAT IS MBEDDR? Open Source Eclipse Public License http://mbeddr.com mbeddr, 29.10.2013 Page 11
CONTEXT. WHAT IS MBEDDR? mbeddr, 29.10.2013 Page 12
CONTEXT. WHAT IS MPS? Language Workbench. Projectional Editing Textual/Symbolic/Tabular/(soon Graphical) Multiple projections for the same language Modular language development, extension and embedding mbeddr, 29.10.2013 Page 14
CONTEXT. WHAT IS MPS? Support for language aspects such as type system, scopes, code completion, find usages, dataflow Template-based approach for transformation and code generation with IDE support for target language in templates Support for building extensible debuggers mbeddr, 29.10.2013 Page 15
CONTEXT. WHAT IS MPS? Open Source Apache 2.0 http://jetbrains.com/mps mbeddr, 29.10.2013 Page 16
MPS. SUPPORTED NOTATIONS: TEXT mbeddr, 29.10.2013 Page 17
MPS. SUPPORTED NOTATIONS: TABLES mbeddr, 29.10.2013 Page 18
MPS. SUPPORTED NOTATIONS: MATH mbeddr, 29.10.2013 Page 19
MPS. SUPPORTED NOTATIONS: DIAGRAMS mbeddr, 29.10.2013 Page 20
MPS. LET S SEE HOW IT WORKS. DEMO mbeddr, 29.10.2013 Page 21
MOTIVATION. AUTOMOTIVE SPECIFIC EXTENSIONS. mbeddr, 29.10.2013 Page 23
AUTOSAR. A BRIEF INTRODUCTION. Component 1 Component 2 Component 3 Virtual Function Bus (VFB) Component 1 ECU 1 RTE Component 2 Component 3 ECU 2 RTE Basic Basic mbeddr, 29.10.2013 Page 24
AUTOSAR. A BRIEF INTRODUCTION. Component 1 Component 2 AUTOSAR Component n AUTOSAR Interface AUTOSAR Interface AUTOSAR Interface AUTOSAR Runtime Environment (RTE) Basic ECU Hardware mbeddr, 29.10.2013 Page 25
AUTOSAR IN MBEDDR? THE CHALLENGE. Components Runnable Entities Interfaces: - Sender / Receiver - Client / Server - Mode Switch - Parameter Data Types: - Modes - Mode Groups Event Trigger: - Timing - Server Call - Mode Switch mbeddr, 29.10.2013 Page 26
AUTOSAR IN MBEDDR. THE SOLUTION. Introduction of AUTOSAR specific language extensions: - Parameter Interface - Mode Groups - Mode Switch Interfaces - Mode Triggers for Runnables mbeddr, 29.10.2013 Page 27
MBEDDR. LANGUAGE EXTENSION. DEMO mbeddr, 29.10.2013 Page 28
AUTOSAR. METHODOLOGY. Functional Specification Component description (XML) Component description (XML) Rte_Swc.h Rte_Type.h Rte.h SWC.c Rte_Swc.h Rte_Type.h Rte.h Specify Component Generate Component Header Implement Component Compile Component Component description (XML) Rte_Swc.h Rte_Type.h Rte.h SWC.c SWC.o mbeddr, 29.10.2013 Page 29
AUTOSAR. METHODOLOGY. Specify Component Generate Component Header Implement Component Compile Component mbeddr, 29.10.2013 Page 30
AUTOSAR METHODOLOGY. SIMPLIFICATION. 1. Simplify Component Specification mbeddr, 29.10.2013 Page 31
AUTOSAR METHODOLOGY. SOFTWARE COMPONENT SPECIFICATION. VS. mbeddr, 29.10.2013 Page 32
AUTOSAR METHODOLOGY. SWC DESCRIPTION WITH MBEDDR. Model Transformation (http://www.artop.org) AUTOSAR XML Description mbeddr, 29.10.2013 Page 33
AUTOSAR METHODOLOGY. SIMPLIFICATION. 2. Simplify Component Implementation mbeddr, 29.10.2013 Page 34
AUTOSAR METHODOLOGY. SIMPLIFICATION. Do we really need to know which middleware is used? mbeddr, 29.10.2013 Page 35
AUTOSAR IMPLEMENTATION. STATE OF THE ART. Swc MyRunnable S/R Interface uint8 State Swc.c #include "Rte_Swc.h" void MyRunnable() { uint8 state; Rte_Read_RPort_State(&state); } mbeddr, 29.10.2013 Page 36
AUTOSAR IMPLEMENTATION. THE MBEDDR WAY. Swc MyRunnable S/R Interface uint8 State mbeddr, 29.10.2013 Page 37
AUTOSAR METHODOLOGY. SOFTWARE COMPONENT HEADER GENERATION. MBEDDR CORE MyModule.h generate MyModule.c MBEDDR CORE + AUTOSAR EXTENSIONS MyModule.h Rte_Swc.h Rte_Swc_Type.h generate MyModule.c Rte_Type.h AUTOSAR RELATED mbeddr, 29.10.2013 Page 38
MPS. MBEDDR + AUTOSAR DEMO mbeddr, 29.10.2013 Page 39
AUTOSAR METHODOLOGY. USING MBEDDR. Functional Specification Implement Component Component description (XML) Rte_Swc.h Rte_Type.h Rte.h SWC.c SWC.o mbeddr, 29.10.2013 Page 40
THANK YOU! mbeddr, 29.10.2013 Page 41