Skip to content
0:00 / 0:00

#c++20#avr#compile-time-init-build

Composition on Tiny Embedded Systems in C++ - Luke Valenty - CppNow 2023

CppNow

39K subscribers • 42 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Luke Valenty

Advanced. Deep dive for people who know the field.

12K views3 years ago2 recommendations

Systems programmingProgramming languagesC++Embedded systems

Luke Valenty demonstrates how to use modern C++20 to write composable, highly optimized firmware for a tiny 1KB AVR microcontroller.

cppnow.org linkedin.com/company/cppnow --- Composition on Tiny Embedded Systems in Cpp - Luke Valenty - CppNow 2023 Slides: github.com/boostcon --- Join Luke Valenty and explore the unique challenges of writing composable firmware for deeply embedded systems with a live demonstration of creating a remote controlled RGB lighting controller. We'll cover low-level hardware register access, interrupt handler registration, logging, initialization and task registration, message handling, and safe arithmetic. While we build the firmware, we will also build up the hardware from scratch: powering up the microcontroller, using a logic analyzer to show signs of life, adding a USB UART adapter to support logging/debugging, lighting up RGB LEDs, and adding an IR receiver to control the them with a remote control. While implementing this demo, the presentation will cover C++ and design concepts such as using compile-time constructs for powerful and efficient abstractions; strategies for decoupling components; abstracting away low-level hardware details; and more. Join us as we explore this cutting edge approach for building efficient and maintainable firmware! --- Luke Valenty Luke started his career at Intel in 2008 as a hardware validation engineer developing tools to validate chip designs in simulation. Since 2018 Luke has been working as a lead firmware engineer for deeply embedded components. His team is embracing modern C++ and leaving C woes behind. --- think-cell develops one of the world’s leading PowerPoint applications, with C++ at the core of everything we build, from layout algorithms to deep integration with Microsoft Office. Interested in working on challenging C++ problems with real-world impact? Explore our open roles: think-cell.com/en/career/tech--- Videos Filmed & Edited By Bash Films: bashfilms.com/ YouTube Channel Managed & Optimized By Digital Medium Ltd: events.digital-medium.co.uk --- CppNow 2024 cppnow.org twitter.com/cppnow --- #boost #cpp #embeddedsystems

Why it's here

2 people recommend this

What people say. Highly recommended as an impressive demonstration of using modern C++20 and compile-time initialization on extremely constrained hardware.

u/hppyredittrin r/embedded • Recommends

Post modern C++ on embedded I have been coding in C, primarily for small embedded systems. Recently, I came across a fascinating talk by Luke Valenty where he demonstrated the use of C++20 on a 1KB AVR chip (not to mention the fact that the guy was breadboarding, programming, checking scope traces during the talk): link to this video I wanted to share these talks and maybe get the opinions of this community on how these could be useful. I've always struggled in the past trying to use C++ on tiny embedded devices, but from what the author has demonstrated, it is indeed possible with tooling available today. Users of C++, how are you using C++ on extremely constrained devices? Which libc++ ? Which C++…

u/Responsible-Nature20in r/embedded • Recommends

Compiletime Initialization Build Hi there embedded gurus. Has anyone tried to achieve what is shown in this video? It uses a open source library https://github.com/intel/compile-time-init-build I was interested in applying the logging module that strips the string constants of the final binary image and replaces them with an Id number to use as a key in a dictionary search to reconstruct the log message in the host computer... I failed miserably several times as I'm not that skiled on template metaprogramming of the C++ language that this library relies heavily on. But what is shown on the video is so good for devices with constrained resources...