This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Including nRF5 SDK for Mesh functionality in an nRF5 SDK example

Hello,


I'm integrating Nordic Mesh SDK into nRF5_SDK_15.2. I have following following guide for this:


https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v3.2.0%2Fmd_doc_getting_started_how_to_nordicSDK.html


After completing all the steps, the compiler shows following errors. I'm unable to locate the cause of error. It seems there are several constants related to
flash storage that are declared somewhere (or need to be declared). I'm not sure where they are declared or where to declare them. Can anybody please guide me?

Building ‘project’ from solution ‘project’ in configuration ‘Debug’
'Output/project Debug/Obj/thumb_crt0.o' is up to date
'Output/project Debug/Obj/nrf_log_backend_rtt.o' is up to date
'Output/project Debug/Obj/nrf_log_backend_serial.o' is up to date
'Output/project Debug/Obj/nrf_log_backend_uart.o' is up to date
'Output/project Debug/Obj/nrf_log_default_backends.o' is up to date
'Output/project Debug/Obj/nrf_log_frontend.o' is up to date
'Output/project Debug/Obj/nrf_log_str_formatter.o' is up to date
'Output/project Debug/Obj/app_button.o' is up to date
'Output/project Debug/Obj/app_error.o' is up to date
'Output/project Debug/Obj/app_error_handler_gcc.o' is up to date
'Output/project Debug/Obj/app_error_weak.o' is up to date
'Output/project Debug/Obj/app_scheduler.o' is up to date
'Output/project Debug/Obj/app_timer.o' is up to date
'Output/project Debug/Obj/app_util_platform.o' is up to date
'Output/project Debug/Obj/crc16.o' is up to date
'Output/project Debug/Obj/fds.o' is up to date
'Output/project Debug/Obj/hardfault_implementation.o' is up to date
'Output/project Debug/Obj/nrf_assert.o' is up to date
'Output/project Debug/Obj/nrf_atfifo.o' is up to date
'Output/project Debug/Obj/nrf_atflags.o' is up to date
'Output/project Debug/Obj/nrf_atomic.o' is up to date
'Output/project Debug/Obj/nrf_balloc.o' is up to date
'Output/project Debug/Obj/nrf_fprintf.o' is up to date
'Output/project Debug/Obj/nrf_fprintf_format.o' is up to date
'Output/project Debug/Obj/nrf_fstorage.o' is up to date
'Output/project Debug/Obj/nrf_fstorage_sd.o' is up to date
'Output/project Debug/Obj/nrf_memobj.o' is up to date
'Output/project Debug/Obj/nrf_pwr_mgmt.o' is up to date
'Output/project Debug/Obj/nrf_ringbuf.o' is up to date
'Output/project Debug/Obj/nrf_section_iter.o' is up to date
'Output/project Debug/Obj/nrf_strerror.o' is up to date
'Output/project Debug/Obj/sensorsim.o' is up to date
'Output/project Debug/Obj/app_pwm.o' is up to date
'Output/project Debug/Obj/ses_startup_nrf52840.o' is up to date
'Output/project Debug/Obj/ses_startup_nrf_common.o' is up to date
'Output/project Debug/Obj/system_nrf52840.o' is up to date
'Output/project Debug/Obj/boards.o' is up to date
'Output/project Debug/Obj/nrf_drv_clock.o' is up to date
'Output/project Debug/Obj/nrf_drv_uart.o' is up to date
'Output/project Debug/Obj/nrfx_clock.o' is up to date
'Output/project Debug/Obj/nrfx_gpiote.o' is up to date
'Output/project Debug/Obj/nrfx_power_clock.o' is up to date
'Output/project Debug/Obj/nrfx_prs.o' is up to date
'Output/project Debug/Obj/nrfx_uart.o' is up to date
'Output/project Debug/Obj/nrfx_uarte.o' is up to date
'Output/project Debug/Obj/nrfx_saadc.o' is up to date
'Output/project Debug/Obj/nrfx_timer.o' is up to date
'Output/project Debug/Obj/nrf_drv_ppi.o' is up to date
'Output/project Debug/Obj/nrfx_ppi.o' is up to date
'Output/project Debug/Obj/bsp.o' is up to date
'Output/project Debug/Obj/bsp_btn_ble.o' is up to date
'Output/project Debug/Obj/main.o' is up to date
'Output/project Debug/Obj/SEGGER_RTT.o' is up to date
'Output/project Debug/Obj/SEGGER_RTT_Syscalls_SES.o' is up to date
'Output/project Debug/Obj/SEGGER_RTT_printf.o' is up to date
'Output/project Debug/Obj/auth_status_tracker.o' is up to date
'Output/project Debug/Obj/ble_advdata.o' is up to date
'Output/project Debug/Obj/ble_advertising.o' is up to date
'Output/project Debug/Obj/ble_conn_params.o' is up to date
'Output/project Debug/Obj/ble_conn_state.o' is up to date
'Output/project Debug/Obj/ble_srv_common.o' is up to date
'Output/project Debug/Obj/gatt_cache_manager.o' is up to date
'Output/project Debug/Obj/gatts_cache_manager.o' is up to date
'Output/project Debug/Obj/id_manager.o' is up to date
'Output/project Debug/Obj/nrf_ble_gatt.o' is up to date
'Output/project Debug/Obj/nrf_ble_qwr.o' is up to date
'Output/project Debug/Obj/peer_data_storage.o' is up to date
'Output/project Debug/Obj/peer_database.o' is up to date
'Output/project Debug/Obj/peer_id.o' is up to date
'Output/project Debug/Obj/peer_manager.o' is up to date
'Output/project Debug/Obj/peer_manager_handler.o' is up to date
'Output/project Debug/Obj/pm_buffer.o' is up to date
'Output/project Debug/Obj/security_dispatcher.o' is up to date
'Output/project Debug/Obj/security_manager.o' is up to date
'Output/project Debug/Obj/utf.o' is up to date
'Output/project Debug/Obj/nrf_sdh.o' is up to date
'Output/project Debug/Obj/nrf_sdh_ble.o' is up to date
'Output/project Debug/Obj/nrf_sdh_soc.o' is up to date
'Output/project Debug/Obj/cue_service.o' is up to date
'Output/project Debug/Obj/scr_service.o' is up to date
'Output/project Debug/Obj/dev_service.o' is up to date
'Output/project Debug/Obj/cue_driver.o' is up to date
'Output/project Debug/Obj/rgb_driver.o' is up to date
'Output/project Debug/Obj/fds_driver.o' is up to date
'Output/project Debug/Obj/scr_timer.o' is up to date
'Output/project Debug/Obj/adc_driver.o' is up to date
'Output/project Debug/Obj/dev_name.o' is up to date
'Output/project Debug/Obj/scr_execute.o' is up to date
'Output/project Debug/Obj/dfu_driver.o' is up to date
'Output/project Debug/Obj/test_cues.o' is up to date
'Output/project Debug/Obj/test_drives.o' is up to date
'Output/project Debug/Obj/cache.o' is up to date
'Output/project Debug/Obj/ccm_soft.o' is up to date
'Output/project Debug/Obj/core_tx.o' is up to date
'Output/project Debug/Obj/core_tx_adv.o' is up to date
'Output/project Debug/Obj/core_tx_instaburst.o' is up to date
'Output/project Debug/Obj/core_tx_lpn.o' is up to date
'Output/project Debug/Obj/enc.o' is up to date
'Output/project Debug/Obj/event.o' is up to date
'Output/project Debug/Obj/fifo.o' is up to date
'Output/project Debug/Obj/flash_manager.o' is up to date
'Output/project Debug/Obj/flash_manager_defrag.o' is up to date
'Output/project Debug/Obj/flash_manager_internal.o' is up to date
'Output/project Debug/Obj/fsm.o' is up to date
'Output/project Debug/Obj/hal.o' is up to date
'Output/project Debug/Obj/heartbeat.o' is up to date
'Output/project Debug/Obj/internal_event.o' is up to date
'Output/project Debug/Obj/list.o' is up to date
'Output/project Debug/Obj/log.o' is up to date
'Output/project Debug/Obj/lpn.o' is up to date
'Output/project Debug/Obj/mesh_config.o' is up to date
'Output/project Debug/Obj/mesh_config_backend.o' is up to date
Output/project Debug/Obj/mesh_config_flashman_glue.o does not exist.
Output/project Debug/Obj/mesh_flash.o does not exist.
Compiling ‘mesh_flash.c’



mesh_flash.c
'FLASH_TIME_TO_ERASE_PAGE_US' undeclared here (not in a function)
in definition of macro 'NRF_MESH_STATIC_ASSERT'
'FLASH_TIME_TO_WRITE_ONE_WORD_US' undeclared (first use in this function); did you mean 'FLASH_TIME_TO_ERASE_PAGE_US'?
each undeclared identifier is reported only once for each function it appears in
'FLASH_TIME_TO_WRITE_ONE_WORD_US' undeclared (first use in this function); did you mean 'FLASH_TIME_TO_ERASE_PAGE_US'?
'FLASH_TIME_TO_WRITE_ONE_WORD_US' undeclared (first use in this function); did you mean 'FLASH_TIME_TO_ERASE_PAGE_US'?
Output/project Debug/Obj/mesh_lpn_subman.o does not exist.
Compiling ‘mesh_lpn_subman.c’
'Output/project Debug/Obj/mesh_mem_mem_manager.o' is up to date
Compiling ‘mesh_config_flashman_glue.c’
'FLASH_TIME_TO_WRITE_ONE_WORD_US' undeclared (first use in this function); did you mean 'FLASH_TIME_PER_WORD_US'?
in expansion of macro 'FLASH_TIME_PER_WORD_US'
each undeclared identifier is reported only once for each function it appears in
in expansion of macro 'FLASH_TIME_PER_WORD_US'
Output/project Debug/Obj/mesh_mem_packet_mgr.o does not exist.
Compiling ‘mesh_mem_packet_mgr.c’
Build failed

Parents
  • Hi Aftab, 

    Maybe it's easier that you use our ready made example in the Mesh SDK ? 

    We provided co-exist example located in \Mesh_v3.2.0\examples\sdk_coexist . You can find the documentation here

  • I have tested the "ble_app_uart_coexist" successfully. But I want to integrate mesh into our previously developed app based on nRF5_SDK_15. So basically I followed the above mentioned guide to add mesh into my app. However, having issues detailed above. I wonder what am I missing, may not mentioned in the said guide?

  • In the Project->Preprocessor->User include directories, I have include \mesh\core\include path as shown below. Why this error is popping up then? Please see the paths included for mesh.

    Mesh/mesh/core/api
    Mesh/mesh/core/include
    Mesh/mesh/bearer/api
    Mesh/mesh/bearer/include
    Mesh/mesh/prov/api
    Mesh/mesh/prov/include
    Mesh/mesh/access/api
    Mesh/mesh/access/include
    Mesh/mesh/dfu/api
    Mesh/mesh/dfu/include
    Mesh/mesh/stack/api
    Mesh/models/foundation/config/include
    Mesh/models/foundation/health/include
    Mesh/external/micro-ecc
    Mesh/examples/common/include

  • Please try compare your project to the working example. Could be that your path was not correct. 

  • I have compared the includes paths with ble_app_uart_coexist example and replicated the same paths. Also FLASH_TIME_TO_ERASE_PAGE_US error was gone after defining NRF52840 in the Preprocessor definitions. However, after that I'm facing many other errors. Please see the log below:

    Building ‘project_s140_nrf52840’ from solution ‘project_s140_nrf52840’ in configuration ‘Debug’
      Preprocessor Definitions property has changed.
      Assembling ‘thumb_crt0.s’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_backend_rtt.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_backend_serial.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_backend_uart.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_default_backends.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_frontend.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_log_str_formatter.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_button.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_error.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_error_handler_gcc.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_error_weak.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_scheduler.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_timer.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_util_platform.c’
      Preprocessor Definitions property has changed.
      Compiling ‘crc16.c’
      Preprocessor Definitions property has changed.
      Compiling ‘fds.c’
      Preprocessor Definitions property has changed.
      Compiling ‘hardfault_implementation.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_assert.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_atfifo.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_atflags.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_atomic.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_balloc.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_fprintf.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_fprintf_format.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_fstorage.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_fstorage_sd.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_memobj.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_pwr_mgmt.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_ringbuf.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_section_iter.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_strerror.c’
      Preprocessor Definitions property has changed.
      Compiling ‘sensorsim.c’
      Preprocessor Definitions property has changed.
      Compiling ‘app_pwm.c’
      Preprocessor Definitions property has changed.
      Assembling ‘ses_startup_nrf52840.s’
      Preprocessor Definitions property has changed.
      Assembling ‘ses_startup_nrf_common.s’
      Preprocessor Definitions property has changed.
      Compiling ‘system_nrf52840.c’
      Preprocessor Definitions property has changed.
      Compiling ‘boards.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_drv_clock.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_drv_uart.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_clock.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_gpiote.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_power_clock.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_prs.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_uart.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_uarte.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_saadc.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_timer.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_drv_ppi.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrfx_ppi.c’
      Preprocessor Definitions property has changed.
      Compiling ‘bsp.c’
      Preprocessor Definitions property has changed.
      Compiling ‘bsp_btn_ble.c’
      Preprocessor Definitions property has changed.
      Compiling ‘main.c’
        main.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        main.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
        main.c
        type defaults to 'int' in declaration of 'data' [-Wimplicit-int]
        implicit declaration of function 'nrf_mesh_on_sd_evt'; did you mean 'ble_bas_on_ble_evt'? [-Wimplicit-function-declaration]
        passing argument 1 of 'dev_mac_addr_update' from incompatible pointer type [-Wincompatible-pointer-types]
        main.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[6] {aka unsigned char (*)[6]}'
        passing argument 1 of 'dev_mac_addr_update' from incompatible pointer type [-Wincompatible-pointer-types]
        main.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[6] {aka unsigned char (*)[6]}'
        passing argument 1 of 'cue_cont_update' from incompatible pointer type [-Wincompatible-pointer-types]
        main.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[4] {aka unsigned char (*)[4]}'
        passing argument 1 of 'dev_mac_addr_update' from incompatible pointer type [-Wincompatible-pointer-types]
        main.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[6] {aka unsigned char (*)[6]}'
      Preprocessor Definitions property has changed.
      Compiling ‘SEGGER_RTT.c’
      Preprocessor Definitions property has changed.
      Compiling ‘SEGGER_RTT_Syscalls_SES.c’
      Preprocessor Definitions property has changed.
      Compiling ‘SEGGER_RTT_printf.c’
      Preprocessor Definitions property has changed.
      Compiling ‘auth_status_tracker.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ble_advdata.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ble_advertising.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ble_conn_params.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ble_conn_state.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ble_srv_common.c’
      Preprocessor Definitions property has changed.
      Compiling ‘gatt_cache_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘gatts_cache_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘id_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_ble_gatt.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_ble_qwr.c’
      Preprocessor Definitions property has changed.
      Compiling ‘peer_data_storage.c’
      Preprocessor Definitions property has changed.
      Compiling ‘peer_database.c’
      Preprocessor Definitions property has changed.
      Compiling ‘peer_id.c’
      Preprocessor Definitions property has changed.
      Compiling ‘peer_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘peer_manager_handler.c’
      Preprocessor Definitions property has changed.
      Compiling ‘pm_buffer.c’
      Preprocessor Definitions property has changed.
      Compiling ‘security_dispatcher.c’
      Preprocessor Definitions property has changed.
      Compiling ‘security_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘utf.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_sdh.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_sdh_ble.c’
      Preprocessor Definitions property has changed.
      Compiling ‘nrf_sdh_soc.c’
      Preprocessor Definitions property has changed.
      Compiling ‘cue_service.c’
        cue_service.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        passing argument 1 of 'cue_fire_manual' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
        cue_service.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'const uint8_t * {aka const unsigned char *}'
      Preprocessor Definitions property has changed.
      Compiling ‘scr_service.c’
        scr_service.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
        scr_service.c
        type defaults to 'int' in declaration of 'data' [-Wimplicit-int]
        "SCRIPT_LENGTH" redefined
        scr_service.c
        this is the location of the previous definition
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
        passing argument 1 of 'record_update_scr' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
        scr_service.c
        expected 'char *' but argument is of type 'const uint8_t * {aka const unsigned char *}'
        implicit declaration of function 'scr_timer_reset' [-Wimplicit-function-declaration]
      Preprocessor Definitions property has changed.
      Compiling ‘dev_service.c’
        assignment from incompatible pointer type [-Wincompatible-pointer-types]
        passing argument 1 of 'scr_timer_set' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
        dev_service.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'const uint8_t * {aka const unsigned char *}'
        assignment makes pointer from integer without a cast [-Wint-conversion]
        assignment makes pointer from integer without a cast [-Wint-conversion]
      Preprocessor Definitions property has changed.
      Compiling ‘cue_driver.c’
        cue_driver.c
        type defaults to 'int' in declaration of 'data' [-Wimplicit-int]
        cue_driver.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
      Preprocessor Definitions property has changed.
      Compiling ‘rgb_driver.c’
        implicit declaration of function 'rgb_outputs_set'; did you mean 'rgb_outputs_init'? [-Wimplicit-function-declaration]
        conflicting types for 'rgb_outputs_set'
        previous implicit declaration of 'rgb_outputs_set' was here
        implicit declaration of function 'rgb_set_saved_address'; did you mean '__builtin_frame_address'? [-Wimplicit-function-declaration]
        conflicting types for 'rgb_set_saved_address'
        previous implicit declaration of 'rgb_set_saved_address' was here
      Preprocessor Definitions property has changed.
      Compiling ‘fds_driver.c’
      Preprocessor Definitions property has changed.
      Compiling ‘scr_timer.c’
        scr_timer.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
        scr_timer.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        scr_timer.c
        type defaults to 'int' in declaration of 'data' [-Wimplicit-int]
        implicit declaration of function 'cue_turn_off' [-Wimplicit-function-declaration]
        implicit declaration of function 'dev_time_update'; did you mean 'cue_comb_update'? [-Wimplicit-function-declaration]
        implicit declaration of function 'saadc_sampling_event_enable' [-Wimplicit-function-declaration]
      Preprocessor Definitions property has changed.
      Compiling ‘adc_driver.c’
        adc_driver.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        adc_driver.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
      Preprocessor Definitions property has changed.
      Compiling ‘dev_name.c’
        implicit declaration of function 'atoi' [-Wimplicit-function-declaration]
      Preprocessor Definitions property has changed.
      Compiling ‘scr_execute.c’
        scr_execute.c
        type defaults to 'int' in declaration of 'data' [-Wimplicit-int]
        scr_execute.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
      Preprocessor Definitions property has changed.
      Compiling ‘dfu_driver.c’
      Preprocessor Definitions property has changed.
      Compiling ‘test_cues.c’
        test_cues.c
        type defaults to 'int' in declaration of 'cue_service_start_flag' [-Wimplicit-int]
        test_cues.c
        type defaults to 'int' in declaration of 'scr_service_start_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_service_process_flag' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_data_p' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_size' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_updated' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_restarted' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'scr_script_start_delay' [-Wimplicit-int]
        type defaults to 'int' in declaration of 'app_resume_time' [-Wimplicit-int]
        passing argument 1 of 'cue_cont_update' from incompatible pointer type [-Wincompatible-pointer-types]
        test_cues.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[4] {aka unsigned char (*)[4]}'
        passing argument 1 of 'cue_comb_update' from incompatible pointer type [-Wincompatible-pointer-types]
        test_cues.c
        expected 'uint8_t * {aka unsigned char *}' but argument is of type 'uint8_t (*)[7] {aka unsigned char (*)[7]}'
      Preprocessor Definitions property has changed.
      Compiling ‘test_drives.c’
      Preprocessor Definitions property has changed.
      Compiling ‘access.c’
      Preprocessor Definitions property has changed.
      Compiling ‘access_loopback.c’
      Preprocessor Definitions property has changed.
      Compiling ‘access_publish.c’
      Preprocessor Definitions property has changed.
      Compiling ‘access_publish_retransmission.c’
      Preprocessor Definitions property has changed.
      Preprocessor Definitions property has changed.
      Compiling ‘device_state_manager.c’
      Compiling ‘access_reliable.c’
      Preprocessor Definitions property has changed.
      Preprocessor Definitions property has changed.
      Compiling ‘ad_type_filter.c’
      Compiling ‘ad_listener.c’
      Preprocessor Definitions property has changed.
      Preprocessor Definitions property has changed.
      Compiling ‘adv_ext_tx.c’
      Compiling ‘adv_ext_packet.c’
      Preprocessor Definitions property has changed.
      Compiling ‘adv_packet_filter.c’
      Preprocessor Definitions property has changed.
      Compiling ‘advertiser.c’
      Preprocessor Definitions property has changed.
      Preprocessor Definitions property has changed.
      Compiling ‘broadcast.c’
      Compiling ‘bearer_handler.c’
      Preprocessor Definitions property has changed.
      Compiling ‘filter_engine.c’
      Preprocessor Definitions property has changed.
      Compiling ‘gap_address_filter.c’
      Preprocessor Definitions property has changed.
      Compiling ‘instaburst.c’
      Preprocessor Definitions property has changed.
      Compiling ‘instaburst_rx.c’
      Preprocessor Definitions property has changed.
      Compiling ‘instaburst_tx.c’
      Preprocessor Definitions property has changed.
      Compiling ‘mesh_pa_lna.c’
      Preprocessor Definitions property has changed.
      Compiling ‘radio_config.c’
      Preprocessor Definitions property has changed.
      Compiling ‘rssi_filter.c’
      Preprocessor Definitions property has changed.
      Compiling ‘scanner.c’
      Preprocessor Definitions property has changed.
      Compiling ‘aes.c’
      Preprocessor Definitions property has changed.
      Compiling ‘aes_cmac.c’
      Preprocessor Definitions property has changed.
      Compiling ‘beacon.c’
      Preprocessor Definitions property has changed.
      Compiling ‘bearer_event.c’
      Preprocessor Definitions property has changed.
      Compiling ‘cache.c’
      Preprocessor Definitions property has changed.
      Compiling ‘ccm_soft.c’
      Preprocessor Definitions property has changed.
      Compiling ‘core_tx.c’
      Preprocessor Definitions property has changed.
      Compiling ‘core_tx_adv.c’
      Preprocessor Definitions property has changed.
      Compiling ‘core_tx_lpn.c’
      Preprocessor Definitions property has changed.
      Compiling ‘enc.c’
      Preprocessor Definitions property has changed.
      Compiling ‘event.c’
      Preprocessor Definitions property has changed.
      Compiling ‘fifo.c’
      Preprocessor Definitions property has changed.
      Compiling ‘flash_manager.c’
      Preprocessor Definitions property has changed.
      Compiling ‘flash_manager_defrag.c’
      Preprocessor Definitions property has changed.
      Compiling ‘flash_manager_internal.c’
      Preprocessor Definitions property has changed.
      Compiling ‘fsm.c’
      Preprocessor Definitions property has changed.
      Compiling ‘hal.c’
      Preprocessor Definitions property has changed.
      Compiling ‘heartbeat.c’
      Preprocessor Definitions property has changed.
      Compiling ‘internal_event.c’
      Preprocessor Definitions property has changed.
      Compiling ‘list.c’
      Preprocessor Definitions property has changed.
      Compiling ‘log.c’
      Preprocessor Definitions property has changed.
      Compiling ‘lpn.c’
      Preprocessor Definitions property has changed.
      Compiling ‘mesh_config.c’
      Preprocessor Definitions property has changed.
      Output/project_s140_nrf52840 Debug/Obj/mesh_config_flashman_glue.o does not exist.
      Compiling ‘mesh_config_flashman_glue.c’
      Compiling ‘mesh_config_backend.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_flash.o does not exist.
      Compiling ‘mesh_flash.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_lpn_subman.o does not exist.
      Compiling ‘mesh_lpn_subman.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_mem_stdlib.o does not exist.
      Compiling ‘mesh_mem_stdlib.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_opt.o does not exist.
      Compiling ‘mesh_opt.c’
      Output/project_s140_nrf52840 Debug/Obj/msg_cache.o does not exist.
      Compiling ‘msg_cache.c’
      Output/project_s140_nrf52840 Debug/Obj/msqueue.o does not exist.
      Compiling ‘msqueue.c’
      Output/project_s140_nrf52840 Debug/Obj/net_beacon.o does not exist.
      Compiling ‘net_beacon.c’
      Output/project_s140_nrf52840 Debug/Obj/net_packet.o does not exist.
      Compiling ‘net_packet.c’
      Output/project_s140_nrf52840 Debug/Obj/net_state.o does not exist.
      Compiling ‘net_state.c’
      Output/project_s140_nrf52840 Debug/Obj/network.o does not exist.
      Compiling ‘network.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_flash.o does not exist.
      Compiling ‘nrf_flash.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh.o does not exist.
      Compiling ‘nrf_mesh.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_configure.o does not exist.
      Compiling ‘nrf_mesh_configure.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_keygen.o does not exist.
      Compiling ‘nrf_mesh_keygen.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_opt.o does not exist.
      Compiling ‘nrf_mesh_opt.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_utils.o does not exist.
      Compiling ‘nrf_mesh_utils.c’
      Output/project_s140_nrf52840 Debug/Obj/packet_buffer.o does not exist.
      Compiling ‘packet_buffer.c’
      Output/project_s140_nrf52840 Debug/Obj/packet_mgr.o does not exist.
      Compiling ‘packet_mgr.c’
      Output/project_s140_nrf52840 Debug/Obj/queue.o does not exist.
      Compiling ‘queue.c’
      Output/project_s140_nrf52840 Debug/Obj/rand.o does not exist.
      Compiling ‘rand.c’
      Output/project_s140_nrf52840 Debug/Obj/replay_cache.o does not exist.
      Compiling ‘replay_cache.c’
      Output/project_s140_nrf52840 Debug/Obj/timer.o does not exist.
      Compiling ‘timer.c’
      Output/project_s140_nrf52840 Debug/Obj/timer_scheduler.o does not exist.
      Compiling ‘timer_scheduler.c’
      Output/project_s140_nrf52840 Debug/Obj/timeslot.o does not exist.
      Compiling ‘timeslot.c’
      Output/project_s140_nrf52840 Debug/Obj/timeslot_timer.o does not exist.
      Compiling ‘timeslot_timer.c’
      Output/project_s140_nrf52840 Debug/Obj/toolchain.o does not exist.
      Compiling ‘toolchain.c’
      Output/project_s140_nrf52840 Debug/Obj/transport.o does not exist.
      Compiling ‘transport.c’
      Output/project_s140_nrf52840 Debug/Obj/uri.o does not exist.
      Compiling ‘uri.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_dfu.o does not exist.
      Compiling ‘nrf_mesh_dfu.c’
      Output/project_s140_nrf52840 Debug/Obj/nrf_mesh_prov.o does not exist.
      Compiling ‘nrf_mesh_prov.c’
      Output/project_s140_nrf52840 Debug/Obj/prov_beacon.o does not exist.
      Compiling ‘prov_beacon.c’
      Output/project_s140_nrf52840 Debug/Obj/prov_bearer_adv.o does not exist.
      Compiling ‘prov_bearer_adv.c’
      Output/project_s140_nrf52840 Debug/Obj/prov_provisionee.o does not exist.
      Compiling ‘prov_provisionee.c’
      Output/project_s140_nrf52840 Debug/Obj/prov_provisioner.o does not exist.
      Compiling ‘prov_provisioner.c’
      Output/project_s140_nrf52840 Debug/Obj/prov_utils.o does not exist.
      Compiling ‘prov_utils.c’
      Output/project_s140_nrf52840 Debug/Obj/provisioning.o does not exist.
      Compiling ‘provisioning.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_stack.o does not exist.
      Compiling ‘mesh_stack.c’
      Output/project_s140_nrf52840 Debug/Obj/model_common.o does not exist.
      Compiling ‘model_common.c’
      Output/project_s140_nrf52840 Debug/Obj/config_server.o does not exist.
      Compiling ‘config_server.c’
      Output/project_s140_nrf52840 Debug/Obj/composition_data.o does not exist.
      Compiling ‘composition_data.c’
      Output/project_s140_nrf52840 Debug/Obj/packed_index_list.o does not exist.
      Compiling ‘packed_index_list.c’
      Output/project_s140_nrf52840 Debug/Obj/health_server.o does not exist.
      Compiling ‘health_server.c’
      Output/project_s140_nrf52840 Debug/Obj/generic_onoff_client.o does not exist.
      Compiling ‘generic_onoff_client.c’
      Output/project_s140_nrf52840 Debug/Obj/uECC.o does not exist.
      Compiling ‘uECC.c’
      Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o does not exist.
      Compiling ‘app_timer_mesh.c’
      Output/project_s140_nrf52840 Debug/Obj/assertion_handler_weak.o does not exist.
      Compiling ‘assertion_handler_weak.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_provisionee.o does not exist.
      Compiling ‘mesh_provisionee.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_app_utils.o does not exist.
      Compiling ‘mesh_app_utils.c’
      Output/project_s140_nrf52840 Debug/Obj/mesh_adv.o does not exist.
      Compiling ‘mesh_adv.c’
      Output/Debug/Exe/project_s140_nrf52840.elf does not exist.
      Generating linker script ‘project_s140_nrf52840.ld’
      Linking project_s140_nrf52840.elf
        Output/project_s140_nrf52840 Debug/Obj/bearer_handler.o: In function `TIMER2_IRQHandler':
        multiple definition of `TIMER2_IRQHandler'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\modules\nrfx\drivers\src/nrfx_timer.c:308: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `RTC1_IRQHandler':
        multiple definition of `RTC1_IRQHandler'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:907: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `SWI0_EGU0_IRQHandler':
        multiple definition of `SWI0_EGU0_IRQHandler'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:926: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_init':
        multiple definition of `app_timer_init'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:932: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_create':
        multiple definition of `app_timer_create'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:964: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_start':
        multiple definition of `app_timer_start'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:989: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_stop':
        multiple definition of `app_timer_stop'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1020: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_stop_all':
        multiple definition of `app_timer_stop_all'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1038: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_cnt_get':
        multiple definition of `app_timer_cnt_get'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1047: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_cnt_diff_compute':
        multiple definition of `app_timer_cnt_diff_compute'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1054: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_pause':
        multiple definition of `app_timer_pause'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1067: first defined here
        Output/project_s140_nrf52840 Debug/Obj/app_timer_mesh.o: In function `app_timer_resume':
        multiple definition of `app_timer_resume'
        E:\folder-project\project_Firmware\hw_v1.3_mesh\nRF5_SDK\components\libraries\timer/app_timer.c:1072: first defined here
    Build failed

  • After several tries, this method was successful:

    1. Added mesh to the ble_template_app for nRF52840 (using above link)
    2. Few tweaks and projects compiled successfully
    3. Added code files from SDK15 project (our existing BLE app), few tweaks and project compiled successfully

    Now I'm looking to enable PB-GATT and proxy features. For that I'm looking into the uart co-exist example. But we really don't need light switch functionality. We we need is that the BLE provisioner (mobile app) can add and provision these devices and access the characteristics (used in the P2P SDK part). Is there a document that can help to enable these mesh features?

Reply
  • After several tries, this method was successful:

    1. Added mesh to the ble_template_app for nRF52840 (using above link)
    2. Few tweaks and projects compiled successfully
    3. Added code files from SDK15 project (our existing BLE app), few tweaks and project compiled successfully

    Now I'm looking to enable PB-GATT and proxy features. For that I'm looking into the uart co-exist example. But we really don't need light switch functionality. We we need is that the BLE provisioner (mobile app) can add and provision these devices and access the characteristics (used in the P2P SDK part). Is there a document that can help to enable these mesh features?

Children
  • Glad that it worked for you. 

    We currently don't have the documentation or example on combining the proxy (and PB-GATT) role with the normal BLE application. But I don't see any reason it wouldn't work. You would need to follow what we have in the light switch example where we enable PB-GATT and Proxy feature in mesh. 

    Note that after we provisioned, we will reset the softdevice to enable proxy service. You may need to restore your service after the provisioning as well.

  • Hello,

    I'm still working on the same project, this time for nRF52840 chip. I have modified the ble_app_template example and added mesh to it using this guide. I'm using Mesh SDK4.0.0 and nRF5 SDK 16.0.0, soft device version is v7.0.1.

    After including files in .emProject file and including user directories in the preprocessor section, changed section placement as below, project compiles successfully.

    Added mesh_main_initialize(); and mesh_main_start(); functions in the main.c file. The project compiles but debug port throws error: app: ASSERTION FAILED at :0

    If I comment out mesh_main_start(); function, the device functionality is as expected except mesh. Previously this error was also on mesh_main_initialize but I changed placement macro FLASH_PH_SIZE=0x100000 to FLASH_PH_SIZE=0x80000 and the assertion error was gone for mesh_main_initialize(). I think there is something to do with placement macros but I cannot figure out what to do.

    Also had to remove following lines from .emProject file to get rid of RTC1_Handle error.

    <file file_name="../../../../../../components/libraries/timer/app_timer2.c" />
    <file file_name="../../../../../../components/libraries/timer/drv_rtc.c" />

    User include directories: 

    ../../../ble_app_template_mesh
    ../../../config
    ../../../../../../components
    ../../../../../../components/ble/ble_advertising
    ../../../../../../components/ble/ble_dtm
    ../../../../../../components/ble/ble_racp
    ../../../../../../components/ble/ble_services/ble_ancs_c
    ../../../../../../components/ble/ble_services/ble_ans_c
    ../../../../../../components/ble/ble_services/ble_bas
    ../../../../../../components/ble/ble_services/ble_bas_c
    ../../../../../../components/ble/ble_services/ble_cscs
    ../../../../../../components/ble/ble_services/ble_cts_c
    ../../../../../../components/ble/ble_services/ble_dfu
    ../../../../../../components/ble/ble_services/ble_dis
    ../../../../../../components/ble/ble_services/ble_gls
    ../../../../../../components/ble/ble_services/ble_hids
    ../../../../../../components/ble/ble_services/ble_hrs
    ../../../../../../components/ble/ble_services/ble_hrs_c
    ../../../../../../components/ble/ble_services/ble_hts
    ../../../../../../components/ble/ble_services/ble_ias
    ../../../../../../components/ble/ble_services/ble_ias_c
    ../../../../../../components/ble/ble_services/ble_lbs
    ../../../../../../components/ble/ble_services/ble_lbs_c
    ../../../../../../components/ble/ble_services/ble_lls
    ../../../../../../components/ble/ble_services/ble_nus
    ../../../../../../components/ble/ble_services/ble_nus_c
    ../../../../../../components/ble/ble_services/ble_rscs
    ../../../../../../components/ble/ble_services/ble_rscs_c
    ../../../../../../components/ble/ble_services/ble_tps
    ../../../../../../components/ble/common
    ../../../../../../components/ble/nrf_ble_gatt
    ../../../../../../components/ble/nrf_ble_qwr
    ../../../../../../components/ble/peer_manager
    ../../../../../../components/boards
    ../../../../../../components/libraries/atomic
    ../../../../../../components/libraries/atomic_fifo
    ../../../../../../components/libraries/atomic_flags
    ../../../../../../components/libraries/balloc
    ../../../../../../components/libraries/bootloader/ble_dfu
    ../../../../../../components/libraries/bsp
    ../../../../../../components/libraries/button
    ../../../../../../components/libraries/cli
    ../../../../../../components/libraries/crc16
    ../../../../../../components/libraries/crc32
    ../../../../../../components/libraries/crypto
    ../../../../../../components/libraries/csense
    ../../../../../../components/libraries/csense_drv
    ../../../../../../components/libraries/delay
    ../../../../../../components/libraries/ecc
    ../../../../../../components/libraries/experimental_section_vars
    ../../../../../../components/libraries/experimental_task_manager
    ../../../../../../components/libraries/fds
    ../../../../../../components/libraries/fstorage
    ../../../../../../components/libraries/gfx
    ../../../../../../components/libraries/gpiote
    ../../../../../../components/libraries/hardfault
    ../../../../../../components/libraries/hci
    ../../../../../../components/libraries/led_softblink
    ../../../../../../components/libraries/log
    ../../../../../../components/libraries/log/src
    ../../../../../../components/libraries/low_power_pwm
    ../../../../../../components/libraries/mem_manager
    ../../../../../../components/libraries/memobj
    ../../../../../../components/libraries/mpu
    ../../../../../../components/libraries/mutex
    ../../../../../../components/libraries/pwm
    ../../../../../../components/libraries/pwr_mgmt
    ../../../../../../components/libraries/queue
    ../../../../../../components/libraries/ringbuf
    ../../../../../../components/libraries/scheduler
    ../../../../../../components/libraries/sdcard
    ../../../../../../components/libraries/sensorsim
    ../../../../../../components/libraries/slip
    ../../../../../../components/libraries/sortlist
    ../../../../../../components/libraries/spi_mngr
    ../../../../../../components/libraries/stack_guard
    ../../../../../../components/libraries/strerror
    ../../../../../../components/libraries/svc
    ../../../../../../components/libraries/timer
    ../../../../../../components/libraries/twi_mngr
    ../../../../../../components/libraries/twi_sensor
    ../../../../../../components/libraries/usbd
    ../../../../../../components/libraries/usbd/class/audio
    ../../../../../../components/libraries/usbd/class/cdc
    ../../../../../../components/libraries/usbd/class/cdc/acm
    ../../../../../../components/libraries/usbd/class/hid
    ../../../../../../components/libraries/usbd/class/hid/generic
    ../../../../../../components/libraries/usbd/class/hid/kbd
    ../../../../../../components/libraries/usbd/class/hid/mouse
    ../../../../../../components/libraries/usbd/class/msc
    ../../../../../../components/libraries/util
    ../../../../../../components/nfc/ndef/conn_hand_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/ac_rec_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/ble_oob_advdata_parser
    ../../../../../../components/nfc/ndef/conn_hand_parser/le_oob_rec_parser
    ../../../../../../components/nfc/ndef/connection_handover/ac_rec
    ../../../../../../components/nfc/ndef/connection_handover/ble_oob_advdata
    ../../../../../../components/nfc/ndef/connection_handover/ble_pair_lib
    ../../../../../../components/nfc/ndef/connection_handover/ble_pair_msg
    ../../../../../../components/nfc/ndef/connection_handover/common
    ../../../../../../components/nfc/ndef/connection_handover/ep_oob_rec
    ../../../../../../components/nfc/ndef/connection_handover/hs_rec
    ../../../../../../components/nfc/ndef/connection_handover/le_oob_rec
    ../../../../../../components/nfc/ndef/generic/message
    ../../../../../../components/nfc/ndef/generic/record
    ../../../../../../components/nfc/ndef/launchapp
    ../../../../../../components/nfc/ndef/parser/message
    ../../../../../../components/nfc/ndef/parser/record
    ../../../../../../components/nfc/ndef/text
    ../../../../../../components/nfc/ndef/uri
    ../../../../../../components/nfc/platform
    ../../../../../../components/nfc/t2t_lib
    ../../../../../../components/nfc/t2t_parser
    ../../../../../../components/nfc/t4t_lib
    ../../../../../../components/nfc/t4t_parser/apdu
    ../../../../../../components/nfc/t4t_parser/cc_file
    ../../../../../../components/nfc/t4t_parser/hl_detection_procedure
    ../../../../../../components/nfc/t4t_parser/tlv
    ../../../../../../components/softdevice/common
    ../../../../../../components/softdevice/s140/headers
    ../../../../../../components/softdevice/s140/headers/nrf52
    ../../../../../../components/toolchain/cmsis/include
    ../../../../../../external/fprintf
    ../../../../../../external/segger_rtt
    ../../../../../../external/utf_converter
    ../../../../../../integration/nrfx
    ../../../../../../integration/nrfx/legacy
    ../../../../../../modules/nrfx
    ../../../../../../modules/nrfx/drivers/include
    ../../../../../../modules/nrfx/hal
    ../../../../../../modules/nrfx/mdk
    ../config
    ../../..
    $(MESH_ROOT)/mesh/core/api
    $(MESH_ROOT)/mesh/core/include
    $(MESH_ROOT)/mesh/bearer/api
    $(MESH_ROOT)/mesh/bearer/include
    $(MESH_ROOT)/mesh/prov/api
    $(MESH_ROOT)/mesh/prov/include
    $(MESH_ROOT)/mesh/access/api
    $(MESH_ROOT)/mesh/access/include
    $(MESH_ROOT)/mesh/dfu/api
    $(MESH_ROOT)/mesh/dfu/include
    $(MESH_ROOT)/mesh/gatt/api
    $(MESH_ROOT)/mesh/gatt/include
    $(MESH_ROOT)/mesh/stack/api
    $(MESH_ROOT)/models/model_spec/common/include
    $(MESH_ROOT)/models/foundation/config/include
    $(MESH_ROOT)/models/foundation/health/include
    $(MESH_ROOT)/models/model_spec/generic_onoff/include
    $(MESH_ROOT)/external/micro-ecc
    $(MESH_ROOT)/examples/common/include
    $(MESH_ROOT)/examples/light_switch/include
    $(MESH_ROOT)/examples/light_switch/client/include

    Section placement macros:

    FLASH_PH_START=0x0
    FLASH_PH_SIZE=0x80000
    RAM_PH_START=0x20000000
    RAM_PH_SIZE=0x40000
    FLASH_START=0x27000
    FLASH_SIZE=0xd9000
    RAM_START=0x20002430
    RAM_SIZE=0x3dda0

    flash_placement.xls

    <!DOCTYPE Linker_Placement_File>
    <Root name="Flash Section Placement">
      <MemorySegment name="FLASH" start="$(FLASH_PH_START)" size="$(FLASH_PH_SIZE)">
        <ProgramSection load="no" name=".reserved_flash" start="$(FLASH_PH_START)" size="$(FLASH_START)-$(FLASH_PH_START)" />
        <ProgramSection alignment="0x100" load="Yes" name=".vectors" start="$(FLASH_START)" />
        <ProgramSection alignment="4" load="Yes" name=".init" />
        <ProgramSection alignment="4" load="Yes" name=".init_rodata" />
        <ProgramSection alignment="4" load="Yes" name=".text" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_soc_observers" inputsections="*(SORT(.sdh_soc_observers*))" address_symbol="__start_sdh_soc_observers" end_symbol="__stop_sdh_soc_observers" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_ble_observers" inputsections="*(SORT(.sdh_ble_observers*))" address_symbol="__start_sdh_ble_observers" end_symbol="__stop_sdh_ble_observers" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".pwr_mgmt_data" inputsections="*(SORT(.pwr_mgmt_data*))" address_symbol="__start_pwr_mgmt_data" end_symbol="__stop_pwr_mgmt_data" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_state_observers" inputsections="*(SORT(.sdh_state_observers*))" address_symbol="__start_sdh_state_observers" end_symbol="__stop_sdh_state_observers" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_stack_observers" inputsections="*(SORT(.sdh_stack_observers*))" address_symbol="__start_sdh_stack_observers" end_symbol="__stop_sdh_stack_observers" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".sdh_req_observers" inputsections="*(SORT(.sdh_req_observers*))" address_symbol="__start_sdh_req_observers" end_symbol="__stop_sdh_req_observers" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_balloc" inputsections="*(.nrf_balloc*)" address_symbol="__start_nrf_balloc" end_symbol="__stop_nrf_balloc" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".cli_command" inputsections="*(.cli_command*)" address_symbol="__start_cli_command" end_symbol="__stop_cli_command" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".crypto_data" inputsections="*(SORT(.crypto_data*))" address_symbol="__start_crypto_data" end_symbol="__stop_crypto_data" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_const_data" inputsections="*(SORT(.log_const_data*))" address_symbol="__start_log_const_data" end_symbol="__stop_log_const_data" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_backends" inputsections="*(SORT(.log_backends*))" address_symbol="__start_log_backends" end_symbol="__stop_log_backends" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections" address_symbol="__start_nrf_sections" />
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".cli_sorted_cmd_ptrs"  inputsections="*(.cli_sorted_cmd_ptrs*)" runin=".cli_sorted_cmd_ptrs_run"/>
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".fs_data"  inputsections="*(.fs_data*)" runin=".fs_data_run"/>
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_dynamic_data"  inputsections="*(SORT(.log_dynamic_data*))" runin=".log_dynamic_data_run"/>
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".log_filter_data"  inputsections="*(SORT(.log_filter_data*))" runin=".log_filter_data_run"/>
        <ProgramSection alignment="4" keep="Yes" load="Yes" name=".nrf_mesh_flash"  inputsections="*(SORT(.nrf_mesh_flash.*))" address_symbol="__start_nrf_mesh_flash" end_symbol="__stop_nrf_mesh_flash"/>
        <ProgramSection alignment="4" load="Yes" name=".dtors" />
        <ProgramSection alignment="4" load="Yes" name=".ctors" />
        <ProgramSection alignment="4" load="Yes" name=".rodata" />
        <ProgramSection alignment="4" load="Yes" name=".ARM.exidx" address_symbol="__exidx_start" end_symbol="__exidx_end" />
        <ProgramSection alignment="4" load="Yes" runin=".fast_run" name=".fast" />
        <ProgramSection alignment="4" load="Yes" runin=".data_run" name=".data" />
        <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
      </MemorySegment>
      <MemorySegment name="RAM" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
        <ProgramSection load="no" name=".reserved_ram" start="$(RAM_PH_START)" size="$(RAM_START)-$(RAM_PH_START)" />
        <ProgramSection alignment="0x100" load="No" name=".vectors_ram" start="$(RAM_START)" address_symbol="__app_ram_start__"/>
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run" address_symbol="__start_nrf_sections_run" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".cli_sorted_cmd_ptrs_run" address_symbol="__start_cli_sorted_cmd_ptrs" end_symbol="__stop_cli_sorted_cmd_ptrs" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".fs_data_run" address_symbol="__start_fs_data" end_symbol="__stop_fs_data" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".log_dynamic_data_run" address_symbol="__start_log_dynamic_data" end_symbol="__stop_log_dynamic_data" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".log_filter_data_run" address_symbol="__start_log_filter_data" end_symbol="__stop_log_filter_data" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_sections_run_end" address_symbol="__end_nrf_sections_run" />
        <ProgramSection alignment="4" keep="Yes" load="No" name=".nrf_mesh_ram"  inputsections="*(SORT(.nrf_mesh_ram.*))" address_symbol="__start_nrf_mesh_ram" end_symbol="__stop_nrf_mesh_ram"/>
        <ProgramSection alignment="4" load="No" name=".fast_run" />
        <ProgramSection alignment="4" load="No" name=".data_run" />
        <ProgramSection alignment="4" load="No" name=".tdata_run" />
        <ProgramSection alignment="4" load="No" name=".bss" />
        <ProgramSection alignment="4" load="No" name=".tbss" />
        <ProgramSection alignment="4" load="No" name=".non_init" />
        <ProgramSection alignment="4" size="__HEAPSIZE__" load="No" name=".heap" />
        <ProgramSection alignment="8" size="__STACKSIZE__" load="No" place_from_segment_end="Yes" name=".stack"  address_symbol="__StackLimit" end_symbol="__StackTop"/>
        <ProgramSection alignment="8" size="__STACKSIZE_PROCESS__" load="No" name=".stack_process" />
      </MemorySegment>
    </Root>
    

  • Hi Aftab, 

    Could you send your whole project folder ? So we can try here ? 

    Please make sure your Linker Option -> Section Placement File points to flash_placement.xml /xls file (not sure why you call it .xls file ? ) 

    If you test using our example inside \examples\sdk_coexist do you see the same error ? 

  • I'm trying in the examples\ble_peripheral folder. I have adopted two approaches:

    1. Converted an S132 (with nRF52832 chip) co-exist project to S140 project (with nRF52840 chip)

    2. Took an nRF52840 template and added mesh to it.

    Both led to the same result with same error as reported above.

    Checked section placement file points to flash_placement.xml.

    I am attaching the project. I'm using Segger ES.

    "..\nRF5_SDK_16.0.0_98a08e2\examples\ble_peripheral\ble_app_template_mesh\pca10056\s140\ses"

    ble_app_template_mesh.zip

  • Hi Aftab, 

    I found that you have double defined MESH SOC OBSERVER. In main.c you declared:

    NRF_SDH_SOC_OBSERVER(m_mesh_soc_observer, MESH_SOC_OBSERVER_PRIO, mesh_soc_evt_handler, NULL);

    But it's already defined in  mesh_main.c . If you remove the one in main.c it should work. 

    I also saw an assertion inside sleep_mode_enter() when the firmware tried to enter sleepmode. Most likely you would need to disable mesh before you enter deep sleep mode. Have a look here: devzone.nordicsemi.com/.../reliably-disabling-mesh-stack-quickly-for-low-power

Related