SlideShare a Scribd company logo
Matteo Bordin [email_address] Porting GNAT to Lego Mindstorm NXT: an Education-oriented Platform for  High-Integrity Systems Piotr Piwko [email_address]
Summary Introduction & Motivations GNATPro OSEK Operating System NXT Ada Library Demo application Future improvements Slide:
Introduction & Motivations Project consisted in : P orting  the  GNATPro  ZFP Technology  to ARM 7 W r iting an  Ada binding for the  nxt OSEK API D evelop ing  a working prototype   Slide:  Motivations to have a port of GNATPro to Mindstorms A low-cost platform for high-integrity system (HIS) development Ideal for education: industrial need of experts in HIS
GNATPro Slide:  GNAT Pro GNAT Pro High Integrity Edition  A complete development environment for Ada 83, 95 and 2005
OSEK overview   ( http://www.osek-vdx.org/ ) OSEK -  " Open Systems and the Corresponding Interfaces for Automotive Electronics  „ S ingle processor operating system   OSEK  is designed to  require only a minimum of hardware resources OSEK Implementation Language  (OIL)  T he code could be executed from R OM R eal-time multi tasking Slide:
OSEK history History timeline of the OSEK standard May 199 3 OSEK has been founded as a join t  project   in the German automotive industry . Initial project partners: BMW ,  Bosch ,  DaimlerChrysler ,  Opel, Siemens, VW and the the University of Karlsruhe as coordinator . Slide:  1993 1995 1997 ... 2003 1994
OSEK history History timeline of the OSEK standard Slide:  199 4 The French car manufacturers PSA and Renault joined introducing their VDX-approach (Vehicle Distributed eXecutive)  1993 1995 1997 ... 2003 1994
OSEK history History timeline of the OSEK standard Slide:  September 1995 1.0 version of the OSEK Operating System 1993 1995 1997 ... 2003 1994
OSEK history History timeline of the OSEK standard Slide:  June 1997 2.0 version 1993 1995 1997 ... 2003 1994
OSEK history History timeline of the OSEK standard Slide:  January 2003 The latest 2.2.1 version  of OSEK Operating System 1993 1995 1997 ... 2003 1994
OSEK compilation chain Slide:  Source:  OSEK Implementation Language Specyfication 2.5
OSEK  application configuration files OSEK Implementation Language  (OIL) The main OIL objects: Slide:  TASK  My_ Task { AUTOSTART = FALSE; SCHEDULE = FULL; PRIORITY = 3; ACTIVATION = 1; RESOURCE =  My_Res ; EVENT =  My_Event ; STACKSIZE = 512; }; TASK COUNTER Sy stem_Counter { MINCYCLE = 1; MAXALLOWEDVALUE = 10000; /* One tick is equal to 1msec */   TICKSPERBASE = 1; }; COUNTER EVENT  My_Event   {  MASK = AUTO;  };  EVENT RE S OURCE   My_Res   {  RESOURCEPROPERTY = STANDARD;  };  RESOURCE
OSEK  application configuration files Slide:  ALARM  C yclic_ A larm { COUNTER = Sys tem_Counter ; ACTION = ACTIVATETASK { TASK =  My_ Task; }; AUTOSTART = TRUE { ALARMTIME = 1; /*  My_ Task is executed every 500msec */ CYCLETIME = 500;  }; }; ALARM
nxt OSEK   ( http://lejos-osek.sourceforge.net/ ) nxtOSEK provides: ANSI C/C++ programming environment by using GCC tool chain  C  / C++  API for NXT Sensors, Motor, and other devices  TOPPERS OSEK – The open-source implementation of OSEK Real-Time Operating System  that includes ARM7 specific porting part  Features USB I2C bus Floating Point Direct boot from RAM (max. 64Kbytes single nxtOSEK application uploaded to RAM, no Flash write)  Slide:  O pen source firmware for LEGO MINDSTORMS NXT
nxt OSEK + GNATPro ZFP Slide:  GNATPRO 6.1.1 arm-elf cross-compiler Source code which is written in Ada Ada binding library for the nxtOSEK API
NXT Ada Library Structure of the Ada binding library   Slide:  nxtOSEK .Display .OS .NXT .Types .Utils .Bluetooth .I2C .Sound .Motor .Acceleration_Sensor .Gyroscopic_Sensor .Light_Sensor .Sonar_Sensor .Sound_Sensor .Touch_Sensor
Overall view Relation between  Compiler, OS  and  API bindings Slide:  TASK MyTask { PRIORITY = 1;  ACTIVATION = 1; SCHEDULE = FULL; STACKSIZE = 512;  }; ALARM MyTask_Alarm { COUNTER = SysCnt; ACTION = ACTIVATETASK { TASK = MyTask; }; AUTOSTART = TRUE { ALARMTIME = 1; CYCLETIME = 500; }; }; with nxtOSEK.OS; with nxtOSEK.Display; procedure My_Task; pragma Export (C, My_Task,   "TaskMainMyTask"); procedure My_Task is begin nxtOSEK.Display.Update; nxtOSEK.OS.Terminate_Task; end My_Task; package nxtOSEK.Display is procedure Update; private pragma Import (C, Update, "display_update"); end nxtOSEK.Display; package nxtOSEK.OS is procedure Terminate_Task; private pragma Import (C, Terminate_Task,    „terminate_task"); end nxtOSEK.OS;
It’s demo time!  – The Remote Control Vehicle  (I)   Vehicle Rear-wheel drive (2 motors)  Steering System (1 motor) Ultrasonic Obstruction Detection  (sonar sensor) Communication System (Bluetooth – slave device) Slide:
It’s demo time!  – The Remote Control Vehicle  (II)   Slide:  Control Panel Motion-based control 1 Gyroscope (steering) 2 Touch sensors (move forward/backward) Communication System (Bluetooth - master device)
Inside the demo Vehicle Slide:  Sonar task Cycle:    50ms Critical distance:  30cm Receive task Cycle: 5ms Sonar warning flag Shared resource Steering system 1 motor Main propulsions 2 motors Bluetooth protocol
Inside the demo Control panel Slide:  Buttons task Cycle: 200ms Receive task Cycle: 50ms Gyroscopic sensor LCD display Bluetooth protocol Steering task Cycle: 5ms Movement control 2 Touch sensors
Future improvements Support wider subsets of Ada Ravenscar Profile (language-level tasking) Automated Code Generation OIL files Application architecture From SysML/AADL models Object-oriented nxtOSEK Ada Library Slide:
Conclusions GNAT for Ada 2005 An industrial-strength development environment for HIS LEGO Mindstorm NXT An education-oriented platform for embedded systems nxtOSEK: brings RTOS to the LEGO Mindstorm NXT GNAT for NXT An ideal platform to teach HIS development  An answer to the industrial need for education in HIS Slide:

More Related Content

PDF
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
PDF
BKK16-400A LuvOS and ACPI Compliance Testing
PDF
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
PDF
Embedded Recipes 2019 - Making embedded graphics less special
PDF
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
PDF
LAS16-200: SCMI - System Management and Control Interface
PDF
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
PDF
Las16 200 - firmware summit - ras what is it- why do we need it
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-400A LuvOS and ACPI Compliance Testing
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Embedded Recipes 2019 - Making embedded graphics less special
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
LAS16-200: SCMI - System Management and Control Interface
LAS16-405:OpenDataPlane: Software Defined Dataplane leader
Las16 200 - firmware summit - ras what is it- why do we need it

What's hot (20)

PDF
BKK16-502 Suspend to Idle
PDF
LAS16-201: ART JIT in Android N
PDF
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
PDF
BKK16-303 96Boards - TV Platform
PDF
Embedded Recipes 2019 - Herd your socs become a matchmaker
PDF
Vision Based Autonomous Mobile Robot Navigation
PDF
Rtos ameba
PDF
Las16 309 - lua jit arm64 port - status
PDF
BKK16-309A Open Platform support in UEFI
PDF
BKK16-103 OpenCSD - Open for Business!
PDF
Cassiopeia Ltd - ESP8266+Arduino workshop
PDF
BKK16-410 SoC Idling & CPU Cluster PM
PDF
BKK16-213 Where's the Hardware?
PDF
LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
PDF
LAS16-TR03: Upstreaming 201
PPTX
Remote tanklevelmonitor
PDF
BUD17-405: Building a reference IoT product with Zephyr
PDF
LAS16-507: LXC support in LAVA
PPT
OpenMAX Overview
PDF
Project ACRN expose and pass through platform hidden PCIe devices to SOS
BKK16-502 Suspend to Idle
LAS16-201: ART JIT in Android N
LAS16-301: OpenStack on Aarch64, running in production, upstream improvements...
BKK16-303 96Boards - TV Platform
Embedded Recipes 2019 - Herd your socs become a matchmaker
Vision Based Autonomous Mobile Robot Navigation
Rtos ameba
Las16 309 - lua jit arm64 port - status
BKK16-309A Open Platform support in UEFI
BKK16-103 OpenCSD - Open for Business!
Cassiopeia Ltd - ESP8266+Arduino workshop
BKK16-410 SoC Idling & CPU Cluster PM
BKK16-213 Where's the Hardware?
LAS16-501: Introduction to LLVM - Projects, Components, Integration, Internals
LAS16-TR03: Upstreaming 201
Remote tanklevelmonitor
BUD17-405: Building a reference IoT product with Zephyr
LAS16-507: LXC support in LAVA
OpenMAX Overview
Project ACRN expose and pass through platform hidden PCIe devices to SOS
Ad

Viewers also liked (18)

PDF
Euclid open network - Project Work at #sds2013
PDF
Ada 95 - Programming in the large
PDF
Rails Girls Cluj: Programming in the real world
PDF
Ada Lovelace Day - 200 anos
PDF
Entrevista exclusiva tim berners lee
PPTX
GNAT Pro User Day: Ada Factory
PDF
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
PDF
GNAT Pro User Day: Ada at Ansaldo STS
PPTX
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
PPTX
ADA programming language
PDF
Ada Seminar — An Introduction to Ada
PPTX
Ada 2012
PPTX
Euclid and his contribution in development of math
PDF
High performance fibres
KEY
Evolution of Programming Languages
PDF
Euclid project
Euclid open network - Project Work at #sds2013
Ada 95 - Programming in the large
Rails Girls Cluj: Programming in the real world
Ada Lovelace Day - 200 anos
Entrevista exclusiva tim berners lee
GNAT Pro User Day: Ada Factory
GNAT Pro User Day: New and Upcoming Developments in the AdaCore Technology
GNAT Pro User Day: Ada at Ansaldo STS
GNAT Pro User Day: GNATdoc: Automatic Documentation Generator
ADA programming language
Ada Seminar — An Introduction to Ada
Ada 2012
Euclid and his contribution in development of math
High performance fibres
Evolution of Programming Languages
Euclid project
Ad

Similar to GNAT GPL For Mindstorms (20)

PDF
Automotive embedded systems part2 v1
PPT
Alden Hart and Rob Giesburt at Hardware Innovation Summit 2013
PDF
Embedded System
PPT
OSEK / VDX
PPT
Embedded systems
PPTX
Tech Days 2015: ARM Programming with GNAT and Ada 2012
PDF
Lecture 3 - Driving.pdf
PDF
K vector embedded_linux_workshop
PDF
maXbox Starter 45 Robotics
PDF
The Wireless Remote Control Car Based On Arm9
PDF
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
PPTX
Issta11
PPTX
EMBEDDED-SYSTEMS DESIGN ENGINEERING.pptx
PDF
Erlang Embedded — Concurrent Blinkenlights and More!
PDF
Capstone Report
PDF
PPTX
Osek turbo
PPTX
Linux Kernel Booting Process (1) - For NLKB
PDF
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
PDF
Basics of Embedded System
Automotive embedded systems part2 v1
Alden Hart and Rob Giesburt at Hardware Innovation Summit 2013
Embedded System
OSEK / VDX
Embedded systems
Tech Days 2015: ARM Programming with GNAT and Ada 2012
Lecture 3 - Driving.pdf
K vector embedded_linux_workshop
maXbox Starter 45 Robotics
The Wireless Remote Control Car Based On Arm9
Redes de sensores sem fio autonômicas: abordagens, aplicações e desafios
Issta11
EMBEDDED-SYSTEMS DESIGN ENGINEERING.pptx
Erlang Embedded — Concurrent Blinkenlights and More!
Capstone Report
Osek turbo
Linux Kernel Booting Process (1) - For NLKB
hashdays 2011: Ange Albertini - Such a weird processor - messing with x86 opc...
Basics of Embedded System

More from AdaCore (20)

PDF
RCA OCORA: Safe Computing Platform using open standards
PDF
Have we a Human Ecosystem?
PDF
Rust and the coming age of high integrity languages
PDF
SPARKNaCl: A verified, fast cryptographic library
PDF
Developing Future High Integrity Processing Solutions
PDF
Taming event-driven software via formal verification
PDF
Pushing the Boundary of Mostly Automatic Program Proof
PDF
RCA OCORA: Safe Computing Platform using open standards
PDF
Product Lines and Ecosystems: from customization to configuration
PDF
Securing the Future of Safety and Security of Embedded Software
PDF
Spark / Ada for Safe and Secure Firmware Development
PDF
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
PDF
The Future of Aerospace – More Software Please!
PDF
Adaptive AUTOSAR - The New AUTOSAR Architecture
PDF
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
PDF
Software Engineering for Robotics - The RoboStar Technology
PDF
MISRA C in an ISO 26262 context
PPTX
Application of theorem proving for safety-critical vehicle software
PDF
The Application of Formal Methods to Railway Signalling Software
PDF
Bounded Model Checking for C Programs in an Enterprise Environment
RCA OCORA: Safe Computing Platform using open standards
Have we a Human Ecosystem?
Rust and the coming age of high integrity languages
SPARKNaCl: A verified, fast cryptographic library
Developing Future High Integrity Processing Solutions
Taming event-driven software via formal verification
Pushing the Boundary of Mostly Automatic Program Proof
RCA OCORA: Safe Computing Platform using open standards
Product Lines and Ecosystems: from customization to configuration
Securing the Future of Safety and Security of Embedded Software
Spark / Ada for Safe and Secure Firmware Development
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
The Future of Aerospace – More Software Please!
Adaptive AUTOSAR - The New AUTOSAR Architecture
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Software Engineering for Robotics - The RoboStar Technology
MISRA C in an ISO 26262 context
Application of theorem proving for safety-critical vehicle software
The Application of Formal Methods to Railway Signalling Software
Bounded Model Checking for C Programs in an Enterprise Environment

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Spectroscopy.pptx food analysis technology
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Machine Learning_overview_presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Tartificialntelligence_presentation.pptx
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Per capita expenditure prediction using model stacking based on satellite ima...
Getting Started with Data Integration: FME Form 101
Spectroscopy.pptx food analysis technology
Spectral efficient network and resource selection model in 5G networks
Machine Learning_overview_presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Assigned Numbers - 2025 - Bluetooth® Document
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A comparative analysis of optical character recognition models for extracting...
Group 1 Presentation -Planning and Decision Making .pptx
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
20250228 LYD VKU AI Blended-Learning.pptx
Tartificialntelligence_presentation.pptx

GNAT GPL For Mindstorms

  • 1. Matteo Bordin [email_address] Porting GNAT to Lego Mindstorm NXT: an Education-oriented Platform for High-Integrity Systems Piotr Piwko [email_address]
  • 2. Summary Introduction & Motivations GNATPro OSEK Operating System NXT Ada Library Demo application Future improvements Slide:
  • 3. Introduction & Motivations Project consisted in : P orting the GNATPro ZFP Technology to ARM 7 W r iting an Ada binding for the nxt OSEK API D evelop ing a working prototype Slide: Motivations to have a port of GNATPro to Mindstorms A low-cost platform for high-integrity system (HIS) development Ideal for education: industrial need of experts in HIS
  • 4. GNATPro Slide: GNAT Pro GNAT Pro High Integrity Edition A complete development environment for Ada 83, 95 and 2005
  • 5. OSEK overview ( http://www.osek-vdx.org/ ) OSEK - " Open Systems and the Corresponding Interfaces for Automotive Electronics „ S ingle processor operating system OSEK is designed to require only a minimum of hardware resources OSEK Implementation Language (OIL) T he code could be executed from R OM R eal-time multi tasking Slide:
  • 6. OSEK history History timeline of the OSEK standard May 199 3 OSEK has been founded as a join t project in the German automotive industry . Initial project partners: BMW , Bosch , DaimlerChrysler , Opel, Siemens, VW and the the University of Karlsruhe as coordinator . Slide: 1993 1995 1997 ... 2003 1994
  • 7. OSEK history History timeline of the OSEK standard Slide: 199 4 The French car manufacturers PSA and Renault joined introducing their VDX-approach (Vehicle Distributed eXecutive) 1993 1995 1997 ... 2003 1994
  • 8. OSEK history History timeline of the OSEK standard Slide: September 1995 1.0 version of the OSEK Operating System 1993 1995 1997 ... 2003 1994
  • 9. OSEK history History timeline of the OSEK standard Slide: June 1997 2.0 version 1993 1995 1997 ... 2003 1994
  • 10. OSEK history History timeline of the OSEK standard Slide: January 2003 The latest 2.2.1 version of OSEK Operating System 1993 1995 1997 ... 2003 1994
  • 11. OSEK compilation chain Slide: Source: OSEK Implementation Language Specyfication 2.5
  • 12. OSEK application configuration files OSEK Implementation Language (OIL) The main OIL objects: Slide: TASK My_ Task { AUTOSTART = FALSE; SCHEDULE = FULL; PRIORITY = 3; ACTIVATION = 1; RESOURCE = My_Res ; EVENT = My_Event ; STACKSIZE = 512; }; TASK COUNTER Sy stem_Counter { MINCYCLE = 1; MAXALLOWEDVALUE = 10000; /* One tick is equal to 1msec */ TICKSPERBASE = 1; }; COUNTER EVENT My_Event { MASK = AUTO; }; EVENT RE S OURCE My_Res { RESOURCEPROPERTY = STANDARD; }; RESOURCE
  • 13. OSEK application configuration files Slide: ALARM C yclic_ A larm { COUNTER = Sys tem_Counter ; ACTION = ACTIVATETASK { TASK = My_ Task; }; AUTOSTART = TRUE { ALARMTIME = 1; /* My_ Task is executed every 500msec */ CYCLETIME = 500; }; }; ALARM
  • 14. nxt OSEK ( http://lejos-osek.sourceforge.net/ ) nxtOSEK provides: ANSI C/C++ programming environment by using GCC tool chain C / C++ API for NXT Sensors, Motor, and other devices TOPPERS OSEK – The open-source implementation of OSEK Real-Time Operating System that includes ARM7 specific porting part Features USB I2C bus Floating Point Direct boot from RAM (max. 64Kbytes single nxtOSEK application uploaded to RAM, no Flash write) Slide: O pen source firmware for LEGO MINDSTORMS NXT
  • 15. nxt OSEK + GNATPro ZFP Slide: GNATPRO 6.1.1 arm-elf cross-compiler Source code which is written in Ada Ada binding library for the nxtOSEK API
  • 16. NXT Ada Library Structure of the Ada binding library Slide: nxtOSEK .Display .OS .NXT .Types .Utils .Bluetooth .I2C .Sound .Motor .Acceleration_Sensor .Gyroscopic_Sensor .Light_Sensor .Sonar_Sensor .Sound_Sensor .Touch_Sensor
  • 17. Overall view Relation between Compiler, OS and API bindings Slide: TASK MyTask { PRIORITY = 1; ACTIVATION = 1; SCHEDULE = FULL; STACKSIZE = 512; }; ALARM MyTask_Alarm { COUNTER = SysCnt; ACTION = ACTIVATETASK { TASK = MyTask; }; AUTOSTART = TRUE { ALARMTIME = 1; CYCLETIME = 500; }; }; with nxtOSEK.OS; with nxtOSEK.Display; procedure My_Task; pragma Export (C, My_Task, "TaskMainMyTask"); procedure My_Task is begin nxtOSEK.Display.Update; nxtOSEK.OS.Terminate_Task; end My_Task; package nxtOSEK.Display is procedure Update; private pragma Import (C, Update, "display_update"); end nxtOSEK.Display; package nxtOSEK.OS is procedure Terminate_Task; private pragma Import (C, Terminate_Task, „terminate_task"); end nxtOSEK.OS;
  • 18. It’s demo time! – The Remote Control Vehicle (I) Vehicle Rear-wheel drive (2 motors) Steering System (1 motor) Ultrasonic Obstruction Detection (sonar sensor) Communication System (Bluetooth – slave device) Slide:
  • 19. It’s demo time! – The Remote Control Vehicle (II) Slide: Control Panel Motion-based control 1 Gyroscope (steering) 2 Touch sensors (move forward/backward) Communication System (Bluetooth - master device)
  • 20. Inside the demo Vehicle Slide: Sonar task Cycle: 50ms Critical distance: 30cm Receive task Cycle: 5ms Sonar warning flag Shared resource Steering system 1 motor Main propulsions 2 motors Bluetooth protocol
  • 21. Inside the demo Control panel Slide: Buttons task Cycle: 200ms Receive task Cycle: 50ms Gyroscopic sensor LCD display Bluetooth protocol Steering task Cycle: 5ms Movement control 2 Touch sensors
  • 22. Future improvements Support wider subsets of Ada Ravenscar Profile (language-level tasking) Automated Code Generation OIL files Application architecture From SysML/AADL models Object-oriented nxtOSEK Ada Library Slide:
  • 23. Conclusions GNAT for Ada 2005 An industrial-strength development environment for HIS LEGO Mindstorm NXT An education-oriented platform for embedded systems nxtOSEK: brings RTOS to the LEGO Mindstorm NXT GNAT for NXT An ideal platform to teach HIS development An answer to the industrial need for education in HIS Slide: