SlideShare a Scribd company logo
Senior Software Engineer
Making the Ada Drivers Library
Fabien Chouteau
Ada & Device Drivers:
A Well-Engineered Collaboration
Ada’s strong typing system
encourages communication and demands precision
Representation clauses
are the killer feature for coding drivers
Contract-based programming
helps eliminate problems earlier in the development cycle
Object-oriented features
can improve code reuse
Multitasking support
is available for bare metal platforms
We wanted to experiment.
So, we started this project as a proof of concept to
explore whether this was demonstrable with modern ARM
microcontrollers.
We wanted to use the best features of Ada to provide:
• clean hardware mapping,
• good interfaces,
• code reuse, and
• easy debugging.
What did we learn?
• Modern microcontrollers are gigantic beasts.
• Accessing memory mapped register can be tricky (pragma
Volatile_Full_Access).
• Customization of run-times is still not flexible enough.
• Confirmed that Ada had good properties for programming device
drivers.
Representation clauses
GPIO->MODER &= ~(GPIO_MODER_MODER0 << (pin_nbr* 2));
VS
GPIO.MODER.Arr (Pin_Nbr) := 0;
package STM32_SVD.RNG is
pragma Preelaborate;
---------------
-- Registers --
---------------
-- control register
type CR_Register is record
-- unspecified
Reserved_0_1 : HAL.UInt2 := 16#0#;
-- Random number generator enable
RNGEN : Boolean := False;
-- Interrupt enable
IE : Boolean := False;
-- unspecified
Reserved_4_31 : HAL.UInt28 := 16#0#;
end record
with Volatile_Full_Access, Size => 32,
Bit_Order => System.Low_Order_First;
for CR_Register use record
Reserved_0_1 at 0 range 0 .. 1;
RNGEN at 0 range 2 .. 2;
IE at 0 range 3 .. 3;
Reserved_4_31 at 0 range 4 .. 31;
end record;
SVD2ada: generating hardware
register mapping
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<device schemaVersion="1.1"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
<name>STM32F46_79x</name>
<version>1.0</version>
<description>STM32F46_79x</description>
<!--Bus Interface Properties-->
<!--Cortex-M4 is byte addressable-->
<addressUnitBits>8</addressUnitBits>
<!--the maximum data bit width accessible within a single transfer-->
<width>32</width>
<!--Register Default Properties-->
<size>0x20</size>
<resetValue>0x0</resetValue>
<resetMask>0xFFFFFFFF</resetMask>
<peripherals>
<peripheral>
<name>RNG</name>
<description>Random number generator</description>
<groupName>RNG</groupName>
<baseAddress>0x50060800</baseAddress>
<addressBlock>
<offset>0x0</offset>
<size>0x400</size>
<usage>registers</usage>
</addressBlock>
<interrupt>
<name>HASH_RNG</name>
SVD2ada: generating hardware
register mapping
Now what?
Introducing the Ada_Drivers_Library
An Open Community Project hosted on GitHub
Vendor-independent
Makes it easy to use Ada to do interesting things with a
variety of ARM microcontrollers!
Ada_Drivers_Library Framework
MCU
HAL
Components
Services
Low-level drivers to interface with
peripherals on particular
microcontrollers
Ada layer providing clean
abstraction of hardware
External components connected to
the MCU in a standard way (I2C,
UART, SPI, SDIO, MMC, etc.)
OS services (we have a filesystem;
on our wishlist is a network stack,
USB stack, Bluetooth, etc.)
What’s in it?
• GPIOs
• I2C, SPI, UART
• ADC, DAC
• Audio (SAI)
• LCD and touch screen drivers
• Timers, PWM
• DMA
• Flexible Memory Controller (external RAM)
• Camera (DCMI)
• Random Number Generator
• SDcard
On what board?
Crazyflie 2.0
OpenMV
BBC Micro:Bit
Roadmap
• More boards from more vendors
• More device drivers
• More services (Filesystem, Bluetooth, USB)
• Robotics utilities and drivers
• General purpose control system code
Making with Ada
Make with Ada: Candy dispenser, with
a twist
Make with Ada: DIY Instant
Camera
Make with Ada: ARM
Cortex-M CNC controller
More Information Online
• The Ada_Drivers_Library
https://github.com/AdaCore/Ada_Drivers_Library
• Ada Driver Library for ARM Cortex-M/R - Part 1
https://community.arm.com/groups/embedded/blog/2016/07/08/ada-
driver-library
• MCQ Candy Dispenser
http://blog.adacore.com/make-with-ada-candy-dispenser-with-twist
• DIY Instant Camera
https://www.youtube.com/watch?v=MHo5bcHWx3o
• ARM Cortex-M CNC Controller
http://blog.adacore.com/make-with-ada-arm-cortex-m-cnc-controller
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library

More Related Content

What's hot

QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
GlobalLogic Ukraine
 
Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0
bsd free
 
Linux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emptionLinux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emption
Hemanth Venkatesh
 
Performance: Observe and Tune
Performance: Observe and TunePerformance: Observe and Tune
Performance: Observe and Tune
Paul V. Novarese
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
 
LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201
Linaro
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
Raul Leite
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
RajKumar Rampelli
 
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
Project ACRN
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
Chiawei Wang
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
GlobalLogic Ukraine
 
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry codeKernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Anne Nicolas
 
Linux Kernel Debugging
Linux Kernel DebuggingLinux Kernel Debugging
Linux Kernel Debugging
GlobalLogic Ukraine
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
Project ACRN
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?
Samsung Open Source Group
 
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
RISC-V International
 
Kernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusKernel Recipes 2015: Greybus
Kernel Recipes 2015: Greybus
Anne Nicolas
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
Kernel TLV
 
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed HinkelCE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
AMD Developer Central
 
Memory management
Memory managementMemory management
Memory management
Adrien Mahieux
 

What's hot (20)

QEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded DevelopmentQEMU and Raspberry Pi. Instant Embedded Development
QEMU and Raspberry Pi. Instant Embedded Development
 
Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0Linux io-stack-diagram v1.0
Linux io-stack-diagram v1.0
 
Linux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emptionLinux Device Driver parallelism using SMP and Kernel Pre-emption
Linux Device Driver parallelism using SMP and Kernel Pre-emption
 
Performance: Observe and Tune
Performance: Observe and TunePerformance: Observe and Tune
Performance: Observe and Tune
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201LAS16-TR03: Upstreaming 201
LAS16-TR03: Upstreaming 201
 
Known basic of NFV Features
Known basic of NFV FeaturesKnown basic of NFV Features
Known basic of NFV Features
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
 
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
ACRN vMeet-Up EU 2021 - Bridging Orchestrator and Hard Realtime Workload Cons...
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
 
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry codeKernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
Kernel Recipes 2016 - entry_*.S: A carefree stroll through kernel entry code
 
Linux Kernel Debugging
Linux Kernel DebuggingLinux Kernel Debugging
Linux Kernel Debugging
 
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisorACRN vMeet-Up EU 2021 - debug ACRN hypervisor
ACRN vMeet-Up EU 2021 - debug ACRN hypervisor
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?
 
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
 
Kernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusKernel Recipes 2015: Greybus
Kernel Recipes 2015: Greybus
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed HinkelCE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
CE-4027, Sensor Fusion – HID virtualized over LPC, by Reed Hinkel
 
Memory management
Memory managementMemory management
Memory management
 

Viewers also liked

Ada 95 - Programming in the large
Ada 95 - Programming in the largeAda 95 - Programming in the large
Ada 95 - Programming in the large
Gneuromante canalada.org
 
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
AdaCore
 
SIGAda 2011 AdaLabs presentation slides : How make Ada go viral
SIGAda 2011 AdaLabs presentation slides : How make Ada go viralSIGAda 2011 AdaLabs presentation slides : How make Ada go viral
SIGAda 2011 AdaLabs presentation slides : How make Ada go viral
AdaLabs
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
jamieayre
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
jamieayre
 
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification SolutionsAdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
jamieayre
 
Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012
AdaCore
 
Ada lovelace
Ada lovelaceAda lovelace
Ada lovelace
dearly07
 
Developing Software that Matters II
Developing Software that Matters IIDeveloping Software that Matters II
Developing Software that Matters II
Gneuromante canalada.org
 
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis ToolsGNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
AdaCore
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
AdaCore
 
Programming Languages and Software Construction
Programming Languages and Software ConstructionProgramming Languages and Software Construction
Programming Languages and Software Construction
Gneuromante canalada.org
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
jamieayre
 
SIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop PresentationSIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop Presentation
Gneuromante canalada.org
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
jamieayre
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
AdaCore
 
Ada Lovelace-The First Programmer
Ada Lovelace-The First ProgrammerAda Lovelace-The First Programmer
Ada Lovelace-The First Programmer
Ashita Agrawal
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
jamieayre
 
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Charitha Gamage
 

Viewers also liked (19)

Ada 95 - Programming in the large
Ada 95 - Programming in the largeAda 95 - Programming in the large
Ada 95 - Programming in the large
 
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway DemoTech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
Tech Days 2015: Ada 2012 and Spark Crazyflie and Railway Demo
 
SIGAda 2011 AdaLabs presentation slides : How make Ada go viral
SIGAda 2011 AdaLabs presentation slides : How make Ada go viralSIGAda 2011 AdaLabs presentation slides : How make Ada go viral
SIGAda 2011 AdaLabs presentation slides : How make Ada go viral
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
 
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification SolutionsAdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
 
Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012Tech Days 2015: ARM Programming with GNAT and Ada 2012
Tech Days 2015: ARM Programming with GNAT and Ada 2012
 
Ada lovelace
Ada lovelaceAda lovelace
Ada lovelace
 
Developing Software that Matters II
Developing Software that Matters IIDeveloping Software that Matters II
Developing Software that Matters II
 
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis ToolsGNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
GNAT Pro User Day: Latest Advances in AdaCore Static Analysis Tools
 
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
GNAT Pro User Day: Leveraging AdaCore Tool to Support Rigorous Software Devel...
 
Programming Languages and Software Construction
Programming Languages and Software ConstructionProgramming Languages and Software Construction
Programming Languages and Software Construction
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
 
SIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop PresentationSIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop Presentation
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
 
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
GNAT Pro User Day: Ada 2012, Ravenscar and SPARK running on an Atmel ARM M4 (...
 
Ada Lovelace-The First Programmer
Ada Lovelace-The First ProgrammerAda Lovelace-The First Programmer
Ada Lovelace-The First Programmer
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
 
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
Evaluate And Analysis of ALGOL, ADA ,PASCAL Programming Languages
 

Similar to AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library

AXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical supportAXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical support
Vitaliy Bozhkov ✔
 
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
 
An Overview Study on AVR32UC3 MCU: AT32UC3A3256
An Overview Study on AVR32UC3 MCU: AT32UC3A3256 An Overview Study on AVR32UC3 MCU: AT32UC3A3256
An Overview Study on AVR32UC3 MCU: AT32UC3A3256
Premier Farnell
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
Christopher Diamantopoulos
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Deepak Shankar
 
Asar resume
Asar resumeAsar resume
Asar resume
Asarudeen sheik
 
Vinay_CV
Vinay_CVVinay_CV
Vinay_CV
vinay kuddur
 
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 ServerExperiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 Server
JomaSoft
 
Hari Krishna Vetsa Resume
Hari Krishna Vetsa ResumeHari Krishna Vetsa Resume
Hari Krishna Vetsa Resume
Hari Krishna
 
micro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUsmicro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUs
eProsima
 
Energy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systemsEnergy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systems
Deepak Shankar
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
PersiPersi1
 
17 october embedded seminar
17 october embedded seminar17 october embedded seminar
17 october embedded seminar
Amir Sherman
 
Crypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsCrypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M Processors
Hannes Tschofenig
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.ppt
KundanSingh887495
 
Synopsys User Group Presentation
Synopsys User Group PresentationSynopsys User Group Presentation
Synopsys User Group Presentation
emlawgr
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
christopherfairbairn
 
Codescape Debugger 8
Codescape Debugger 8Codescape Debugger 8
Codescape Debugger 8
Damien Ruscoe
 
MemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL EnvironmentsMemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL Environments
Memory Fabric Forum
 
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
Jürgen Ambrosi
 

Similar to AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library (20)

AXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical supportAXONIM 2018 industrial automation technical support
AXONIM 2018 industrial automation technical support
 
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...
 
An Overview Study on AVR32UC3 MCU: AT32UC3A3256
An Overview Study on AVR32UC3 MCU: AT32UC3A3256 An Overview Study on AVR32UC3 MCU: AT32UC3A3256
An Overview Study on AVR32UC3 MCU: AT32UC3A3256
 
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
IMAGE CAPTURE, PROCESSING AND TRANSFER VIA ETHERNET UNDER CONTROL OF MATLAB G...
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
 
Asar resume
Asar resumeAsar resume
Asar resume
 
Vinay_CV
Vinay_CVVinay_CV
Vinay_CV
 
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 ServerExperiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 Server
 
Hari Krishna Vetsa Resume
Hari Krishna Vetsa ResumeHari Krishna Vetsa Resume
Hari Krishna Vetsa Resume
 
micro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUsmicro-ROS: Developing ROS 2 professional applications based on MCUs
micro-ROS: Developing ROS 2 professional applications based on MCUs
 
Energy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systemsEnergy efficient AI workload partitioning on multi-core systems
Energy efficient AI workload partitioning on multi-core systems
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 
17 october embedded seminar
17 october embedded seminar17 october embedded seminar
17 october embedded seminar
 
Crypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsCrypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M Processors
 
Developing a Windows CE OAL.ppt
Developing a Windows CE OAL.pptDeveloping a Windows CE OAL.ppt
Developing a Windows CE OAL.ppt
 
Synopsys User Group Presentation
Synopsys User Group PresentationSynopsys User Group Presentation
Synopsys User Group Presentation
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
 
Codescape Debugger 8
Codescape Debugger 8Codescape Debugger 8
Codescape Debugger 8
 
MemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL EnvironmentsMemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL Environments
 
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
2 Sessione - Macchine virtuali per la scalabilità di calcolo per velocizzare ...
 

More from jamieayre

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
jamieayre
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
jamieayre
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
jamieayre
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
jamieayre
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
jamieayre
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
jamieayre
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
jamieayre
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
jamieayre
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
jamieayre
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
jamieayre
 
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
jamieayre
 

More from jamieayre (11)

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
 
HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software HIS 2017 Paul Sherwood- towards trustable software
HIS 2017 Paul Sherwood- towards trustable software
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
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
 

Recently uploaded

Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
aragme
 
BeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdfBeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdf
DerekIwanaka1
 
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
ABHILASH DUTTA
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
techboxsqauremedia
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
Norma Mushkat Gaffin
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
Alexandra Fulford
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
Adam Smith
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
jeffkluth1
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
Adam Smith
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
FelixPerez547899
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
JeremyPeirce1
 
Authentically Social Presented by Corey Perlman
Authentically Social Presented by Corey PerlmanAuthentically Social Presented by Corey Perlman
Authentically Social Presented by Corey Perlman
Corey Perlman, Social Media Speaker and Consultant
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
hartfordclub1
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
Aggregage
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
➒➌➎➏➑➐➋➑➐➐Dpboss Matka Guessing Satta Matka Kalyan Chart Indian Matka
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
Top Forex Brokers Review
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Lviv Startup Club
 
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s DholeraTata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
Avirahi City Dholera
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
CA Dr. Prithvi Ranjan Parhi
 

Recently uploaded (20)

Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel ChartSatta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
Satta Matka Dpboss Matka Guessing Kalyan Chart Indian Matka Kalyan panel Chart
 
2022 Vintage Roman Numerals Men Rings
2022 Vintage Roman  Numerals  Men  Rings2022 Vintage Roman  Numerals  Men  Rings
2022 Vintage Roman Numerals Men Rings
 
BeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdfBeMetals Investor Presentation_June 1, 2024.pdf
BeMetals Investor Presentation_June 1, 2024.pdf
 
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
The Evolution and Impact of OTT Platforms: A Deep Dive into the Future of Ent...
 
Creative Web Design Company in Singapore
Creative Web Design Company in SingaporeCreative Web Design Company in Singapore
Creative Web Design Company in Singapore
 
Mastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnapMastering B2B Payments Webinar from BlueSnap
Mastering B2B Payments Webinar from BlueSnap
 
Business storytelling: key ingredients to a story
Business storytelling: key ingredients to a storyBusiness storytelling: key ingredients to a story
Business storytelling: key ingredients to a story
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
 
Part 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 SlowdownPart 2 Deep Dive: Navigating the 2024 Slowdown
Part 2 Deep Dive: Navigating the 2024 Slowdown
 
The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...The Influence of Marketing Strategy and Market Competition on Business Perfor...
The Influence of Marketing Strategy and Market Competition on Business Perfor...
 
Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024Company Valuation webinar series - Tuesday, 4 June 2024
Company Valuation webinar series - Tuesday, 4 June 2024
 
Top mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptxTop mailing list providers in the USA.pptx
Top mailing list providers in the USA.pptx
 
Authentically Social Presented by Corey Perlman
Authentically Social Presented by Corey PerlmanAuthentically Social Presented by Corey Perlman
Authentically Social Presented by Corey Perlman
 
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf2024-6-01-IMPACTSilver-Corp-Presentation.pdf
2024-6-01-IMPACTSilver-Corp-Presentation.pdf
 
Understanding User Needs and Satisfying Them
Understanding User Needs and Satisfying ThemUnderstanding User Needs and Satisfying Them
Understanding User Needs and Satisfying Them
 
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta MatkaDpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
Dpboss Matka Guessing Satta Matta Matka Kalyan Chart Satta Matka
 
Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024Best Forex Brokers Comparison in INDIA 2024
Best Forex Brokers Comparison in INDIA 2024
 
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
Evgen Osmak: Methods of key project parameters estimation: from the shaman-in...
 
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s DholeraTata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
Tata Group Dials Taiwan for Its Chipmaking Ambition in Gujarat’s Dholera
 
Income Tax exemption for Start up : Section 80 IAC
Income Tax  exemption for Start up : Section 80 IACIncome Tax  exemption for Start up : Section 80 IAC
Income Tax exemption for Start up : Section 80 IAC
 

AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library

  • 1.
  • 2. Senior Software Engineer Making the Ada Drivers Library Fabien Chouteau
  • 3.
  • 4. Ada & Device Drivers: A Well-Engineered Collaboration Ada’s strong typing system encourages communication and demands precision Representation clauses are the killer feature for coding drivers Contract-based programming helps eliminate problems earlier in the development cycle Object-oriented features can improve code reuse Multitasking support is available for bare metal platforms
  • 5. We wanted to experiment. So, we started this project as a proof of concept to explore whether this was demonstrable with modern ARM microcontrollers. We wanted to use the best features of Ada to provide: • clean hardware mapping, • good interfaces, • code reuse, and • easy debugging.
  • 6. What did we learn? • Modern microcontrollers are gigantic beasts. • Accessing memory mapped register can be tricky (pragma Volatile_Full_Access). • Customization of run-times is still not flexible enough. • Confirmed that Ada had good properties for programming device drivers.
  • 7. Representation clauses GPIO->MODER &= ~(GPIO_MODER_MODER0 << (pin_nbr* 2)); VS GPIO.MODER.Arr (Pin_Nbr) := 0;
  • 8. package STM32_SVD.RNG is pragma Preelaborate; --------------- -- Registers -- --------------- -- control register type CR_Register is record -- unspecified Reserved_0_1 : HAL.UInt2 := 16#0#; -- Random number generator enable RNGEN : Boolean := False; -- Interrupt enable IE : Boolean := False; -- unspecified Reserved_4_31 : HAL.UInt28 := 16#0#; end record with Volatile_Full_Access, Size => 32, Bit_Order => System.Low_Order_First; for CR_Register use record Reserved_0_1 at 0 range 0 .. 1; RNGEN at 0 range 2 .. 2; IE at 0 range 3 .. 3; Reserved_4_31 at 0 range 4 .. 31; end record; SVD2ada: generating hardware register mapping
  • 9. <?xml version="1.0" encoding="utf-8" standalone="no"?> <device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd"> <name>STM32F46_79x</name> <version>1.0</version> <description>STM32F46_79x</description> <!--Bus Interface Properties--> <!--Cortex-M4 is byte addressable--> <addressUnitBits>8</addressUnitBits> <!--the maximum data bit width accessible within a single transfer--> <width>32</width> <!--Register Default Properties--> <size>0x20</size> <resetValue>0x0</resetValue> <resetMask>0xFFFFFFFF</resetMask> <peripherals> <peripheral> <name>RNG</name> <description>Random number generator</description> <groupName>RNG</groupName> <baseAddress>0x50060800</baseAddress> <addressBlock> <offset>0x0</offset> <size>0x400</size> <usage>registers</usage> </addressBlock> <interrupt> <name>HASH_RNG</name> SVD2ada: generating hardware register mapping
  • 11. Introducing the Ada_Drivers_Library An Open Community Project hosted on GitHub Vendor-independent Makes it easy to use Ada to do interesting things with a variety of ARM microcontrollers!
  • 12. Ada_Drivers_Library Framework MCU HAL Components Services Low-level drivers to interface with peripherals on particular microcontrollers Ada layer providing clean abstraction of hardware External components connected to the MCU in a standard way (I2C, UART, SPI, SDIO, MMC, etc.) OS services (we have a filesystem; on our wishlist is a network stack, USB stack, Bluetooth, etc.)
  • 13. What’s in it? • GPIOs • I2C, SPI, UART • ADC, DAC • Audio (SAI) • LCD and touch screen drivers • Timers, PWM • DMA • Flexible Memory Controller (external RAM) • Camera (DCMI) • Random Number Generator • SDcard
  • 18. Roadmap • More boards from more vendors • More device drivers • More services (Filesystem, Bluetooth, USB) • Robotics utilities and drivers • General purpose control system code
  • 20. Make with Ada: Candy dispenser, with a twist
  • 21. Make with Ada: DIY Instant Camera
  • 22. Make with Ada: ARM Cortex-M CNC controller
  • 23.
  • 24. More Information Online • The Ada_Drivers_Library https://github.com/AdaCore/Ada_Drivers_Library • Ada Driver Library for ARM Cortex-M/R - Part 1 https://community.arm.com/groups/embedded/blog/2016/07/08/ada- driver-library • MCQ Candy Dispenser http://blog.adacore.com/make-with-ada-candy-dispenser-with-twist • DIY Instant Camera https://www.youtube.com/watch?v=MHo5bcHWx3o • ARM Cortex-M CNC Controller http://blog.adacore.com/make-with-ada-arm-cortex-m-cnc-controller