Create a custom board with the build-in Create a new board wizard.

Hi,

Guide on how to create a custom board with the build-in wizard.

What I would like to accomplish is:

- Create a Hello world samples project.

- Create a new board using the build-in wizard. Use nrf9160 SoC. Select the NS version in the drop down menu.

- Create a build configuration with the new custom board.

- Build the application without modifying any files.

I hope there is some that can help.

nrf Connect with SDK 2.0.0 is the focus.

  • Hi!

    It seems you have a good understanding of the required steps already, but I imagine that you are now hitting a build issue, just like I am.

    It seems that something essential is missing from the custom boards that the wizard generates for nRF9160_ns, which prevents you from building successfully: TF-M is not enabled.

    As you might know, when you want to use Cortex-M Security Extensions (something you always want to, when communicating with the modem and the outside world), you have to build your application for the "non-secure" target. Then, another partition will contain the secure Trusted Firmware-M image, as part of a multi-image build. This follows the "security by separation" architecture (see also: Running applications with Trusted Firmware-M).

    You can enable TF-M by adding the following Kconfig options to your custom board's defconfig:

    CONFIG_BUILD_WITH_TFM=y
    CONFIG_TRUSTED_EXECUTION_NONSECURE=y
    This will tell the build system to build and include the TF-M firmware (and also enable the partition manager). Note that you could also add these flags to your application's prj.conf, but best practice is to associate this with your custom board's default configuration, as this will always be needed for that board.
    I don't know why these Kconfig flags aren't enabled by default, I'll report this internally.
    - Build the application without modifying any files.
    You are indeed modifying a file, but nothing that affects the behaviour of the sample. I hope this is what you meant!
    Best regards,
    Raoul Pathak

    P.S.: TF-M wants to reserve UART1 for logging, so if you plan to use UART1 in your application later, disable logging from the TF-M module using the following Kconfig option:
    TFM_LOG_LEVEL_SILENCE=y
  • Solved my issue with "static assertion" errors - was just enabling TFM needed!! Thank you so much!!

Related