CEC Semester Twenty Six 2024
Introduction to Build Systems and Cmake
Jacob Beningo -
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
CEC Archives | CEC Semester Twenty Six 2024 | Introduction to Build Systems and Cmake
August 26,
2024
Introduction to Embedded Build Systems
In this introductory session, we will explore the essential concepts of embedded build systems and address common development challenges such as managing multiple build configurations, slow builds, and software quality issues. We will start by discussing the problems developers face and present a solution that simplifies build configurations and enhances productivity. Attendees will learn what a build system is, the different types of builds developers need, and the various build tools available.
Course Resources
Special Educational Materials
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 2 – Article
Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C – Article
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 1 – Article
August 27,
2024
CMake Fundamentals
In this session, we will dive into the core concepts of CMake, focusing on its fundamental components and usage. We will begin by addressing common development challenges and introduce how CMake can solve them, providing a glimpse into the benefits it offers. Attendees will learn how CMake works, including the structure and commands of CMakeLists.txt, and the importance of project structure. The session will include practical examples of writing CMake files, highlighting common patterns and pitfalls.
Course Resources
Special Educational Materials
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 2 – Article
Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C – Article
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 1 – Article
August 28,
2024
CMake for Embedded Systems
In this session, we will explore using CMake for embedded systems, addressing specific challenges such as toolchain management and build scripts. We will discuss common development problems and how CMake offers practical solutions. Attendees will learn about toolchain files, including patterns, overviews, and build scripts, followed by exploring host and target toolchain files, their structures, and practical examples.
Course Resources
Special Educational Materials
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 2 – Article
Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C – Article
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 1 – Article
August 29,
2024
Designing Your Build System
In this session, we will explore the principles and strategies for designing an effective build system. We will address common development challenges and demonstrate how a well-designed build system can enhance productivity, modularity, reusability, and maintainability. Attendees will learn the key principles of build system design, including planning, high-level design, and code organization. We will also cover advanced concepts such as build commands, dependency management, and automation, providing practical examples that attendees can apply to their own projects.
Course Resources
Special Educational Materials
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 2 – Article
Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C – Article
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 1 – Article
August 30,
2024
Adopting Modern Practices
In this session, we will explore the adoption of modern development practices to enhance efficiency and software quality. We will discuss common development challenges and how practices such as Agile methodologies, Continuous Integration/Continuous Deployment (CI/CD), DevOps, and Test-Driven Development (TDD) can provide effective solutions. Attendees will learn the principles and benefits of these practices, including practical examples and strategies for overcoming implementation challenges.
Course Resources
Special Educational Materials
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 2 – Article
Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C – Article
Designing Bluetooth Low Energy Smart Applications with Bluetooth Mesh - Part 1 – Article

Instructor
Jacob Beningo
Embedded Software Consultant, Firmware Expert, Smallsat Flight Software
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 300 articles on embedded software development techniques, has published several books, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan.