Warning: This material may contain defense sensitive data, competitive and sensitive trade secret or technical information of KAI proprietary rights. The use (to provide, disclose, reproduce or copy to the third person/party) of this material without the prior approval of KAI is strictly prohibited in accordance with the related laws and regulations. T-50 Avionics Embedded Software Development using Java ISET 2011 - The 6 th International Symposium on Embedded Technology (May 20-21, 2011)
21
Embed
T-50 Avionics Embedded Software Development Using Java
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Warning: This material may contain defense sensitive data, competitive and sensitive trade secret or technical information of KAI proprietary rights. The use (to provide, disclose, reproduce or copy to the third person/party) of this material without the prior approval of KAI is strictly prohibited in accordance with the related laws and regulations.
T-50 Avionics Embedded Software Development using Java
ISET 2011 - The 6th International Symposium on Embedded Technology (May 20-21, 2011)
Overview• The Flagship Project
− Core Software
• Why Java?− C/C++ Experience in Other Projects
• Pointer Problems− Java Pros and Cons
• Real-time Java
• Language Selection• Development
− OFP Layers− Speed & Size Issues− Optimizations
• Points to Ponder
Korea Aerospace Industries Proprietary Information 2
The Flagship Project• Total systems development
− Core software: FC, MFDS, IUFC, HUD, and SMS− Core avionics hardware: KMC, SMC− Test bench, and Mission support system
Korea Aerospace Industries Proprietary Information 3
RTOS CertificationRTOS Certification
- NEOS by MDS Technology (DO-178B Level A Certifiable)- NEOS by MDS Technology (DO-178B Level A Certifiable)
Test Bench DevelopmentTest Bench Development
- System Integration Laboratory- Software Development Station- System Integration Laboratory- Software Development Station
Hardware DevelopmentHardware Development
- KMC by Intellics- SMC by DoDaam Systems
- KMC by Intellics- SMC by DoDaam Systems
Ground Support System Ground Support System
- MPSS by KIDA- MPSS by KIDA
Software DevelopmentSoftware Development
- FC- MFDS- IUFC by AMC- HUD by DoDaam Systems
- FC- MFDS- IUFC by AMC- HUD by DoDaam Systems
Avionics Embedded System Verification
Operation & Maintenance
KMC: Korea Mission ComputerMFDS: Multi-Function Display SetMPSS: Mission Planning and Support SystemSMC: Stores Management ComputerSMS: Stores Management System
FC: Fire ControlHUD: Head Up DisplayIUFC: Integrated Up Front ControlsKIDA: Korea Institute for Defense Analysis
C/C++ Experience in Other Projects• C/C++ demands high alertness and workload
− Resource management : new/delete, open/close, lock/unlock• For C++, RAII helps but not without attention to copy constructors
and copy assignment operators (The Rule of Three)− Exception handling: assert was used instead for debugging− Pointers: cannot live without but usually the culprit of most of
the troubles− Many other do’s and don’ts
• Lessons learned from prior projects including T-50 went into KUH− Coding guidelines became Coding Standards− Peer review prerequisites are enforced with automated tools
• LDRA coding rule checking and PolySpace static verification
Korea Aerospace Industries Proprietary Information 7
KUH: Korea Utility HelicopterRAII: Resource Acquisition is Initialization
KUH C++ Applications (OFP)KUH C++ Applications (OFP)
OpenGLOpenGL
Device DriversDevice Drivers
SMMSMM PFDPFD MFDSMFDS CDUCDU
KAI Framework based on
Rhapsody OXF(OS Services)
KAI Framework based on
Rhapsody OXF(OS Services)
* OS : VxWorks, Windows
KAI APIKAI API
Self (KAI) provided portability
Speed & Size Issues• OFP is designed with 50Hz rate groups
− Each rate group should complete well within 20msec
• Initially, it took almost 40msec for a FC OFP rate group to complete which was double the time limit− One of the reasons was data I/O utilizing JNI, especially
MIL-STD-1553 due to its tight coupling with the OFP− The other reasons were compile options
• HUD and MFDS were also suffered− HUD requires many JNI calls to present cursive graphic
objects on the display− MFDS initially had a size of over 300MB before optimization
Korea Aerospace Industries Proprietary Information 16
Optimizations• Took a few months to optimize
− Compile/build options including• Tradeoff between profiled interpreter code vs compiled code• Static binding for virtual calls (no dynamic class loading), etc.
− JNI• Reducing the number of JNI calls• Reducing run-time creation of temporary data buffers
− Some design considerations• Making final and static where applicable e.g. constants• Reducing the number of threads
• Overall efforts brought down the speed to within 20msec, and the size from over 80MB to 50MB and then to 30MB in case of FC OFP
Korea Aerospace Industries Proprietary Information 17
Points to Ponder• JNI
− With some care, it is a nice solution for hardware interfaces− Alternatives may be considered e.g. CORBA, XML
• But are they DO-178 compliant?
• Sound practice is needed regardless of languages− Programming idioms such as LSP, and− Design & Coding standards enforcing them, and− Review processes with support from automated tools
• But within the same rules, Java eases much of a burden off the programmer− Enables spending more time on design, or having a longer
coffee breakKorea Aerospace Industries Proprietary Information 18
Points to Ponder• DO-178C and supplement documents are due by the
end of 2011− After 7 years of preparation since OOTiA handbook in 2004− Will enable the use of real-time Java Technology with
deterministic garbage collection in critical avionics software
• Open source, cost effective tools and environments− One such case is TOPCASED
• Eclipse based systems/software development environment promoting model-driven development and formal methods
• Java is a good language of choice for safety-critical, hard real-time embedded software development
Korea Aerospace Industries Proprietary Information 19
DO-178C: Safety Considerations in Airborne Systems and Equipment CertificationOOTiA: Object Oriented Technology in AviationTOPCASED: The Open-Source Toolkit for Critical Systems
Korea Aerospace Industries Proprietary Information 21
Air-BEST Air-borne Embedded System and TechnologiesAPI Application Program InterfaceARINC Aeronautical Radio IncorporatedBSP Board Support PackageCDU Control and Display UnitFAA Federal Aviation AdministrationFC Fire ControlGC Garbage CollectionHUD Head Up DisplayIUFC Integrated Up Front ControlsJNI Java Native InterfaceJOGL Java OpenGLJSR Java Specification RequestJVM Java Virtual MachineKAI Korea Aerospace Industries, Ltd.KIDA Korea Institute for Defense AnalysisKUH Korea Utility HelicopterKMC Korea Mission ComputerLSP Liskov Substitution PrincipleMFDS Multi-function Display Set
MIL-STD Military StandardMPSS Mission Planning and Support SystemOFP Operational Flight ProgramOOTiA Object Oriented Technology in Aviation, FAAOpenCL Open Computing LanguageOpenGL Open Graphics LibraryOS Operating SystemOXF Object Execution FrameworkPDR Preliminary Design ReviewPFD Primary Flight DisplayRAII Resource Acquisition Is InitializationRTOS Real-time Operating SystemRTSJ Real-time Specification for JavaSC Safety CriticalSIL System Integration LaboratorySMC Stores Management ComputerSMM System Mission ManagementSMS Stores Management SystemSTE Software Test EquipmentUFC Up-front Controls