SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Ada at Barco avionics


Ludovic Brenta
Ada-Belgium General Assembly, 2007-06-12




Copyright (c) 2007 Barco NV.
Permission is granted to make and distribute verbatim copies of this document. Modification is not allowed.
Barco Avionics

• One of the seven divisions of Barco NV
• Established in 1998
• Growing fast
• We are hiring!
Eurocopter Tiger
T-33 Minuteman
BE-200
P-3D Orion
Retrofit on RC-135 (during, after)
Pilatus PC-21
What's so special about avionics

• Certification requirements
   – We obey the civilian DO-178B recommendations
   – or the customer's military standard if applicable
• Long life-times
   – Development of an aircraft: 8-10 years
   – In-flight service: 30-50 years
   – Avionics cycles can be shorter because of upgrades
• Hardware constraints
• Typical development schedule
   – Development, testing and certification: 2-3 years
   – Maintenance: 20+ years
   – (our first products are still being maintained)
   – We have contractual obligations to keep an inventory
     of spare parts
What we do
• Design and manufacture processor and other boards
   – using COTS or custom-made components
   – factory in Poperinge, also serves rest of Barco
• Design and manufacture power supplies
   – the power supply in an aircraft is very unpredictable
   – but the electronics requires very reliable supply
• Design keyboards and other mechanical parts
   – subcontractors make the keyboards, LCDs, cases etc.
• Design and assemble the quot;optical stackquot;:
   – LCD, backlights (lamp and LEDs), special glass panels
• Design, implement and test the software
   – Firmware (quot;boot softwarequot;)
   – Application software
• Assemble the units in Kortrijk
• Design and implement the testing procedures
   – Vibration, electric static discharge, temperature,
     moisture, Hightly-Accelerated Life Testing, etc.
Control Display and Management Units

                 • A dumb text-only terminal
                    – Only uppercase characters
                      (large and small)
                    – With 8 glorious colours!
                 • Linked to several on-board
                   computers
                    – (hence quot;multi-purposequot;)
                    – flight management
                      computer
                    – mission computer
                    – etc.
                 • Uses either ARINC 739 or
                   MIL-STD-1553 buses
Internal architecture of CDMS (1994)


          • First generation (1994)
             – 64-bit RISC microcontroller, 1024
               instructions max
             – Electroluminescent display (not LCD)
             – Monochrome (amber)
             – Programed in assembly language
Internal architecture of CDMS (1998)
• Second generation (1998)
   – MPC68360 quot;QUICCquot; processor (68000 core, 25 MHz)
   – 512 kb RAM, 512 kb Flash
   – Quarter-VGA (320x240) LCD
   – Programmed in Ada 83 with CSMART (Certifiable SMall Ada Run-
     Time) from Alsys
                – Separate ARINC board
                  with XScale µcontroller
                – Separate keyboard and
                  display with XScale µc
Internal architecture of CDMS (2007)
             • Third generation (2007)
                – PowerQUICC II processor
                    • PowerPC 603e core, 16+16k cache, 450
                      MHz
                – 256 Mb RAM, 512 Mb Flash
                – Full VGA display (640x480)
                – Video capable
                – On-board ARINC FPGA
                  (programmed in VHDL)
                – Programmed in Ada 95, pragma
                  No_Run_Time
Multi-Function Displays

     • Smart graphical terminal
     • Connected via ARINC 429 or MIL-STD-1553
       buses to multiple computers
        – Air Data Computer (airspeed, pressure
          altitude, etc.)
        – Global Positioning System
        – Inertial Reference System
        – Radio altimeter
        – Autopilot
        – Navigation computer (VOR, DME, ILS, etc.)
        – Weather radar
        – Other subsystems and sensors: engines, fuel,
          etc.
     • Various push button and rotating knobs on
       all four sides
        – Depending on customer, of course
Multi-Function Displays
• 5quot;x4quot;
Multi-Function (here Primary Flight)
Displays
• 6quot;x8quot;
Multi-Function Displays
• 6quot;x8quot; with separate processing unit
Multi-Function (another Primary Flight)
Displays
• 12quot;x9quot; (not yet sold)
Internal architecture of Multi-Function
Displays
  • Symbol Generator (2002)
     – PowerQUICC
         • PowerPC core, 16+16k cache, 100 MHz
     – 32 Mb RAM, 32 Mb Flash
     – Programmed in Ada 95 with Minimal Ada Run-time
       Kernel (MARK, from Rational Apex)
  • Symbol Generator II (2006)
     – Mostly identical to third generation of CDMS
     – PowerQUICC II
         • PowerPC 603e core, 16+16k cache, 450 MHz
     – Optional PowerPC G3 (MPC755)
         • 32+32k cache, 1 Mb L2 external cache, 400 MHz
     – 256 Mb RAM, 512 Mb Flash (more in the future)
     – Programmed in Ada 95 with pragma No_Run_Time
     – Uses a COTS real-time operating system
Trends in avionics displays

           • The displays' processor boards are ever
             more powerful
           • Goal: eliminate physical computers
             from the aircraft, run their software
             inside the display
                – (autopilot, flight management sytem,
                  etc.)




 –Challenges:
    • introduce multitasking into the display
    • logical partitioning between applications
    • hard real-time requirements, different for each
      app
    • certification requirements, different for each
      app
    • communications between apps using shared
      memory
MOSART

• Modular Open Systems ARchiTecture
   – An API we build our apps on
   – We also offer it to customers who want to write their
     own apps
   – Provides device drivers and built-in tests for all
     components of the display
History of Ada at Barco (1)
• 1986 - Barco decides to enter the avionics market
   – First product: a CRT video display
• 1994 – First product with embedded software
   – CDMS programmed in assembly language with 1024
     instructions
   – No software or hardware engineers - just quot;engineersquot;
• 1998 – First Ada training
   – Only two people trained: the senior quot;engineersquot;
   – First internal tool (native) using ObjectAda
• Separation into hardware and software teams
   – Hire a software development manager
   – Has experience with Ada in nuclear simulation
   – First embedded project uses C-Smart, Alsys Ada (83)
     and Rational Apex
   – Introduces UML (later abandoned)
• 2001 - Ada 83 coding standard
   – Written by a consultant from KU Leuven
History of Ada at Barco (2)

• 2004 - Start of Mosart development
   – Language question revisited
   – Stay with Ada due to inertia
   – Provide a C binding to Mosart for customers
• 2005 - Ada 95 coding standard
• 2006 - Second wave of Ada training
   – Ada Basics by yours truly
       • May 2006: 2 new hires + 1 C developer
       • January 2007: 1 new hire
   – Ada Advanced by Adalog
       • September 2006: 11 developers
   – Contents tailored for avionics
DO-178B certification (1)

• DO-178B: quot;Software Considerations in Airborne
  Systems and Equipment Certificationquot;
• Defines 5 levels of criticality depending on the
  consequences of a failure
   – Level   A: catastrophic (aircraft crashes)
   – Level   B: hazardous (aircraft flies but is crippled)
   – Level   C: serious
   – Level   D: pilots are annoyed
   – Level   E: passengers are annoyed
DO-178B certification (2)

                      • Certification requires three quot;stacksquot; of documents:
                         – With traceability between items in each document


                         System requirements      Verification of System requirements


Testing procedures       Software requirements    Verification of Software requirements


Verification of          Software design          Verification of Software design
testing procedures

                                                  Verification of Low-level requirements
                         Low-level requirements
Results of testing
procedures
                         Source text              Verification of source text


                         Object code              Verification of object code
DO-178B certification (3)

• Additional documents required for certification:
   – Software development procedure
   – Design standard
   – Coding standard
   – Verification that the software development procedure
     has been followed
       • Waivers in case of deviations
   – Verification that the design standard has been
     followed
       • Waivers in case of deviations
   – Verification that the coding standard has been
     followed
       • Waivers in case of deviations
DO-178B certification (4)

• Level A: full stack required
   – In particular: traceability between source text and
     object code
       • Requires support from the compiler
       • Main concern of the coding standard
   – With independence
       • i.e. the person who verifies is not the person who writes
• Level B: only down to source code
   – Object code not verified
   – With independence
• Level C: only down to source code
   – Independence not required
Coding standard: why (1)

• We are required to have one, per DO-178B
• Uniformity of source text
• Portability
• Maintainability
• Avoid dangerous constructs
   – Infinite loops
   – Dynamic memory allocation and deallocation
   – Aliasing
• Allow dangerous constructs (!)
   – Low-level access to hardware
   – Memory-mapped devices
   – Machine code insertions
Coding standard: why (2)

• Make it easy to test the software
   – All subprograms and package variables must be
     declared in spec
       • (except instances of Ada.Unchecked_Conversion)
   – Unit tests are child packages
• Help trace source text to object code
   – Be aware of quot;hiddenquot; object code
       •   Range checks
       •   Access checks
       •   Tag checks
       •   Exception propagation
       •   Functions returning objects of unconstrained types
       •   Secondary stack
       •   Variant records
       •   Tags and dynamic dispatching
       •   Changes of representation during type conversions
       •   etc.
   – Reduce the amount of quot;hiddenquot; object code
Coding standard: how

• For each language feature:
   – Usage is allowed: no problem
   – Usage is allowed with documentation:
       • Comments required in source text
       • Justification required in source text or design document
   – Usage is disallowed:
       • No excuses accepted
• The rules depend on the criticality level
   – Level A: quot;highquot; - traceability to object code req'd
   – Levels B .. D: quot;mediumquot;
   – Level E: quot;lowquot; - everything except goto is allowed
Coding standard: examples (1)

• Functions returning objects of unconstrained types:
   – Level A .. C: disallowed; levels D .. E: allowed with doc
• General access types
   – Disallowed, except
     System.Address_To_Access_Conversions
   – Consequence: no silent aliasing
• Anonymous access types
   – Disallowed: they introduce aliasing
• Tagged types: allowed
• Discriminants with default values
   – Require Size representation clause: size may not
     change
• Compiler-dependent packages disallowed
   – Except System.Machine_Code
Coding standard: examples (2)

• Allow low-level programming features with
  documentation:
   – Overlays
   – System.Address_To_Access_Conversions
   – Machine code insertions
   – pragma Volatile, pragma Atomic
   – Full rep clauses required (pragma Pack not sufficient)
   – pragma Import, pragma Export
Coding standard: examples (3)

• Dynamic dispatching
   – Not yet widely accepted in avionics
   – Certification authorities are wary
   – Why:
       •   Not sure which subprogram is called
       •   Not sure there is a subprogram to call
       •   Dangers of “down-casting”
       •   Call of abstract subprograms
   – Rules:
       • Level A: disallowed (pragma Restrictions (No_Dispatch) required)
       • Level B .. D: allowed with documentation (dispatching calls must
         be identified)
       • Level E: allowed
       • Polymorphic collections (e.g. array of access to class-wide type)
         must be static

• Tagged types and type extension are always allowed
Coding standard: examples (4)

• Tasking
   – Level A: disallowed
   – Level B .. D: Ravenscar only, with documentation
   – Level E: allowed
   – Requires a run-time kernel which must also be certified
   – Requires analysis of the scheduling
• Our current practice
   – No tasking used in existing products
       • CSMART: no tasking provided
       • MARK: no tasking provided
   – Tasking provided by the RTOS in products currently in
     development (using MOSART)

Mais conteúdo relacionado

Mais procurados

CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLC
CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLCCarDAQ Plus Manual from Clark Heintz Tools & Equipment LLC
CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLCClark Heintz
 
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V International
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...Rogue Wave Software
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingLinaro
 
Rapid control prototyping system for power electronics
Rapid control prototyping system for power electronicsRapid control prototyping system for power electronics
Rapid control prototyping system for power electronicsimperix
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
 
Polyteda Power DRC/LVS July 2016
Polyteda Power DRC/LVS July 2016Polyteda Power DRC/LVS July 2016
Polyteda Power DRC/LVS July 2016Oleksandra Nazola
 
Albin profile
Albin profileAlbin profile
Albin profileAlbin B
 
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...MIPI Alliance
 
VVDN Presentation
VVDN PresentationVVDN Presentation
VVDN Presentationvibansal
 
FRDM-KL46Z_Hands-On_Presentation_v02
FRDM-KL46Z_Hands-On_Presentation_v02FRDM-KL46Z_Hands-On_Presentation_v02
FRDM-KL46Z_Hands-On_Presentation_v02Libor GECNUK
 
ASICSoft Technologies Overview - R&D
ASICSoft Technologies Overview - R&DASICSoft Technologies Overview - R&D
ASICSoft Technologies Overview - R&DTony Devlin
 
Kartik_Parmar_Resume_2016
Kartik_Parmar_Resume_2016Kartik_Parmar_Resume_2016
Kartik_Parmar_Resume_2016Kartik Parmar
 
Polyteda: Power DRC/LVS, October 2016
Polyteda: Power DRC/LVS, October 2016Polyteda: Power DRC/LVS, October 2016
Polyteda: Power DRC/LVS, October 2016Oleksandra Nazola
 
About CREATEK 2011
About CREATEK 2011About CREATEK 2011
About CREATEK 2011OwenZhong
 

Mais procurados (20)

CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLC
CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLCCarDAQ Plus Manual from Clark Heintz Tools & Equipment LLC
CarDAQ Plus Manual from Clark Heintz Tools & Equipment LLC
 
System Design on Zynq using SDSoC
System Design on Zynq using SDSoCSystem Design on Zynq using SDSoC
System Design on Zynq using SDSoC
 
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML AcceleratorsRISC-V & SoC Architectural Exploration for AI and ML Accelerators
RISC-V & SoC Architectural Exploration for AI and ML Accelerators
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 
Jai kumar fpga_prototyping
Jai kumar fpga_prototypingJai kumar fpga_prototyping
Jai kumar fpga_prototyping
 
BKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance TestingBKK16-400A LuvOS and ACPI Compliance Testing
BKK16-400A LuvOS and ACPI Compliance Testing
 
Rapid control prototyping system for power electronics
Rapid control prototyping system for power electronicsRapid control prototyping system for power electronics
Rapid control prototyping system for power electronics
 
EMC2 Xilinx SDSoC presentation
EMC2 Xilinx SDSoC presentationEMC2 Xilinx SDSoC presentation
EMC2 Xilinx SDSoC presentation
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
 
Polyteda Power DRC/LVS July 2016
Polyteda Power DRC/LVS July 2016Polyteda Power DRC/LVS July 2016
Polyteda Power DRC/LVS July 2016
 
Phillip 2015 08-28
Phillip 2015 08-28Phillip 2015 08-28
Phillip 2015 08-28
 
Albin profile
Albin profileAlbin profile
Albin profile
 
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...
MIPI DevCon 2016: How to Use the VESA Display Stream Compression (DSC) Standa...
 
VVDN Presentation
VVDN PresentationVVDN Presentation
VVDN Presentation
 
FRDM-KL46Z_Hands-On_Presentation_v02
FRDM-KL46Z_Hands-On_Presentation_v02FRDM-KL46Z_Hands-On_Presentation_v02
FRDM-KL46Z_Hands-On_Presentation_v02
 
ASICSoft Technologies Overview - R&D
ASICSoft Technologies Overview - R&DASICSoft Technologies Overview - R&D
ASICSoft Technologies Overview - R&D
 
Kartik_Parmar_Resume_2016
Kartik_Parmar_Resume_2016Kartik_Parmar_Resume_2016
Kartik_Parmar_Resume_2016
 
Aspire service offerings pacom
Aspire service offerings pacomAspire service offerings pacom
Aspire service offerings pacom
 
Polyteda: Power DRC/LVS, October 2016
Polyteda: Power DRC/LVS, October 2016Polyteda: Power DRC/LVS, October 2016
Polyteda: Power DRC/LVS, October 2016
 
About CREATEK 2011
About CREATEK 2011About CREATEK 2011
About CREATEK 2011
 

Destaque

Field service of reconnaissance capability
Field service of reconnaissance capabilityField service of reconnaissance capability
Field service of reconnaissance capabilityJonas Linde
 
Flight testing – a part of the road to NVG introduction in SwAF
Flight testing – a part of the road to NVG introduction in SwAFFlight testing – a part of the road to NVG introduction in SwAF
Flight testing – a part of the road to NVG introduction in SwAFJonas Linde
 
Curtiss-Wright Controls Avionics & Electronics Corporate Overview
Curtiss-Wright Controls Avionics & Electronics Corporate OverviewCurtiss-Wright Controls Avionics & Electronics Corporate Overview
Curtiss-Wright Controls Avionics & Electronics Corporate OverviewCurtiss-Wright Defense Solutions
 
Bringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipsBringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipseInfochips (An Arrow Company)
 
Comparison between m346 and t50 final-by ted
Comparison between m346 and t50 final-by tedComparison between m346 and t50 final-by ted
Comparison between m346 and t50 final-by tedAlex Yin
 
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMS
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMSEASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMS
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMSsoulstalker
 
55 Business Models to Revolutionize your Business by Michaela Csik
55 Business Models to Revolutionize your Business by Michaela Csik55 Business Models to Revolutionize your Business by Michaela Csik
55 Business Models to Revolutionize your Business by Michaela Csikjindrichweiss
 

Destaque (11)

CWC-AE Cassidian Barracuda User Story
CWC-AE Cassidian Barracuda User StoryCWC-AE Cassidian Barracuda User Story
CWC-AE Cassidian Barracuda User Story
 
Field service of reconnaissance capability
Field service of reconnaissance capabilityField service of reconnaissance capability
Field service of reconnaissance capability
 
Efis D100
Efis D100Efis D100
Efis D100
 
Flight testing – a part of the road to NVG introduction in SwAF
Flight testing – a part of the road to NVG introduction in SwAFFlight testing – a part of the road to NVG introduction in SwAF
Flight testing – a part of the road to NVG introduction in SwAF
 
Board Design and System Software
Board Design and System SoftwareBoard Design and System Software
Board Design and System Software
 
eInfochips Avionics Capabilities
eInfochips Avionics CapabilitieseInfochips Avionics Capabilities
eInfochips Avionics Capabilities
 
Curtiss-Wright Controls Avionics & Electronics Corporate Overview
Curtiss-Wright Controls Avionics & Electronics Corporate OverviewCurtiss-Wright Controls Avionics & Electronics Corporate Overview
Curtiss-Wright Controls Avionics & Electronics Corporate Overview
 
Bringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochipsBringing Internet of Things to Life with ARM Architecture | eInfochips
Bringing Internet of Things to Life with ARM Architecture | eInfochips
 
Comparison between m346 and t50 final-by ted
Comparison between m346 and t50 final-by tedComparison between m346 and t50 final-by ted
Comparison between m346 and t50 final-by ted
 
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMS
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMSEASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMS
EASA PART-66 MODULE 5.15 : TYPICAL AIRCRAFT INSTRUMENT SYSTEMS
 
55 Business Models to Revolutionize your Business by Michaela Csik
55 Business Models to Revolutionize your Business by Michaela Csik55 Business Models to Revolutionize your Business by Michaela Csik
55 Business Models to Revolutionize your Business by Michaela Csik
 

Semelhante a Ada at Barco avionics

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
 
AAME ARM Techcon2013 003v02 Software Development
AAME ARM Techcon2013 003v02  Software DevelopmentAAME ARM Techcon2013 003v02  Software Development
AAME ARM Techcon2013 003v02 Software DevelopmentAnh Dung NGUYEN
 
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 Aheadjamieayre
 
xmobots at the Scade User Group Conference 2013
xmobots at the Scade User Group Conference 2013xmobots at the Scade User Group Conference 2013
xmobots at the Scade User Group Conference 2013Ansys
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boardsLF Events
 
Between Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative IntroductionBetween Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative Introductionlukhnos
 
39245147 intro-es-i
39245147 intro-es-i39245147 intro-es-i
39245147 intro-es-iEmbeddedbvp
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
Smalltalk on a CE device
Smalltalk on a CE deviceSmalltalk on a CE device
Smalltalk on a CE deviceESUG
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilab
 
PowerDRC/LVS 2.2 released by POLYTEDA
PowerDRC/LVS 2.2 released by POLYTEDAPowerDRC/LVS 2.2 released by POLYTEDA
PowerDRC/LVS 2.2 released by POLYTEDAAlexander Grudanov
 
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...Paris Open Source Summit
 
Scalable AI Solution cross AI platforms
Scalable AI Solution cross AI platformsScalable AI Solution cross AI platforms
Scalable AI Solution cross AI platformsKTN
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesPooya Eimandar
 
Emb Sys Rev Ver1
Emb Sys   Rev Ver1Emb Sys   Rev Ver1
Emb Sys Rev Ver1ncct
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionPersiPersi1
 

Semelhante a Ada at Barco avionics (20)

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...
 
AAME ARM Techcon2013 003v02 Software Development
AAME ARM Techcon2013 003v02  Software DevelopmentAAME ARM Techcon2013 003v02  Software Development
AAME ARM Techcon2013 003v02 Software Development
 
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
 
xmobots at the Scade User Group Conference 2013
xmobots at the Scade User Group Conference 2013xmobots at the Scade User Group Conference 2013
xmobots at the Scade User Group Conference 2013
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 
Between Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative IntroductionBetween Cocoa and Cocoa Touch: A Comparative Introduction
Between Cocoa and Cocoa Touch: A Comparative Introduction
 
39245147 intro-es-i
39245147 intro-es-i39245147 intro-es-i
39245147 intro-es-i
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Smalltalk on a CE device
Smalltalk on a CE deviceSmalltalk on a CE device
Smalltalk on a CE device
 
REDA services
REDA servicesREDA services
REDA services
 
ScilabTEC 2015 - Evidence
ScilabTEC 2015 - EvidenceScilabTEC 2015 - Evidence
ScilabTEC 2015 - Evidence
 
PowerDRC/LVS 2.2 released by POLYTEDA
PowerDRC/LVS 2.2 released by POLYTEDAPowerDRC/LVS 2.2 released by POLYTEDA
PowerDRC/LVS 2.2 released by POLYTEDA
 
CV_Arshad_21June16
CV_Arshad_21June16CV_Arshad_21June16
CV_Arshad_21June16
 
DRIVE PX 2
DRIVE PX 2DRIVE PX 2
DRIVE PX 2
 
Rashmi_Resume
Rashmi_ResumeRashmi_Resume
Rashmi_Resume
 
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
#OSSPARIS19 : A virtual machine approach for microcontroller programming : th...
 
Scalable AI Solution cross AI platforms
Scalable AI Solution cross AI platformsScalable AI Solution cross AI platforms
Scalable AI Solution cross AI platforms
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
Emb Sys Rev Ver1
Emb Sys   Rev Ver1Emb Sys   Rev Ver1
Emb Sys Rev Ver1
 
FPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusionFPGA_prototyping proccesing with conclusion
FPGA_prototyping proccesing with conclusion
 

Mais de Gneuromante canalada.org (14)

Ast2Cfg - A Framework for CFG-Based Analysis and Visualisation of Ada Programs
Ast2Cfg - A Framework for CFG-Based Analysis and Visualisation of Ada ProgramsAst2Cfg - A Framework for CFG-Based Analysis and Visualisation of Ada Programs
Ast2Cfg - A Framework for CFG-Based Analysis and Visualisation of Ada Programs
 
SIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop PresentationSIGAda Hibachi Workshop Presentation
SIGAda Hibachi Workshop Presentation
 
Developing Software that Matters (condensed)
Developing Software that Matters (condensed)Developing Software that Matters (condensed)
Developing Software that Matters (condensed)
 
Programming Languages and Software Construction
Programming Languages and Software ConstructionProgramming Languages and Software Construction
Programming Languages and Software Construction
 
Ada 95 - Distributed systems
Ada 95 - Distributed systemsAda 95 - Distributed systems
Ada 95 - Distributed systems
 
Ada 95 - Programming in the large
Ada 95 - Programming in the largeAda 95 - Programming in the large
Ada 95 - Programming in the large
 
Ada 95 - Object orientation
Ada 95 - Object orientationAda 95 - Object orientation
Ada 95 - Object orientation
 
Ada 95 - Structured programming
Ada 95 - Structured programmingAda 95 - Structured programming
Ada 95 - Structured programming
 
Ada 95 - Introduction
Ada 95 - IntroductionAda 95 - Introduction
Ada 95 - Introduction
 
Ada 95 - Generics
Ada 95 - GenericsAda 95 - Generics
Ada 95 - Generics
 
Developing Software That Matters I
Developing Software That Matters IDeveloping Software That Matters I
Developing Software That Matters I
 
Developing Software that Matters II
Developing Software that Matters IIDeveloping Software that Matters II
Developing Software that Matters II
 
Introduction to Ada
Introduction to AdaIntroduction to Ada
Introduction to Ada
 
Ada in Debian GNU/Linux
Ada in Debian GNU/LinuxAda in Debian GNU/Linux
Ada in Debian GNU/Linux
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Ada at Barco avionics

  • 1. Ada at Barco avionics Ludovic Brenta Ada-Belgium General Assembly, 2007-06-12 Copyright (c) 2007 Barco NV. Permission is granted to make and distribute verbatim copies of this document. Modification is not allowed.
  • 2. Barco Avionics • One of the seven divisions of Barco NV • Established in 1998 • Growing fast • We are hiring!
  • 7. Retrofit on RC-135 (during, after)
  • 9. What's so special about avionics • Certification requirements – We obey the civilian DO-178B recommendations – or the customer's military standard if applicable • Long life-times – Development of an aircraft: 8-10 years – In-flight service: 30-50 years – Avionics cycles can be shorter because of upgrades • Hardware constraints • Typical development schedule – Development, testing and certification: 2-3 years – Maintenance: 20+ years – (our first products are still being maintained) – We have contractual obligations to keep an inventory of spare parts
  • 10. What we do • Design and manufacture processor and other boards – using COTS or custom-made components – factory in Poperinge, also serves rest of Barco • Design and manufacture power supplies – the power supply in an aircraft is very unpredictable – but the electronics requires very reliable supply • Design keyboards and other mechanical parts – subcontractors make the keyboards, LCDs, cases etc. • Design and assemble the quot;optical stackquot;: – LCD, backlights (lamp and LEDs), special glass panels • Design, implement and test the software – Firmware (quot;boot softwarequot;) – Application software • Assemble the units in Kortrijk • Design and implement the testing procedures – Vibration, electric static discharge, temperature, moisture, Hightly-Accelerated Life Testing, etc.
  • 11. Control Display and Management Units • A dumb text-only terminal – Only uppercase characters (large and small) – With 8 glorious colours! • Linked to several on-board computers – (hence quot;multi-purposequot;) – flight management computer – mission computer – etc. • Uses either ARINC 739 or MIL-STD-1553 buses
  • 12. Internal architecture of CDMS (1994) • First generation (1994) – 64-bit RISC microcontroller, 1024 instructions max – Electroluminescent display (not LCD) – Monochrome (amber) – Programed in assembly language
  • 13. Internal architecture of CDMS (1998) • Second generation (1998) – MPC68360 quot;QUICCquot; processor (68000 core, 25 MHz) – 512 kb RAM, 512 kb Flash – Quarter-VGA (320x240) LCD – Programmed in Ada 83 with CSMART (Certifiable SMall Ada Run- Time) from Alsys – Separate ARINC board with XScale µcontroller – Separate keyboard and display with XScale µc
  • 14. Internal architecture of CDMS (2007) • Third generation (2007) – PowerQUICC II processor • PowerPC 603e core, 16+16k cache, 450 MHz – 256 Mb RAM, 512 Mb Flash – Full VGA display (640x480) – Video capable – On-board ARINC FPGA (programmed in VHDL) – Programmed in Ada 95, pragma No_Run_Time
  • 15. Multi-Function Displays • Smart graphical terminal • Connected via ARINC 429 or MIL-STD-1553 buses to multiple computers – Air Data Computer (airspeed, pressure altitude, etc.) – Global Positioning System – Inertial Reference System – Radio altimeter – Autopilot – Navigation computer (VOR, DME, ILS, etc.) – Weather radar – Other subsystems and sensors: engines, fuel, etc. • Various push button and rotating knobs on all four sides – Depending on customer, of course
  • 17. Multi-Function (here Primary Flight) Displays • 6quot;x8quot;
  • 18. Multi-Function Displays • 6quot;x8quot; with separate processing unit
  • 19. Multi-Function (another Primary Flight) Displays • 12quot;x9quot; (not yet sold)
  • 20. Internal architecture of Multi-Function Displays • Symbol Generator (2002) – PowerQUICC • PowerPC core, 16+16k cache, 100 MHz – 32 Mb RAM, 32 Mb Flash – Programmed in Ada 95 with Minimal Ada Run-time Kernel (MARK, from Rational Apex) • Symbol Generator II (2006) – Mostly identical to third generation of CDMS – PowerQUICC II • PowerPC 603e core, 16+16k cache, 450 MHz – Optional PowerPC G3 (MPC755) • 32+32k cache, 1 Mb L2 external cache, 400 MHz – 256 Mb RAM, 512 Mb Flash (more in the future) – Programmed in Ada 95 with pragma No_Run_Time – Uses a COTS real-time operating system
  • 21. Trends in avionics displays • The displays' processor boards are ever more powerful • Goal: eliminate physical computers from the aircraft, run their software inside the display – (autopilot, flight management sytem, etc.) –Challenges: • introduce multitasking into the display • logical partitioning between applications • hard real-time requirements, different for each app • certification requirements, different for each app • communications between apps using shared memory
  • 22. MOSART • Modular Open Systems ARchiTecture – An API we build our apps on – We also offer it to customers who want to write their own apps – Provides device drivers and built-in tests for all components of the display
  • 23. History of Ada at Barco (1) • 1986 - Barco decides to enter the avionics market – First product: a CRT video display • 1994 – First product with embedded software – CDMS programmed in assembly language with 1024 instructions – No software or hardware engineers - just quot;engineersquot; • 1998 – First Ada training – Only two people trained: the senior quot;engineersquot; – First internal tool (native) using ObjectAda • Separation into hardware and software teams – Hire a software development manager – Has experience with Ada in nuclear simulation – First embedded project uses C-Smart, Alsys Ada (83) and Rational Apex – Introduces UML (later abandoned) • 2001 - Ada 83 coding standard – Written by a consultant from KU Leuven
  • 24. History of Ada at Barco (2) • 2004 - Start of Mosart development – Language question revisited – Stay with Ada due to inertia – Provide a C binding to Mosart for customers • 2005 - Ada 95 coding standard • 2006 - Second wave of Ada training – Ada Basics by yours truly • May 2006: 2 new hires + 1 C developer • January 2007: 1 new hire – Ada Advanced by Adalog • September 2006: 11 developers – Contents tailored for avionics
  • 25. DO-178B certification (1) • DO-178B: quot;Software Considerations in Airborne Systems and Equipment Certificationquot; • Defines 5 levels of criticality depending on the consequences of a failure – Level A: catastrophic (aircraft crashes) – Level B: hazardous (aircraft flies but is crippled) – Level C: serious – Level D: pilots are annoyed – Level E: passengers are annoyed
  • 26. DO-178B certification (2) • Certification requires three quot;stacksquot; of documents: – With traceability between items in each document System requirements Verification of System requirements Testing procedures Software requirements Verification of Software requirements Verification of Software design Verification of Software design testing procedures Verification of Low-level requirements Low-level requirements Results of testing procedures Source text Verification of source text Object code Verification of object code
  • 27. DO-178B certification (3) • Additional documents required for certification: – Software development procedure – Design standard – Coding standard – Verification that the software development procedure has been followed • Waivers in case of deviations – Verification that the design standard has been followed • Waivers in case of deviations – Verification that the coding standard has been followed • Waivers in case of deviations
  • 28. DO-178B certification (4) • Level A: full stack required – In particular: traceability between source text and object code • Requires support from the compiler • Main concern of the coding standard – With independence • i.e. the person who verifies is not the person who writes • Level B: only down to source code – Object code not verified – With independence • Level C: only down to source code – Independence not required
  • 29. Coding standard: why (1) • We are required to have one, per DO-178B • Uniformity of source text • Portability • Maintainability • Avoid dangerous constructs – Infinite loops – Dynamic memory allocation and deallocation – Aliasing • Allow dangerous constructs (!) – Low-level access to hardware – Memory-mapped devices – Machine code insertions
  • 30. Coding standard: why (2) • Make it easy to test the software – All subprograms and package variables must be declared in spec • (except instances of Ada.Unchecked_Conversion) – Unit tests are child packages • Help trace source text to object code – Be aware of quot;hiddenquot; object code • Range checks • Access checks • Tag checks • Exception propagation • Functions returning objects of unconstrained types • Secondary stack • Variant records • Tags and dynamic dispatching • Changes of representation during type conversions • etc. – Reduce the amount of quot;hiddenquot; object code
  • 31. Coding standard: how • For each language feature: – Usage is allowed: no problem – Usage is allowed with documentation: • Comments required in source text • Justification required in source text or design document – Usage is disallowed: • No excuses accepted • The rules depend on the criticality level – Level A: quot;highquot; - traceability to object code req'd – Levels B .. D: quot;mediumquot; – Level E: quot;lowquot; - everything except goto is allowed
  • 32. Coding standard: examples (1) • Functions returning objects of unconstrained types: – Level A .. C: disallowed; levels D .. E: allowed with doc • General access types – Disallowed, except System.Address_To_Access_Conversions – Consequence: no silent aliasing • Anonymous access types – Disallowed: they introduce aliasing • Tagged types: allowed • Discriminants with default values – Require Size representation clause: size may not change • Compiler-dependent packages disallowed – Except System.Machine_Code
  • 33. Coding standard: examples (2) • Allow low-level programming features with documentation: – Overlays – System.Address_To_Access_Conversions – Machine code insertions – pragma Volatile, pragma Atomic – Full rep clauses required (pragma Pack not sufficient) – pragma Import, pragma Export
  • 34. Coding standard: examples (3) • Dynamic dispatching – Not yet widely accepted in avionics – Certification authorities are wary – Why: • Not sure which subprogram is called • Not sure there is a subprogram to call • Dangers of “down-casting” • Call of abstract subprograms – Rules: • Level A: disallowed (pragma Restrictions (No_Dispatch) required) • Level B .. D: allowed with documentation (dispatching calls must be identified) • Level E: allowed • Polymorphic collections (e.g. array of access to class-wide type) must be static • Tagged types and type extension are always allowed
  • 35. Coding standard: examples (4) • Tasking – Level A: disallowed – Level B .. D: Ravenscar only, with documentation – Level E: allowed – Requires a run-time kernel which must also be certified – Requires analysis of the scheduling • Our current practice – No tasking used in existing products • CSMART: no tasking provided • MARK: no tasking provided – Tasking provided by the RTOS in products currently in development (using MOSART)