emBO++ 2022 The constexpr init()/build() pattern: compose modular firmware with minimal runtime cost

Описание к видео emBO++ 2022 The constexpr init()/build() pattern: compose modular firmware with minimal runtime cost

Reusable firmware components enable quick project turn around time with high quality output. Attaining clean composition of components while meeting runtime and memory usage requirements can be a difficult problem to solve. Making a service extendable traditionally requires additional runtime and memory.

Additional runtime is required for features to register their extensions with extension points. Additional memory is required to store all of the extensions in each extension point.

The constexpr init()/build() pattern minimizes the runtime cost of clean composition by moving the entire initialization of extensions into a compile-time computation. Initialization time is eliminated from runtime. Memory usage can be optimally allocated at compile time.

This pattern has significant implications for organizing interrupt handlers, composing sequential flows of operations, callbacks, event listeners, and message handlers.

Luke Valenty started his career at Intel in 2008 developing simulation tools for validating hardware designs. He has been a firmware engineer writing C and C++ since 2018. Most recently Luke has led firmware development activities moving to C++ from C. Luke enjoys analyzing problems down to their fundamental concepts and developing solutions using state of the art techniques and methodologies.

This talk is part of the embedded systems conference emBO++

Комментарии

Информация по комментариям в разработке