Build configuration for custom board with nRF9160

Hello.

I’m new to the Nordic devices and I was tasked to develop a custom board based on the nRF9160 SiP. I took the nRF9160 DK as a reference, changing it according to our needs.

I was able to program the nRF9160 with one of the examples to check if the programming was successful but now I want to start writing my own application and from what I was able to understand first I need to create a board.

To create a new board I select the “Create a new board” option on the nRF Connect Visual Studio Code plugin and provide the required fields as described in the “Lesson 3 - Adding custom board support” the folder where the board files are stored, the board files and it’s content also assume the human-readable name instead of the machine-readable name, I don’t think it was supposed to be like this.

At this point I created an application for testing based on the HTTPS Client example, on the nRF Connect plugin I selected “Add build configuration” and selected my board from the list but when I pushed the “Build Configuration” button almost immediately I get the following error:

/home/captemp/ncs/v2.7.0/zephyr/scripts/kconfig/kconfig.py: /captemp/nordic_boards/boards/CapTemp/G-LogBox nRF9160/Kconfig.defconfig:1: error: couldn't parse 'if  BOARD_G-LOGBOX NRF9160_NRF9160 || BOARD_G-LOGBOX NRF9160_NRF9160_NS': extra tokens at end of line

I believe the error is caused by the spaces on the board name but if I provide a human-readable name without spaces on the terminal all seems to go well but eventually I get the following error:

----- Installing platform NS -----

[284/291] Linking C executable zephyr/zephyr_pre0.elf

FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map /captemp/tests/https_client/build_1/zephyr/zephyr_pre0.map 

: && ccache /home/captemp/ncs/toolchains/e9dba88316/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc  -gdwarf-4 zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf  zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj  tfm/api_ns/interface/lib/s_veneers.o  -fuse-ld=bfd  -T  zephyr/linker_zephyr_pre0.cmd  -Wl,-Map=/captemp/tests/https_client/build_1/zephyr/zephyr_pre0.map  -Wl,--whole-archive  app/libapp.a  zephyr/libzephyr.a  zephyr/arch/common/libarch__common.a  zephyr/arch/arch/arm/core/libarch__arm__core.a  zephyr/arch/arch/arm/core/cortex_m/libarch__arm__core__cortex_m.a  zephyr/arch/arch/arm/core/cortex_m/cmse/libarch__arm__core__cortex_m__cmse.a  zephyr/arch/arch/arm/core/mpu/libarch__arm__core__mpu.a  zephyr/lib/libc/picolibc/liblib__libc__picolibc.a  zephyr/lib/libc/common/liblib__libc__common.a  zephyr/lib/posix/options/liblib__posix__options.a  zephyr/soc/soc/nrf9160/libsoc__nordic.a  zephyr/subsys/random/libsubsys__random.a  zephyr/subsys/net/libsubsys__net.a  zephyr/subsys/net/l2/offloaded_netdev/libsubsys__net__l2__offloaded_netdev.a  zephyr/subsys/net/ip/libsubsys__net__ip.a  zephyr/subsys/net/conn_mgr/libsubsys__net__conn_mgr.a  zephyr/drivers/clock_control/libdrivers__clock_control.a  zephyr/drivers/entropy/libdrivers__entropy.a  zephyr/drivers/timer/libdrivers__timer.a  modules/nrf/lib/nrf_modem_lib/lib..__nrf__lib__nrf_modem_lib.a  modules/nrf/subsys/nrf_security/src/zephyr/libmbedtls_zephyr.a  modules/nrf/modules/trusted-firmware-m/lib..__nrf__modules__trusted-firmware-m.a  modules/nrf/modules/trusted-firmware-m/libtfm_api_nrf.a  modules/trusted-firmware-m/libtfm_api.a  modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a  /home/captemp/ncs/v2.7.0/nrfxlib/nrf_modem/lib/cellular/nrf9160/soft-float/libmodem.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  -L"/home/captemp/ncs/toolchains/e9dba88316/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/thumb/v8-m.main/nofp"  -L/captemp/tests/https_client/build_1/zephyr  -lgcc  zephyr/arch/common/libisr_tables.a  -Wl,--gc-sections  -Wl,--build-id=none  -Wl,--sort-common=descending  -Wl,--sort-section=alignment  -Wl,-u,_OffsetAbsSyms  -Wl,-u,_ConfigAbsSyms  -nostdlib  -static  -Wl,-X  -Wl,-N  -Wl,--orphan-handling=warn  -Wl,-no-pie  -DPICOLIBC_LONG_LONG_PRINTF_SCANF  modules/nrf/subsys/nrf_security/src/libmbedcrypto.a  /home/captemp/ncs/v2.7.0/nrfxlib/crypto/nrf_oberon/lib/cortex-m33/soft-float/liboberon_mbedtls_3.0.15.a  modules/nrf/subsys/nrf_security/src/libmbedcrypto_base.a  -mcpu=cortex-m33  -mthumb  -mabi=aapcs  -mfp16-format=ieee  -mtp=soft  /home/captemp/ncs/v2.7.0/nrfxlib/crypto/nrf_oberon/lib/cortex-m33/soft-float/liboberon_3.0.15.a  --specs=picolibc.specs  -lc  -lgcc && cd /captemp/tests/https_client/build_1/zephyr && /home/captemp/ncs/toolchains/e9dba88316/usr/local/bin/cmake -E true

/home/captemp/ncs/toolchains/e9dba88316/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.c.obj): in function `cert_provision':

/captemp/tests/https_client/src/main.c:108: undefined reference to `tls_credential_add'

collect2: error: ld returned 1 exit status

ninja: build stopped: subcommand failed.

FATAL ERROR: command exited with status 1: /home/captemp/ncs/toolchains/e9dba88316/usr/local/bin/cmake --build /captemp/tests/https_client/build_1

I have no idea what I’m missing, any help would be appreciated.

  • Hello, 

    required fields as described in the “Lesson 3 - Adding custom board support” the folder where the board files are stored

    I see that you are referring to Lesson 3 – Adding custom board support in the nRF Connect SDK Intermediate course. From the build log I see that you are using nRF Connect SDK v2.7.0. Have you ensured that everything is correctly configured as per the new hardware model in v2.7.0?

    Kind regards,
    Øyvind

Related