Unlocking Efficient and Declarative State Machine Implementation in Firmware Using SML Library📚 (p1)

Описание к видео Unlocking Efficient and Declarative State Machine Implementation in Firmware Using SML Library📚 (p1)

This is part one of the video series where we explore the critical role of Finite State Machines (FSM) in firmware design. Despite its importance, many engineers overlook its explicit usage in designs.

We will introduce SML, a header-only library by Kris Jusiak (https://github.com/boost-ext/sml), aiming to revolutionize state machine implementation. By leveraging SML, developers can replace common and naive if/else or switch/enum implementations with an explicit transition table for clearer implementations.

Part two of the presentation will go beyond theory, delving into practical application by building a project using the SML library. Through this hands-on approach, we will address the burning question: Is SML truly worth adopting over conventional methods?

🌐 Article version:
https://atadiat.com/en/e-unlocking-ef...

--------------------------------
💼Contracting and Consulting services
I provide consulting services in the following areas: Firmware Development, Hardware Design, Technical Documentation & Content Creation, and Training.
Portfolio💡 https://www.atadiat.com/lab
Upwork 💼 https://www.upwork.com/workwith/yahya...
----------------------------------

💻 References and links:
* State machine implementations
Naive:
- if/else: https://godbolt.org/z/APHwnc
- switch/enum: https://godbolt.org/z/NM_-oY
- inheritance/state pattern: https://godbolt.org/z/dui-ar
STL:
- std::variant:https://godbolt.org/z/oY2FBl
- Coroutines:https://godbolt.org/z/P3zaNt
Boost:
- Boost.Statechart:https://godbolt.org/z/NN8UyH
- Boost.MSM: https://godbolt.org/z/nVTV0J

📖 Learn More:
- https://boost-ext.github.io/sml/tutor...
- https://boost-ext.github.io/sml/user_...
- https://boost-ext.github.io/sml/examp...
- "Rise of the State Machines" - Cpp Now 2019:    • C++Now 2019: Kris Jusiak “Rise of the...  
- https://boost-ext.github.io/sml/embo-...

Leak-OS SML Demo Code:
https://github.com/leka/LekaOS/blob/d...

Video Content:

0:00 Introduction
3:40 State Machine Recap
11:04 "Rise of State Machines" Talk Recap
16:25 if/else Impl.
18:16 Swtich/enum impl.
19:18 inheritance/state pattern impl.
20:55 Variant impl.
22:09 Coroutines impl.
23:37 Boost libraries impl.
26:12 SML library simplified review
41:44 Benchmark
45:05 Why state machines should matter for fw developers
50:25 Notable examples

Комментарии

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