Building Effective Embedded Systems in C++: Architectural Best Practices - Gili Kamma - CppCon 2023

Discover the architectural best practices for building effective embedded systems in C++ at CppCon 2023. Learn how to prioritize logic and hardware separation, minimize threads, and streamline log filtering for error-free and reliable systems.

Key takeaways
  • When building embedded systems, prioritize architectural best practices, such as separating logic and hardware layers.
  • Use operating systems for complex systems with soft real-time requirements.
  • Minimize the number of threads and strive for simplicity.
  • Verify system performance and reliability through simulator testing.
  • Identify errors proactively by monitoring logs and separating error-handling logic.
  • Use log levels to streamline log filtering and monitoring.
  • Avoid GUI-based front-ends for embedded systems.
  • Implement message formats with clear boundaries and identifiers.
  • Load testing simulators can help reproduce bugs and identify performance bottlenecks.
  • Version control systems can help track changes and identify errors.
  • Testing and QA should be performed early and often in the development process.
  • Use database systems, such as SQL databases, to store and retrieve data.
  • Implement redundant systems to handle errors and lost messages.
  • Separate hardware abstraction layer from logic layer.
  • Use simulators to test interfaces before integration.
  • Prioritize automated testing and monitoring.