Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

warning: redundant redeclaration of 'SystemCoreClock'

Since upgrading to SDK 17.1.0 i get the following warnings of a redundant redeclaration for SystemCoreClock, SystemInit() and SystemCoreClockUpdate() for nrf52810 and nrf52840:

CC /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:31,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.h:33:17: warning: redundant redeclaration of 'SystemCoreClock' [-Wredundant-decls]
33 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
| ^~~~~~~~~~~~~~~
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf52810.h:141,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf.h:142,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:28,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.h:33:17: note: previous declaration of 'SystemCoreClock' was here
33 | extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
| ^~~~~~~~~~~~~~~
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:31,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.h:44:13: warning: redundant redeclaration of 'SystemInit' [-Wredundant-decls]
44 | extern void SystemInit (void);
| ^~~~~~~~~~
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf52810.h:141,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf.h:142,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:28,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.h:44:13: note: previous declaration of 'SystemInit' was here
44 | extern void SystemInit (void);
| ^~~~~~~~~~
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:31,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.h:55:13: warning: redundant redeclaration of 'SystemCoreClockUpdate' [-Wredundant-decls]
55 | extern void SystemCoreClockUpdate (void);
| ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf52810.h:141,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/nrf.h:142,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52.c:28,
from /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c:42:
/home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.h:55:13: note: previous declaration of 'SystemCoreClockUpdate' was here
55 | extern void SystemCoreClockUpdate (void);
| ^~~~~~~~~~~~~~~~~~~~~
Parents
  • Hello,

    It looks to me like you are including multiple system files - both for nRF52840 and nRF52810 - into your build.
    Please exclude one of them, so that you are only building for one SoC at the time.
    You can see your configuration in the project options.

    Best regards,
    Karl

  • Excuse me but in the warning messages i posted there is no nRF52840 reference at all. I just mentioned that these warnings happen with both 52810 and 52840, of course I build only for one board at the time

  • Oh, my apologies - I was certain that I saw a nRF52840 system file referenced in your provided logs.

    Which SDK version did you upgrade from, and could you detail the steps you took in order to upgrade?

    Best regards,
    Karl

  • I upgraded from SDK16 and I use my own Makefile based build system. There were no warnings with SDK16, they came when I switched to SDK17. Below is a list of SDK files which I compile, I don't thing there is anything double. The warning comes from the files included from modules/nrfx/mdk/system_nrf52810.c


      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/atomic/nrf_atomic.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/atomic_fifo/nrf_atfifo.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/atomic_flags/nrf_atflags.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/hardfault/nrf52/handler/hardfault_handler_gcc.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/hardfault/hardfault_implementation.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/timer/app_timer.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/util/app_error.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/util/app_error_weak.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/util/app_util_platform.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/strerror/nrf_strerror.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/experimental_section_vars/nrf_section_iter.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/scheduler/app_scheduler.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/crc32/crc32.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/balloc/nrf_balloc.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/memobj/nrf_memobj.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/ringbuf/nrf_ringbuf.c
      CC      /home/br1/dev/nordic/sdk/v17/modules/nrfx/drivers/src/nrfx_spim.c
      CC      /home/br1/dev/nordic/sdk/v17/modules/nrfx/drivers/src/nrfx_saadc.c
      CC      /home/br1/dev/nordic/sdk/v17/modules/nrfx/drivers/src/nrfx_wdt.c
      CC      /home/br1/dev/nordic/sdk/v17/modules/nrfx/drivers/src/prs/nrfx_prs.c
      CC      /home/br1/dev/nordic/sdk/v17/components/softdevice/common/nrf_sdh.c
      CC      /home/br1/dev/nordic/sdk/v17/components/softdevice/common/nrf_sdh_soc.c
      CC      /home/br1/dev/nordic/sdk/v17/components/softdevice/common/nrf_sdh_ble.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/common/ble_advdata.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/common/ble_srv_common.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/common/ble_conn_state.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/nrf_ble_gatt/nrf_ble_gatt.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/ble_services/ble_dis/ble_dis.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/fds/fds.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/fstorage/nrf_fstorage.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/fstorage/nrf_fstorage_sd.c
      CC      /home/br1/dev/nordic/sdk/v17/components/libraries/bootloader/dfu/nrf_dfu_svci.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/nrf_ble_qwr/nrf_ble_qwr.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/ble_services/ble_dfu/ble_dfu.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/auth_status_tracker.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/gatt_cache_manager.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/gatts_cache_manager.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/id_manager.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/peer_data_storage.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/peer_database.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/peer_id.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/peer_manager.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/peer_manager_handler.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/pm_buffer.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/security_dispatcher.c
      CC      /home/br1/dev/nordic/sdk/v17/components/ble/peer_manager/security_manager.c
      CC      /home/br1/dev/nordic/sdk/v17/modules/nrfx/mdk/system_nrf52810.c

  • Another note: Of course this has to do with the GCC option -Wredundant-decls which I would like to keep for my project. I would argue that production quality SDK and MDK code should compile without these warnings.

Reply Children
Related