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 Reply Children
  • 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.

  • Hello again, Bruno

    Bruno Randolf said:
    I upgraded from SDK16 and I use my own Makefile based build system.

    Could you elaborate on what steps you took when you upgraded from v16 to v17.1.0? As can be seen in the change notes there are quite a few changes between the v16.0.0 release and the v17.0.0 and v17.1.0 releases, with the MDK being updated in both. 

    What changes have you made to your makefile based build system in order to upgrade to v17.1.0?

    Best regards,
    Karl

Related