SlideShare a Scribd company logo
1 of 24
Embedded Product Line
Update
José Ruiz
October 1st 2015
Outline
• What is embedded
• Overview of cross targets
– Embedded OSs / bare board
– What is new
• Fun projects
What is embedded?
• Executes on a platform different from the host used for building
• Characteristics
– Reduced memory and processing power
– Limited graphical interface
– Safety/mission-critical
– Real-time requirements
– …
Embedded is expressive!
• Profiles for safety/mission-critical
– Tasking
– Multiprocessor
– Object-Oriented Programming
– Exceptions
• Ada 2012 contracts
function Sqrt (X : Integer) return Integer with
Pre => X >= 0,
Post => ((Sqrt’Result ** 2 <= X) and then
((Sqrt’Result + 1) ** 2 > X));
task Cyclic
with Priority => 100,
CPU => 3;
end Cyclic;
Embedded is verifiable!
AdaCore tools
• Static Analysis Tools
– Coding standard (GNATcheck)
– Code metrics (GNATmetrics)
– Static stack analysis (GNATstack)
– Static analysis (CodePeer)
– Formal proofs (SPARK Pro)
• Dynamic Analysis Tools
– Unit testing (GNATtest / Aunit)
– Code coverage (GNATcoverage)
– Emulation (GNATemulator)
– Debugging (GDB)
Partners
• Static Analysis Tools
– Axivion
• Static Analysis
• Dynamic Analysis Tools
– VectorCAST
• Unit/Integration Testing
• Code Coverage
– Rapita
• Timing Analysis Tool
• Code Coverage
– LDRA
• Unit/Integration Testing
Qualified
Qualified
Qualified
Qualified
Qualified
Qualified
Qualified
How to do embedded development
On top of embedded OS
• OS responsible for
– BSP
– Tasking
– Multiprocessor
• OS supported
– VxWorks
– PikeOS
– LynxOS
– Embedded linux
– Android
Bare board
• Ada run time provides
– Start up code
– BSP
– Tasking
– Multiprocessor
• Targets supported
– PowerPC/e500v2
– ARM
– ERC32/LEON2/LEON3
– AVR
GNAT Pro on embedded OS
• Ada run time uses OS services
• User benefits from
– BSP provided by the OS
• File system, networking
– Portability provided by the
Ada run time
Ada Application
Ada Run Time
Operating System
Hardware
GNAT Pro for VxWorks
• VxWorks 6/7 & SMP
– PowerPC / e500v2
– x86 / x86-64
– ARM
– VxWorks Simulator
• VxWorks 5.5
– PowerPC
– x86 (baselined)
– 68K (baselined)
• VxWorks 653 (1.8-3.0 supported) & MC
– PowerPC / e500v2
– x86
• VxWorks MILS
– PowerPC
• VxWorks Cert 6
– PowerPC / x86
• VxWorks Cert 5
– PowerPC
Run Times for VxWorks
Cert
Zero Footprint
(SPARK
compliant)
Ravenscar Full Kernel Full RTP
VxWorks Cert 5 & 6
VxWorks 5
VxWorks 6/7
VxWorks 653
Certified
News for VxWorks
• New platforms
– VxWorks 653 3.0
– VxWorks 7
• New targets
– ARM and x86-64
• Multicore support
– VxWorks 6 & 7
– VxWorks 653 3.0
• Zero cost exception propagation (Ravenscar and Full run times)
• Debugging support
– Active collaboration between Wind River and AdaCore
– Enhanced compiler and Workbench debugger
GNAT Pro for PikeOS
• PikeOS 3.4 hypervisor
– Support for x86 and PowerPC
• Three run-time profiles
– ZFP, Ravenscar
– Minimal
• Zero cost exception propagation (Ravenscar run time)
Certified
GNAT Pro for LynxOS
• LynxOS-178 (2.2.2)
– PowerPC
• LynxOS 5
– PowerPC / x86
• Zero cost exception propagation (Ravenscar and Full run times)
Cert
Zero Footprint
(SPARK
compliant)
Ravenscar Full
LynxOS-178
LynxOS 5
Certified
GNAT Pro for embedded linux
• Generic port for embedded linux
– x86, ARM, PowerPC, e500v2
• Reference platforms
– Wind River embedded linux (PowerPC)
– ElinOS (PowerPC / x86)
• Full Ada run times
– Zero cost exception propagation
– Multiprocessor support
GNAT Pro for Android
• Jelly Bean 4.1
• Lollipop 5.1
• GDB support
GNAT Pro for bare boards
• Most of the run time is shared among targets
• Configurable run times
– Make it easy to adapt to new board
– Startup routine
– Memory map
– Floating point support
Ada Application
Ada Run Time
Multitasking core
Hardware
BSP
Bare board targets
• PowerPC / e500v2
• ARM
– ARM Cortex M3, ARM Cortex M4F, ARM Cortex R4F
• LEON
– LEON2, LEON3, ERC32
• Baselined ports
– AVR microcontrollers
– Lego Mindstorms NXT
News for bare boards
• Ravenscar
• Productizing support for multiprocessors
– PowerPC, working on LEON
– Fully partitioned model
• Math library in Ada
– Certifiable
• Extending Ravenscar
– Addressing restrictions limiting
expressive power
• Protected entry queuing
• Multiple entry queues per
protected object
0
3
1
2
Ravenscar system on monoprocessor
task Cyclic
with Priority => 100,
CPU => 3;
end Cyclic;
Certified
News for bare boards (II)
• Zero-cost exception propagation
– Ravenscar Full run times
• Setting up shared GitHub
– Collaborative environment for demos, BSPs, drivers,…
• Emulator/coverage for ARM
Certification of run times
Avionics DO-178B/C Certification
Bare board PowerPC Ravenscar run time SSIL
3/4
x86 PikeOS Minimal run time SSIL 3/4 (in
progress)
Railway CENELEC Certification
EN 50128:2011, 50126:1999, 50129:2003
Space
ECSS E-ST-40C Q-ST-80C
Cert run time PowerPC VxWorks 653 certified Level
A
Cert run time PowerPC VxWorks 6 Cert (Level A in
progress)
Cert run time PowerPC LynxOS 178 (Level A in
progress)
Bare board Ravenscar run time qualified
Level B and Level C (ERC32, LEON2, LEON3)
Bare board for fun
• Lego Mindstorms NXT
• ARM boards
– STM32F4-Discovery
– Atmel SAM4S (Cortex M4)
• Raspberry Pi 2
• Crazyflie
– SPARK for proving absence of run-time errors
– Ravenscar Ada tasking
Bare board for fun (II)
• Play with concurrent / parallel execution
• Develop embedded control systems
– Manually written code
– QGen to automatically generate Ada/C from Simulink/Stateflow
• Replace embedded OS by Ravenscar Ada run time
• Develop BSPs and drivers
• Use SPARK to prove
– Functional properties
– Absence of run-time errors
Summary
• Choice of OS / bare board
• Tasking available
– Multiprocessor getting there gradually
• We can make it work on small targets
– Small footprint, no dynamic memory, very low overhead
• You can trust the code embedded on your target
– You can use Ada 2012 and tools to help make your code reliable
• … and you can have fun with cross development!
Resources
• Tools
<www.adacore.com/gnatpro-safety-critical>
• Crazyflie
<blog.adacore.com/how-to-prevent-drone-crashes-using-spark>
• Solenoid engine on STM32F4
<blog.adacore.com/make-with-ada-all-that-is-useless-is-essential>
• Tetris in SPARK on ARM (SAM4S)
<blog.adacore.com/tetris-in-spark-on-arm-cortex-m4>

More Related Content

What's hot

An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAMD Developer Central
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control InterfaceLinaro
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideLinaro
 
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common KernelLAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common KernelLinaro
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesAMD Developer Central
 
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...AMD Developer Central
 
LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)Linaro
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...AMD Developer Central
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVALinaro
 
Ostech war story using mainline linux for an android tv bsp
Ostech  war story  using mainline linux  for an android tv bspOstech  war story  using mainline linux  for an android tv bsp
Ostech war story using mainline linux for an android tv bspNeil Armstrong
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyLinaro
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeOfer Rosenberg
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewLinaro
 
sigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Devicesigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement DeviceBayLibre
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLinaro
 

What's hot (20)

An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation GuideBKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
BKK16-302: Android Optimizing Compiler: New Member Assimilation Guide
 
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common KernelLAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel
LAS16-105: Walkthrough of the EAS kernel adaptation to the Android Common Kernel
 
Hands on OpenCL
Hands on OpenCLHands on OpenCL
Hands on OpenCL
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...
CC-4001, Aparapi and HSA: Easing the developer path to APU/GPU accelerated Ja...
 
LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)LAS16-TR04: Using tracing to tune and optimize EAS (English)
LAS16-TR04: Using tracing to tune and optimize EAS (English)
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
 
BKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVABKK16-312 Integrating and controlling embedded devices in LAVA
BKK16-312 Integrating and controlling embedded devices in LAVA
 
SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel SDAccel Design Contest: Xilinx SDAccel
SDAccel Design Contest: Xilinx SDAccel
 
Ostech war story using mainline linux for an android tv bsp
Ostech  war story  using mainline linux  for an android tv bspOstech  war story  using mainline linux  for an android tv bsp
Ostech war story using mainline linux for an android tv bsp
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
 
HKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case studyHKG15-409: ARM Hibernation enablement on SoCs - a case study
HKG15-409: ARM Hibernation enablement on SoCs - a case study
 
SDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLSSDAccel Design Contest: Vivado HLS
SDAccel Design Contest: Vivado HLS
 
SDAccel Design Contest: Intro
SDAccel Design Contest: IntroSDAccel Design Contest: Intro
SDAccel Design Contest: Intro
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overview
 
sigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Devicesigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Device
 
LAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backportingLAS16-101: Efficient kernel backporting
LAS16-101: Efficient kernel backporting
 

Similar to Tech Days 2015: Embedded Product Update

QCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitectureQCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitectureCeph Community
 
QCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitectureQCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitecturePatrick McGarry
 
Public vs. Private Cloud Performance by Flex
Public vs. Private Cloud Performance by FlexPublic vs. Private Cloud Performance by Flex
Public vs. Private Cloud Performance by FlexStackIQ
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...DataWorks Summit/Hadoop Summit
 
GNAT Pro for ARM processors
GNAT Pro for ARM processorsGNAT Pro for ARM processors
GNAT Pro for ARM processorsAdaCore
 
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationHiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationVEDLIoT Project
 
Sharing High-Performance Interconnects Across Multiple Virtual Machines
Sharing High-Performance Interconnects Across Multiple Virtual MachinesSharing High-Performance Interconnects Across Multiple Virtual Machines
Sharing High-Performance Interconnects Across Multiple Virtual Machinesinside-BigData.com
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification StoryDVClub
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Monica Beckwith
 
yeong_wang_resume_Jan_2015
yeong_wang_resume_Jan_2015yeong_wang_resume_Jan_2015
yeong_wang_resume_Jan_2015Yeong Wang
 
Porting and Optimization of Numerical Libraries for ARM SVE
Porting and Optimization of Numerical Libraries for ARM SVEPorting and Optimization of Numerical Libraries for ARM SVE
Porting and Optimization of Numerical Libraries for ARM SVELinaro
 
OOW 2013: Where did my CPU go
OOW 2013: Where did my CPU goOOW 2013: Where did my CPU go
OOW 2013: Where did my CPU goKristofferson A
 
Identifying and Supporting 'X-compatible' Hardware Blocks
Identifying and Supporting 'X-compatible' Hardware BlocksIdentifying and Supporting 'X-compatible' Hardware Blocks
Identifying and Supporting 'X-compatible' Hardware BlocksChen-Yu Tsai
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmapjamieayre
 

Similar to Tech Days 2015: Embedded Product Update (20)

HiPEAC-Keynote.pptx
HiPEAC-Keynote.pptxHiPEAC-Keynote.pptx
HiPEAC-Keynote.pptx
 
RISC V in Spacer
RISC V in SpacerRISC V in Spacer
RISC V in Spacer
 
nios.ppt
nios.pptnios.ppt
nios.ppt
 
Building a Router
Building a RouterBuilding a Router
Building a Router
 
QCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitectureQCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference Architecture
 
QCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference ArchitectureQCT Ceph Solution - Design Consideration and Reference Architecture
QCT Ceph Solution - Design Consideration and Reference Architecture
 
Vlsi lab
Vlsi labVlsi lab
Vlsi lab
 
Public vs. Private Cloud Performance by Flex
Public vs. Private Cloud Performance by FlexPublic vs. Private Cloud Performance by Flex
Public vs. Private Cloud Performance by Flex
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
GNAT Pro for ARM processors
GNAT Pro for ARM processorsGNAT Pro for ARM processors
GNAT Pro for ARM processors
 
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentationHiPEAC Computing Systems Week 2022_Mario Porrmann presentation
HiPEAC Computing Systems Week 2022_Mario Porrmann presentation
 
Sharing High-Performance Interconnects Across Multiple Virtual Machines
Sharing High-Performance Interconnects Across Multiple Virtual MachinesSharing High-Performance Interconnects Across Multiple Virtual Machines
Sharing High-Performance Interconnects Across Multiple Virtual Machines
 
The Cortex-A15 Verification Story
The Cortex-A15 Verification StoryThe Cortex-A15 Verification Story
The Cortex-A15 Verification Story
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
 
yeong_wang_resume_Jan_2015
yeong_wang_resume_Jan_2015yeong_wang_resume_Jan_2015
yeong_wang_resume_Jan_2015
 
Porting and Optimization of Numerical Libraries for ARM SVE
Porting and Optimization of Numerical Libraries for ARM SVEPorting and Optimization of Numerical Libraries for ARM SVE
Porting and Optimization of Numerical Libraries for ARM SVE
 
OOW 2013: Where did my CPU go
OOW 2013: Where did my CPU goOOW 2013: Where did my CPU go
OOW 2013: Where did my CPU go
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
 
Identifying and Supporting 'X-compatible' Hardware Blocks
Identifying and Supporting 'X-compatible' Hardware BlocksIdentifying and Supporting 'X-compatible' Hardware Blocks
Identifying and Supporting 'X-compatible' Hardware Blocks
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesAdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsAdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationAdaCore
 
Securing the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareSecuring the Future of Safety and Security of Embedded Software
Securing the Future of Safety and Security of Embedded SoftwareAdaCore
 
Spark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentSpark / Ada for Safe and Secure Firmware Development
Spark / Ada for Safe and Secure Firmware DevelopmentAdaCore
 
Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...Introducing the HICLASS Research Programme - Enabling Development of Complex ...
Introducing the HICLASS Research Programme - Enabling Development of Complex ...AdaCore
 
The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!The Future of Aerospace – More Software Please!
The Future of Aerospace – More Software Please!AdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaCore
 
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...
Using Tiers of Assurance Evidence to Reduce the Tears! Adopting the “Wheel of...AdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologyAdaCore
 
MISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextMISRA C in an ISO 26262 context
MISRA C in an ISO 26262 contextAdaCore
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareAdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareAdaCore
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 

More from AdaCore (20)

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

Recently uploaded

Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Recently uploaded (20)

Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

Tech Days 2015: Embedded Product Update

  • 1.
  • 2. Embedded Product Line Update José Ruiz October 1st 2015
  • 3. Outline • What is embedded • Overview of cross targets – Embedded OSs / bare board – What is new • Fun projects
  • 4. What is embedded? • Executes on a platform different from the host used for building • Characteristics – Reduced memory and processing power – Limited graphical interface – Safety/mission-critical – Real-time requirements – …
  • 5. Embedded is expressive! • Profiles for safety/mission-critical – Tasking – Multiprocessor – Object-Oriented Programming – Exceptions • Ada 2012 contracts function Sqrt (X : Integer) return Integer with Pre => X >= 0, Post => ((Sqrt’Result ** 2 <= X) and then ((Sqrt’Result + 1) ** 2 > X)); task Cyclic with Priority => 100, CPU => 3; end Cyclic;
  • 6. Embedded is verifiable! AdaCore tools • Static Analysis Tools – Coding standard (GNATcheck) – Code metrics (GNATmetrics) – Static stack analysis (GNATstack) – Static analysis (CodePeer) – Formal proofs (SPARK Pro) • Dynamic Analysis Tools – Unit testing (GNATtest / Aunit) – Code coverage (GNATcoverage) – Emulation (GNATemulator) – Debugging (GDB) Partners • Static Analysis Tools – Axivion • Static Analysis • Dynamic Analysis Tools – VectorCAST • Unit/Integration Testing • Code Coverage – Rapita • Timing Analysis Tool • Code Coverage – LDRA • Unit/Integration Testing Qualified Qualified Qualified Qualified Qualified Qualified Qualified
  • 7. How to do embedded development On top of embedded OS • OS responsible for – BSP – Tasking – Multiprocessor • OS supported – VxWorks – PikeOS – LynxOS – Embedded linux – Android Bare board • Ada run time provides – Start up code – BSP – Tasking – Multiprocessor • Targets supported – PowerPC/e500v2 – ARM – ERC32/LEON2/LEON3 – AVR
  • 8. GNAT Pro on embedded OS • Ada run time uses OS services • User benefits from – BSP provided by the OS • File system, networking – Portability provided by the Ada run time Ada Application Ada Run Time Operating System Hardware
  • 9. GNAT Pro for VxWorks • VxWorks 6/7 & SMP – PowerPC / e500v2 – x86 / x86-64 – ARM – VxWorks Simulator • VxWorks 5.5 – PowerPC – x86 (baselined) – 68K (baselined) • VxWorks 653 (1.8-3.0 supported) & MC – PowerPC / e500v2 – x86 • VxWorks MILS – PowerPC • VxWorks Cert 6 – PowerPC / x86 • VxWorks Cert 5 – PowerPC
  • 10. Run Times for VxWorks Cert Zero Footprint (SPARK compliant) Ravenscar Full Kernel Full RTP VxWorks Cert 5 & 6 VxWorks 5 VxWorks 6/7 VxWorks 653 Certified
  • 11. News for VxWorks • New platforms – VxWorks 653 3.0 – VxWorks 7 • New targets – ARM and x86-64 • Multicore support – VxWorks 6 & 7 – VxWorks 653 3.0 • Zero cost exception propagation (Ravenscar and Full run times) • Debugging support – Active collaboration between Wind River and AdaCore – Enhanced compiler and Workbench debugger
  • 12. GNAT Pro for PikeOS • PikeOS 3.4 hypervisor – Support for x86 and PowerPC • Three run-time profiles – ZFP, Ravenscar – Minimal • Zero cost exception propagation (Ravenscar run time) Certified
  • 13. GNAT Pro for LynxOS • LynxOS-178 (2.2.2) – PowerPC • LynxOS 5 – PowerPC / x86 • Zero cost exception propagation (Ravenscar and Full run times) Cert Zero Footprint (SPARK compliant) Ravenscar Full LynxOS-178 LynxOS 5 Certified
  • 14. GNAT Pro for embedded linux • Generic port for embedded linux – x86, ARM, PowerPC, e500v2 • Reference platforms – Wind River embedded linux (PowerPC) – ElinOS (PowerPC / x86) • Full Ada run times – Zero cost exception propagation – Multiprocessor support
  • 15. GNAT Pro for Android • Jelly Bean 4.1 • Lollipop 5.1 • GDB support
  • 16. GNAT Pro for bare boards • Most of the run time is shared among targets • Configurable run times – Make it easy to adapt to new board – Startup routine – Memory map – Floating point support Ada Application Ada Run Time Multitasking core Hardware BSP
  • 17. Bare board targets • PowerPC / e500v2 • ARM – ARM Cortex M3, ARM Cortex M4F, ARM Cortex R4F • LEON – LEON2, LEON3, ERC32 • Baselined ports – AVR microcontrollers – Lego Mindstorms NXT
  • 18. News for bare boards • Ravenscar • Productizing support for multiprocessors – PowerPC, working on LEON – Fully partitioned model • Math library in Ada – Certifiable • Extending Ravenscar – Addressing restrictions limiting expressive power • Protected entry queuing • Multiple entry queues per protected object 0 3 1 2 Ravenscar system on monoprocessor task Cyclic with Priority => 100, CPU => 3; end Cyclic; Certified
  • 19. News for bare boards (II) • Zero-cost exception propagation – Ravenscar Full run times • Setting up shared GitHub – Collaborative environment for demos, BSPs, drivers,… • Emulator/coverage for ARM
  • 20. Certification of run times Avionics DO-178B/C Certification Bare board PowerPC Ravenscar run time SSIL 3/4 x86 PikeOS Minimal run time SSIL 3/4 (in progress) Railway CENELEC Certification EN 50128:2011, 50126:1999, 50129:2003 Space ECSS E-ST-40C Q-ST-80C Cert run time PowerPC VxWorks 653 certified Level A Cert run time PowerPC VxWorks 6 Cert (Level A in progress) Cert run time PowerPC LynxOS 178 (Level A in progress) Bare board Ravenscar run time qualified Level B and Level C (ERC32, LEON2, LEON3)
  • 21. Bare board for fun • Lego Mindstorms NXT • ARM boards – STM32F4-Discovery – Atmel SAM4S (Cortex M4) • Raspberry Pi 2 • Crazyflie – SPARK for proving absence of run-time errors – Ravenscar Ada tasking
  • 22. Bare board for fun (II) • Play with concurrent / parallel execution • Develop embedded control systems – Manually written code – QGen to automatically generate Ada/C from Simulink/Stateflow • Replace embedded OS by Ravenscar Ada run time • Develop BSPs and drivers • Use SPARK to prove – Functional properties – Absence of run-time errors
  • 23. Summary • Choice of OS / bare board • Tasking available – Multiprocessor getting there gradually • We can make it work on small targets – Small footprint, no dynamic memory, very low overhead • You can trust the code embedded on your target – You can use Ada 2012 and tools to help make your code reliable • … and you can have fun with cross development!
  • 24. Resources • Tools <www.adacore.com/gnatpro-safety-critical> • Crazyflie <blog.adacore.com/how-to-prevent-drone-crashes-using-spark> • Solenoid engine on STM32F4 <blog.adacore.com/make-with-ada-all-that-is-useless-is-essential> • Tetris in SPARK on ARM (SAM4S) <blog.adacore.com/tetris-in-spark-on-arm-cortex-m4>

Editor's Notes

  1. SMP Symmetric Multi Processor MC Multi Core
  2. ARINC APEX binding for Cert run time Working on VxWorks 7 Safety Profile
  3. Cortex-R – high-performance cores for real-time applications Cortex-M – microcontroller cores for a wide range of embedded applications.
  4. Raspberry Pi 2: Embedded linux on quad-core ARM Cortex-A7
  5. Microsoft Confidential