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?

  • 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

  • I see that now the assertion failure error is gone and I can discover and connect the device using nRFConnect app. However, the nRF Mesh app still cannot discover (and provision) the device. Were you able to provision the device at your end?

Reply Children
Related