Introduction | Theory | Lab | Course Home
By the end of this chapter, you will:
Configuration is the bridge between Zephyr’s vast capabilities and your specific application needs. While Zephyr supports hundreds of features, drivers, and protocols, your embedded application typically needs only a carefully selected subset. This chapter teaches you to harness Zephyr’s powerful configuration system to create lean, efficient, and precisely tailored RTOS builds.
Modern embedded systems face competing demands: rich functionality versus resource constraints, rapid development versus optimization, and hardware flexibility versus deterministic behavior. Zephyr’s configuration system resolves these tensions by allowing you to include exactly what your application needs—nothing more, nothing less.
Real-World Impact: Consider an IoT environmental sensor that must operate on battery power for years. Through proper configuration, you can:
Without configuration knowledge, you might deploy a 500KB firmware image when 50KB would suffice, or include security features that drain battery unnecessarily.
Zephyr’s configuration system operates on two complementary levels:
Kconfig (Feature Configuration): Controls which software features, drivers, and subsystems are compiled into your application. Think of it as the “what” of your system—what capabilities will be available at runtime.
Device Tree (Hardware Configuration): Describes your hardware layout and how software should interact with it. This is the “where” of your system—where peripherals are located and how they’re connected.
For Raspberry Pi 4B Development: Your target hardware brings unique configuration challenges: ARM64 architecture, rich peripheral set, substantial memory, and multiple CPU cores. You’ll learn to configure Zephyr to leverage the Pi’s capabilities while maintaining embedded system principles.
Throughout this chapter, you’ll progress through increasingly sophisticated configuration scenarios:
Each concept builds upon your build system knowledge from Chapter 3 while preparing you for the advanced threading and driver topics in upcoming chapters.
Configuration transforms Zephyr from a general-purpose RTOS into your application’s perfect foundation. Let’s explore how to wield this power effectively.