This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

What is the relation between CMakeLists.txt, proj.conf and the menu options in SES?

Hello.

Please forgive me for a real beginners question but I would like to understand the relation between the menu configurations in SES and the different configuration files.

I am new to both SES and Segger.

In many documentations there is a reference to files that need to be changed such as proj.conf and CMakeLists.txt. I was thinking that these options might do the same job?

1. Project -> Configure nrf Connect SDK project .....

This has loads of options. Which files are in the end affected by changing configuration here?

2. Project -> Edit devicetree

Will this change the devicetree files and do I need to reload the project afterwards?

Finally, is there an option in SES where I can actually see the normal files like in a file browser? 

Thanks

/Jonas

Parents
  • Hey Jonas! No worries, all questions are allowed here!

    CMakeLists tells the build system where to find application files, and links the application directory with Zephyr’s CMake build system. Essentially being a list for CMake. 

    Configuration files generate definitions that configure the whole system, for instance what HW, drivers, logging etc. should be used. There are different kinds of config files, for instance Kconfig and proj.conf. These two are a bit similar, but Kconfig is the configuration framework for zephyr while prj.conf is application specific, and can override default Kconfig options. 

    The Device Tree describes the hardware, and overlay files are used to change the device tree for one project (so that you dont need an entirely new device tree for every project).

    When you open the project in SES with all these ingredients present, it runs CMake. CMake then creates the build folder, the device tree, the .config file etc.

    There are several options available through Segger as well, though they often simply edit the files that I have already mentioned. 

    Opening Project -> Edit device tree: I had to look into this a bit myself. It does show the device tree along with the overlay file, I think changes there would result in a change in the build directory, not the overlay file.

    Opening project --> Configure nrf Connect SDK project: brings you to the Menuconfig, where you can make changes to the .config file. It also gives a good overview over all the options, so that you dont have to use the devpage.

    is there an option in SES where I can actually see the normal files like in a file browser? 

    I am a little uncertain about what you mean here. The Project Explorer only shows what the project sees using CMakeLists. To open the project in a file browser press File --> Open Studio Folder --> Project Folder. 

    For more info about this I would recommend this tutorial, that also describes how all of these configurations fit together. Part 2 might be of particular interest to you, but I would recommend the entire thing.

    Best regards,

    Elfving

Reply
  • Hey Jonas! No worries, all questions are allowed here!

    CMakeLists tells the build system where to find application files, and links the application directory with Zephyr’s CMake build system. Essentially being a list for CMake. 

    Configuration files generate definitions that configure the whole system, for instance what HW, drivers, logging etc. should be used. There are different kinds of config files, for instance Kconfig and proj.conf. These two are a bit similar, but Kconfig is the configuration framework for zephyr while prj.conf is application specific, and can override default Kconfig options. 

    The Device Tree describes the hardware, and overlay files are used to change the device tree for one project (so that you dont need an entirely new device tree for every project).

    When you open the project in SES with all these ingredients present, it runs CMake. CMake then creates the build folder, the device tree, the .config file etc.

    There are several options available through Segger as well, though they often simply edit the files that I have already mentioned. 

    Opening Project -> Edit device tree: I had to look into this a bit myself. It does show the device tree along with the overlay file, I think changes there would result in a change in the build directory, not the overlay file.

    Opening project --> Configure nrf Connect SDK project: brings you to the Menuconfig, where you can make changes to the .config file. It also gives a good overview over all the options, so that you dont have to use the devpage.

    is there an option in SES where I can actually see the normal files like in a file browser? 

    I am a little uncertain about what you mean here. The Project Explorer only shows what the project sees using CMakeLists. To open the project in a file browser press File --> Open Studio Folder --> Project Folder. 

    For more info about this I would recommend this tutorial, that also describes how all of these configurations fit together. Part 2 might be of particular interest to you, but I would recommend the entire thing.

    Best regards,

    Elfving

Children
Related