160 likes | 290 Vues
Giotto is a robust time-triggered, platform-independent programming language designed for hard real-time control applications, particularly in safety-critical environments. This tool simplifies the development of embedded control systems through its abstract programming model, enabling efficient design, simulation, and testing. With a runtime library compatible with VxWorks, Giotto supports essential services like scheduling and communication. Explore how Giotto facilitates the decomposition of tasks, enhances timing functionality, and integrates seamlessly with distributed platforms for various applications, from experimental robots to unmanned aerial vehicles.
E N D
Embedded Control System Developmentwith Giotto Thomas A. Henzinger, Benjamin Horowitz, Christoph Meyer Kirsch UC Berkeley
Giotto • Giotto is a time-triggered and platform independent programming language + compiler + runtime library • Giotto aims at hard real-time control applications on distributed platforms (safety-critical applications) • Giotto provides an abstract programming model for embedded control system development • Giotto runtime library for VxWorks (using timer services, scheduling services, TCP/IP stack)
Embedded System Development Application decomposes designs simulates Control Engineer Control Design Matlab! Functionality & Timing Giotto Program decomposes implements tests Software Engineer Platform Giotto!
A Giotto Task State Sensors f Actuators Frequency 10ms
Semantics of a Giotto Task Task State Sensors f Actuators Frequency 10ms Don’t care Time Read @ time t Write @ time t+10ms
Multiple Giotto Tasks Task P Q Q Don’t care Don’t care t t t+5ms t+5ms t+10ms t+10ms
Compilation Application decomposes designs simulates Control Engineer Control Design Matlab! Functionality & Timing Giotto Program decomposes implements tests Software Engineer Platform Giotto!
The Giotto Compiler Functionality & Timing Giotto Program Compilation Scheduling & Communication Giotto Executable Giotto Runtime Library VxWorks Distributed Platform
The Giotto Compiler Giotto Program • Possible Answers: • Giotto Executable • Not Schedulable Giotto Compiler Giotto Executable
Giotto-Platform Giotto Program Giotto-P Program Hosts, Nets, Performance Giotto Compiler Distributed Platform
Giotto-Scheduler Giotto Program Giotto-P Program Hosts, Nets, Performance Giotto-PS Program Task to Host, Priority Giotto Compiler Distributed Platform
Giotto-Communication Giotto Program Giotto-P Program Hosts, Nets, Performance Giotto-PS Program Task to Host, Priority Giotto-PSC Program Connection to Net, TDMA Giotto Compiler Distributed Platform
The Giotto Runtime Library Functionality & Timing Giotto Program Compilation Scheduling & Communication Giotto Executable Giotto Runtime Library VxWorks Distributed Platform
The Giotto Runtime Library Scheduling & Communication Giotto Runtime Library • Task, Connection Mapping • Task Scheduling Scheme • TDMA Slots Abstraction Real-Time OS Services VxWorks • Timer Service • Scheduling Service • TCP/IP Stack Distributed Platform
The Giotto Runtime Library • Available on VxWorks and x86 targets • Current Experimental Robots: • credit card size x86 single board computer running VxWorks • wireless Ethernet • Lego motors, sensors • Next Experimental Platform: • unmanned Yamaha helicopters • PC 104 single board computer running VxWorks • wireless Ethernet, GPS, inertial navigation sensor, …