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

nRF Connect SDK customized mcuboot with Zephyr

Hello!

I'm tinkering with the NCS libraries, and I'm really liking the way this is turning out coming from the nRF5 SDK! My question is what is the best practice for creating a customized mcuboot build? My current setup is on Linux using primarily command line and CLion for development (SDK v1.4.2). My current configuration is following the getting started guide, where "my_project" is a git repo with my app:

.
├── bootloader
├── my_project
├── mbedtls
├── modules
├── nrf
├── nrfxlib
├── smp_svr
├── test
├── tools
└── zephyr

And the app repo has the following structure, which has room for a bootloader to be in the same repo if possible:

.
├── app
│   ├── CMakeLists.txt
│   ├── docker-compose.yml
│   ├── Dockerfile
│   ├── overlay-bt.conf
│   ├── overlay-bt-tiny.conf
│   ├── overlay-cdc.conf
│   ├── overlay-fs.conf
│   ├── overlay-serial.conf
│   ├── overlay-serial-console.conf
│   ├── overlay-shell.conf
│   ├── overlay-shell-mgmt.conf
│   ├── overlay-udp.conf
│   ├── prj.conf
│   ├── README.rst
│   ├── sample.yaml
│   └── src
│       ├── bluetooth.c
│       ├── common.h
│       ├── main.c
│       └── udp.c
├── CMakeLists.txt
└── west.yml

As a bonus question, is it necessary to leave my project as a subfolder of the NCS tools folder? I tried locating my repo in a different development folder and defining ZEPHYR_BASEZEPHYR_TOOLCHAIN_VARIANT, and GNUARMEMB_TOOLCHAIN_PATH, but the build system seems super finicky when I do that. It seems to work if I build e.g. the SMP sample from inside the NCS folder, then build from my app folder; but if I just go straight to building my app, zephyr will complain about the SDK not being installed. Super weird.

Thanks in advance!

Related