'NRF_RTC2' undeclared

Hello,

I am trying to port a project from the NRF52840 DK to a custom board where I am using the NRF52820. The code compiles fine when the project is using the settings for NRF52840 but when I adjust the settings under 'Code generation' to match that of the NRF82820 it complains that NRF_RTC2 is undeclared which it first comes across in nrfx_rtc.h at:

#define NRFX_RTC_INSTANCE(id)                                   \
{                                                               \
    .p_reg            = NRFX_CONCAT_2(NRF_RTC, id),             \
    .irq              = NRFX_CONCAT_3(RTC, id, _IRQn),          \
    .instance_id      = NRFX_CONCAT_3(NRFX_RTC, id, _INST_IDX), \
    .cc_channel_count = NRF_RTC_CC_CHANNEL_COUNT(id),           \
}

I suspect this has to do with the fact that NRF52840 has three real time counters while 52820 only has two, but I don't understand how I can work around this problem. I am not enabling RTC2 in the config file. Any ideas? Thank you.

Parents
  • Part of the error message should give you hints to where the multiple definitions are originating from, e.g.:

    Here main.c and nrfx_rtc.c holds the definition.

    You can also press "Ctrl+Shift+F" in SES to search the entire project for text.

    oskarbjo said:
    I have the impression that the problem might be linked to the use of the UART used for the log backend

    I can't think of anything UART logging backend related that will use RTC. The closest would be the libUARTE async library, with RTC used for timeouts. This can be used for the CLI library, which can be used as a backend for the logger module.

    oskarbjo said:
    or alternatively to using an SPI library

    I'm not aware of any SPI library that uses the RTC. Most libreries in the SDK that requires RTC will use it through the app_timer library.

Reply
  • Part of the error message should give you hints to where the multiple definitions are originating from, e.g.:

    Here main.c and nrfx_rtc.c holds the definition.

    You can also press "Ctrl+Shift+F" in SES to search the entire project for text.

    oskarbjo said:
    I have the impression that the problem might be linked to the use of the UART used for the log backend

    I can't think of anything UART logging backend related that will use RTC. The closest would be the libUARTE async library, with RTC used for timeouts. This can be used for the CLI library, which can be used as a backend for the logger module.

    oskarbjo said:
    or alternatively to using an SPI library

    I'm not aware of any SPI library that uses the RTC. Most libreries in the SDK that requires RTC will use it through the app_timer library.

Children
No Data
Related