99: You Can Say a Boat

Embedded.fm · 29 Apr 2015 · 1h 23m

What this episode covers

Andrei Chichak, a systems developer at CBF Systems, discusses the MISRA-C standard, explaining its origins in the British automotive industry and its 143 static rules designed to prevent common C language pitfalls. He contrasts the rigorous, safety-critical approach of MISRA and JPL coding standards with the often flawed practices found in banking and early embedded systems, emphasizing the ethical responsibility of engineers. Chichak highlights specific tools like PC Lint and ARM Cortex-R processors, arguing that static analysis and strict adherence to standards are essential for preventing catastrophic failures in mission-critical applications.

Mentioned

Companies
CBF Systems, ARM, IAR, Gimble
Chips
Cortex-R
Tools
PC Lint
Also
MISRA-C, JPL Coding Standards, ISO 26262, National Society of Professional Engineers, C Traps and Pitfalls, Safer C, Plum Hall, GCC

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 39m

    Christmas Special

    Hosts Jeff Gable and Luca share war stories from their careers in embedded systems, highlighting the pain of manual testing in helicopter avionics, the chaos of managing requirements with Word and Excel in Dropbox for medical devices, and the technical debt of massive #ifdef blocks in legacy machine tool software. They discuss the industry's slow adoption of modern software practices like version control and CI/CD, contrasting embedded development with web development standards. The episode concludes with book recommendations including 'The Phoenix Project' and 'Team Topologies', and reflections on the future of IoT security and agile adoption in hardware.

  • The Pragmatic Embedded Podcast · 58m

    Modern C++ for Embedded with Niall Cooling

    Niall Cooling, director at Feabhas, explains how modern C++ (C++11 through C++23) enables safer, more agile embedded development by replacing C-style practices with compiler-enforced safety and modern tooling. He highlights 'quick wins' like `auto`, `constexpr`, and guaranteed copy elision, which improve code readability and performance without sacrificing the efficiency of C. Cooling argues that the true value of C++ lies in its ecosystem of header-only testing frameworks (like Doctest and Catch2), static analysis tools (Clang-tidy), and CI/CD integration, which allow teams to adopt Agile practices like Test-Driven Development (TDD) even in deeply embedded, safety-critical contexts. He contrasts this with the steep learning curve of Rust and emphasizes that successful adoption requires significant investment in training and process improvement rather than just language syntax changes.

  • The Pragmatic Embedded Podcast · 43m

    Systems Architecture with Maik Pfingsten

    Maik Pfingsten, an independent systems engineering professional, explains how to apply model-based systems engineering (MBSE) using SysML to complex embedded systems in safety-critical industries like automotive and medical devices. He argues that defining system boundaries and high-level interfaces early prevents the 'big design up front' pitfalls while allowing for necessary iteration between architecture and prototyping. Pfingsten emphasizes that software behaves differently than hardware or mechanics, requiring specific architectural rigor to manage complexity and ensure safety without relying on impossible zero-failure strategies.

  • The Pragmatic Embedded Podcast · 56m

    Modern Embedded Systems Programming with Miro Samek

    Miro Samek, founder and CEO of Quantum Leaps, explains why traditional embedded architectures like superloops and RTOS lead to 'spaghetti code' and concurrency bugs, advocating instead for event-driven active objects and hierarchical state machines. He details how this approach eliminates race conditions and mutexes by enforcing a 'no sharing' principle, thereby improving testability and development velocity. Samek also discusses the importance of using lightweight modeling tools to generate code from state diagrams, ensuring the model remains the source of truth in an agile workflow.

  • The Pragmatic Embedded Podcast · 50m

    Exploring Rust for Embedded Systems with Philip Markgraf

    Philip Markgraf, an experienced software developer and technical leader, discusses his recent experience building an embedded device for Kelvin, a green energy company, using the Rust programming language. He contrasts Rust's memory safety, sophisticated type system, and excellent tooling with the complexities and legacy constraints of C and C++. Markgraf highlights how Rust's borrow checker and standardized libraries simplify development, improve reliability, and attract motivated engineers, while noting that adoption is still in the early stages for embedded systems compared to cloud computing.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Embedded.fm. The episode itself belongs to its publisher.