file is used for compilation and specifies which application-specific files should be compiled in prj.conf acts as an application-specific defconfig: each supported board has its own defconfig (much like what you'll find in the Linux kernel); config options required for the application to compile and run are added to prj.conf , which is internally appended to the board's defconfig when building the project acts as an application-specific defconfig: each supported board has its own defconfig (much like what you'll find in the Linux kernel); config options required for the application to compile and run are added to , which is internally appended to the board's defconfig when building the project sample.yaml is used to define test cases for Zephyr's test runner.