Skip to content
0:00 / 0:00

#tdd#cppcon#microcontrollers

CppCon 2017: Mike Ritchie “Microcontrollers in Micro-increments...”

CppCon

189K subscribers • 136 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • A classic. People kept recommending it from 2017 to 2023.
  • Presented by Mike Ritchie
  • Linked in the descriptionCppCon/CppCon2017

Intermediate. Assumes working knowledge.

6.4K views9 years ago2 recommendations

Systems programmingTools and practiceC++Embedded systemsTesting

Mike Ritchie demonstrates a test-driven development workflow for embedded systems using C++, showing how to develop and refactor firmware safely.

Microcontrollers in Micro-increments : A Test-driven C++ Workflow for Embedded Systems CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2017 — Baby steps are safe steps. Making small moves in code, driven by tests, and continuously refactoring helps to keep embedded development on the right track. With test-driven development we can move more quickly, cleanly, and safely. With increased device capability comes increased expectations, and to meet these expectations we find that real-time operating systems, vendor-supplied drivers and third-party libraries are becoming the new normal for embedded projects. Debugging this complex embedded firmware directly on the target hardware, though, is a slow and painful process, and often with an uncertain outcome. In this talk I’ll demonstrate on a realistic hardware design how different test-driven idioms for C++ on embedded can help us to both build the code right, and build the right code. I’ll show how continuous integration builds, sanitizers and other tools can leverage this investment in tests, give us a high level of confidence in our code changes, and reduce the amount of time spent on debug-on-hardware activity. We’ll look at patterns of implementation in C++ that help to build testable embedded systems, as well as the trade-offs and compromises to a “pure” design ideal that we often have to make on these highly constrained devices. — Mike Ritchie: 13coders, Developer and Technical Coach Mike is an independent developer and trainer, working with C++ since the mid -90s, with a couple of detours into engineering management. He works mainly on embedded systems, and his focus is on making test-driven development and continuous integration work well for small devices. He also designs and builds custom hardware to help people practice these approaches, with varying degrees of success, electrical safety, and litigation. — Videos Filmed & Edited by Bash Films: BashFilms.com Work at Hudson River Trading (HRT): tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: BashFilms.com

Why it's here

2 people recommend this

What people say. Highly recommended for learning test-driven development and CI/CD workflows in embedded C++ environments.

Moments people linked to

u/kid-pro-quoin r/embedded • Recommends

A Test-driven C++ Workflow for Embedded Systems

u/kid-pro-quoarm-none-eabi-*in r/embedded • Recommends

On “Advice on using C++ in low level embedded”

Other good videos: * Modern C++ in Embedded Systems * Microcontrollers in Microincrements

u/kid-pro-quoin r/embedded • Recommends

On “Embedded Workflow”

Here are a few websites I've found over the years: - CI for Embedded Systems, James Munns - Microcontrollers in Micro-increments, CppCon 2017 Will add more later when I have access to my main machine.
4View on Reddit

u/Janilponin r/embedded • Recommends

On “Software Engineer Technical Development Advice”

Mike Ritchie designed an hardware/software Kata for embedded developers. You might find it interesting. Wish I knew of more projects like this, but I learned a lot just from his talk at CppCon and from looking through the github sources. Check it out for yourself. link to this video https://www.13coders.com/kata/

u/kid-pro-quoarm-none-eabi-*in r/embedded • Recommends

On “CI/CD pipelines for embedded”

Have a look at the video Microcontrollers in microicrements. It has a reasonable overview. Like others in this thread I've used raspberry pis, NUCs and chromeboxes running Linux as gateways for flashing devices etc. I've also had luck repurposing our factory test rigs during development.