SDK 2.9.0 undefined reference to `nrfx_gppi_channel_alloc'

I'm updating our nRF5340 firmware from SDK 2.4.2 to the SDK2.9.0. After few modifications, I was able to compile it using the SDK2.8.0. Now I'm trying to compile it with SDK 2.9.0 and I couldn't figure out how to fix those undefined reference.

c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/soc/soc/arm/nordic_nrf/lib..__modules__soc-hwmv1__soc__arm__nordic_nrf.a(soc.c.obj): in function `rtc_pretick_cpuapp_init':
C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:408: undefined reference to `nrfx_gppi_channel_alloc'
c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:418: undefined reference to `nrfx_gppi_task_endpoint_setup'
c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:419: undefined reference to `nrfx_gppi_event_endpoint_setup'
c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:420: undefined reference to `nrfx_gppi_channels_enable'

Thanks in advance,

Leiser

Parents
  • Hi

    Just to start with. Which hardware model are you using? As you might know we changed from HW model 1 to HW model 2 with NCS 2.7. With the new HW model board names changed
    Please see this part of the release note

    "

    All samples and applications in the SDK have been migrated. Consult respective documentation as additional or changed parameters might be needed to build them successfully. Applications that are outside of the SDK and use custom-defined boards should not be affected by these changes. However, modifications might still be required as per the migration procedure described in Migration guide for nRF Connect SDK v2.7.0. nRF Connect for VS Code users migrating to the latest version of the SDK might be affected.

    All samples and applications in the SDK are built with sysbuild by default. Applications that are outside the SDK are not built with sysbuild by default.

    The deprecated methods are scheduled for removal after the next release. We recommend transitioning to the alternatives as soon as possible. Consult migration guides for Migrating to the current hardware model and Migrating from multi-image builds to sysbuild. Exercise caution when migrating production environments to the latest SDK.

    "
    Regards

    Runar

  • I'm using the HW model 1 and I'm not using sysbuild.

    Regards,

    Leiser

  • Deleting the build folder only change the order the errors were logged.

    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/soc/soc/arm/nordic_nrf/lib..__modules__soc-hwmv1__soc__arm__nordic_nrf.a(soc.c.obj): in function `rtc_pretick_cpunet_init':
    C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:460: undefined reference to `nrfx_gppi_channel_alloc'
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:466: undefined reference to `nrfx_gppi_event_endpoint_setup'
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:467: undefined reference to `nrfx_gppi_task_endpoint_setup'
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:468: undefined reference to `nrfx_gppi_event_endpoint_setup'
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:469: undefined reference to `nrfx_gppi_task_endpoint_setup'
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: C:/ncs/v2.9.0/modules/soc-hwmv1/soc/arm/nordic_nrf/nrf53/soc.c:470: undefined reference to `nrfx_gppi_channels_enable'
    collect2.exe: error: ld returned 1 exit status

  • Thanks, did you try to add CONFIG_NRFX_GPPI to both cores? I forgot to specify it

    Regards

    Runar

  • I had not added in both cores. I delete the build folder and I tried it now in both cores and no change. Same errors came out.

  • Sorry for the delay, I was working in other assignment.

    Looks like adding the CONFIG_NRFX_GPPI on the boards files works. No more undefined reference to `nrfx_gppi_channel_alloc'.

    The error now is related to i2c_nrfx_twin.

    \main_app\build\zephyr && C:\ncs\toolchains\b620d30767\opt\bin\cmake.exe -E true""
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_configure':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:71: undefined reference to `log_const_i2c_nrfx_twim'

    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_msg_transfer':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:103: undefined reference to `log_const_i2c_nrfx_twim'

    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_common_init':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:140: undefined reference to `log_const_i2c_nrfx_twim'

    I think you can close this one. If I will not able to find a solution for that error I will open other case for that.

    Thanks!

Reply
  • Sorry for the delay, I was working in other assignment.

    Looks like adding the CONFIG_NRFX_GPPI on the boards files works. No more undefined reference to `nrfx_gppi_channel_alloc'.

    The error now is related to i2c_nrfx_twin.

    \main_app\build\zephyr && C:\ncs\toolchains\b620d30767\opt\bin\cmake.exe -E true""
    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_configure':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:71: undefined reference to `log_const_i2c_nrfx_twim'

    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_msg_transfer':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:103: undefined reference to `log_const_i2c_nrfx_twim'

    c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/i2c/libdrivers__i2c.a(i2c_nrfx_twim_common.c.obj): in function `i2c_nrfx_twim_common_init':

    C:/ncs/v2.9.0/zephyr/drivers/i2c/i2c_nrfx_twim_common.c:140: undefined reference to `log_const_i2c_nrfx_twim'

    I think you can close this one. If I will not able to find a solution for that error I will open other case for that.

    Thanks!

Children
Related