C++ at High Subsonic Speed
summary
KONGSBERG builds NSM and JSM missiles running C++ since 1995 on PowerPC targets (NSM <2GB RAM, JSM 16 cores on Integrity 11). Toolchain includes HiMake builds, shaman workspace manager, Green Hills and GCC compilers with annual GCC cadence, QA C++ and clang‑tidy modernize, Google Test, Uncrustify+AStyle formatting, and hardware tracing. Coding rules ban runtime heap usage after init and use bounded containers; a trace-guided change from copy to move yields a 50× speed-up and enforces no heap after startup constraints.
AI-written summary · about
chapters (32)
- 0:00Introduction
- 1:07Naval Strike Missile - NSM
- 1:46Joint Strike Missile - JSM
- 3:17Many technologies to be integrated
- 4:17Resources on Missile Computers
- 6:11Development of military product takes time
- 7:04Architecture
- 7:37UML to executable code
- 9:38Make it easy to write application code
- 11:41SW Development Process Tools
- 11:59Source code management
- 13:11Workspace management
- 14:18HiMake Build System
- 16:03HiMake build description example
- 18:14C++ Coding Standards
- 19:11NSM & JSM C++ Coding Standard
- 20:06No dynamic memory allocation
- 20:55Approach to C++ standards
- 22:50Code Optimization
- 23:23Green Hills Super Trace Probe
- 24:42Visualizing a trace
- 27:33Vizualizing One RPC
- 28:40FsArray constructor
- 30:12SW is tested, and tested
- 31:04Flight test
- 32:22Compiler policy
- 33:00Compiler update policy
- 34:31Compiler warnings
- 40:15Run time analysis tools
- 41:03C++ source code beautifier
- 42:39Code beautifier example
- 43:57Thank you
related talks
49mDeveloping a missile simulator
01h 09m“Modern C++ in Embedded Systems - The Saga Continues”
54mModel Based SW Engineering: a success story from development of the Joint Strike Missile
01h 00mModern Software Needs Embedded Modern C++ Programming
25mCo-operative JIT Compilation for Resource-Constrained Low-Power Coprocessors
01h 11mC++ in the World of Embedded Systems
12mLibc++ on Linux - using the example of Oniro
14mA portable area efficient SRAM compiler: a ... job somebody has to do
