nrf528520 BLE DFU OTA Issue

nrf52820 custom board

nRF5_SDK_17.1.0_ddde560

s112_nrf52_7.2.0_softdevice

secure_bootloader_ble_s112_pca10100e

I tried to incorporate ble dfu to my application but the bootloader never finds the application, neither when hex files (of app + softdevice + bootloader + settings) are programmed via nrf programmer or hex files (softdevice + bootloader + settings) are programmed via nrf connect programmer and app is loaded via the nrf connect cell phone app. All i see is the DFUTarg being advertised and I have also confirmed it with RTT output.

I have attached the 4 relevant files here.

here is the command I used to generate settings:

nrfutil settings generate --family NRF52QFAB --application lazyiot_axis_nrf52820.hex --application-version 1 --bootloader-version 2 --bl-settings-version 2 settings.hex

and here is the screen shot of all the files loaded in nrf programmer:



Please provide guidance. This is the blocking issue before we start production.

<!DOCTYPE CrossStudio_Project_File>
<solution Name="lazyiot_axis_nrf52820" target="8" version="2">
  <configuration
    Name="Debug"
    c_preprocessor_definitions="DEBUG; DEBUG_NRF"
    gcc_optimization_level="None" />
  <configuration
    Name="Release"
    c_preprocessor_definitions="NDEBUG"
    gcc_optimization_level="Optimize For Size"
    link_time_optimization="No" />
  <project Name="lazyiot_axis_nrf52820">
    <configuration
      Name="Common"
      arm_architecture="v7EM"
      arm_core_type="Cortex-M4"
      arm_endian="Little"
      arm_fp_abi="Soft"
      arm_fpu_type="Soft"
      arm_linker_heap_size="4096"
      arm_linker_process_stack_size="0"
      arm_linker_stack_size="4096"
      arm_linker_treat_warnings_as_errors="No"
      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
      arm_target_device_name="nRF52820_xxAA"
      arm_target_interface_type="SWD"
      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BOARD_LAZYIOT_AXIS_NRF52820;CONFIG_GPIO_AS_PINRESET;DEVELOP_IN_NRF52833;FLOAT_ABI_SOFT;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52820_XXAA;NRFX_COREDEP_DELAY_US_LOOP_CYCLES=3;NRF_DFU_SVCI_ENABLED;NRF_DFU_TRANSPORT_BLE=1;NRF_SD_BLE_API_VERSION=7;S112;SOFTDEVICE_PRESENT;"
      c_user_include_directories="../../../config;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_radio_notification;../../../../../nRF5_SDK_17.1.0_ddde560/components;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_advertising;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_dtm;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_link_ctx_manager;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_racp;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_ancs_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_ans_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_bas;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_bas_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_cscs;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_cts_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_dfu;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_dis;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_gls;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_hids;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_hrs;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_hrs_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_hts;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_ias;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_ias_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_lbs;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_lbs_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_lls;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_nus;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_nus_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_rscs;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_rscs_c;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_tps;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/common;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/nrf_ble_gatt;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/nrf_ble_qwr;../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager;../../../../../nRF5_SDK_17.1.0_ddde560/components/boards;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic_fifo;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic_flags;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/balloc;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/dfu;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/ble_dfu;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bsp;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/button;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/cli;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/crc16;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/crc32;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/crypto;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/csense;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/csense_drv;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/delay;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/ecc;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/experimental_section_vars;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/experimental_task_manager;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fds;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fifo;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fstorage;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/gfx;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/gpiote;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/hardfault;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/hci;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/led_softblink;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/low_power_pwm;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/mem_manager;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/memobj;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/mpu;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/mutex;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/pwm;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/pwr_mgmt;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/queue;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/ringbuf;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/scheduler;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/sdcard;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/slip;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/sortlist;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/spi_mngr;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/stack_guard;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/strerror;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/svc;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/timer;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/twi_mngr;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/twi_sensor;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/uart;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/audio;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/cdc;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/cdc/acm;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/hid;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/hid/generic;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/hid/kbd;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/hid/mouse;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/usbd/class/msc;../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util;../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/common;../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/s112/headers;../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/s112/headers/nrf52;../../../../../nRF5_SDK_17.1.0_ddde560/components/toolchain/cmsis/include;../../../../../nRF5_SDK_17.1.0_ddde560/external/fprintf;../../../../../nRF5_SDK_17.1.0_ddde560/external/segger_rtt;../../../../../nRF5_SDK_17.1.0_ddde560/external/utf_converter;../../../../../nRF5_SDK_17.1.0_ddde560/integration/nrfx;../../../../../nRF5_SDK_17.1.0_ddde560/integration/nrfx/legacy;../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx;../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/include;../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/hal;../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/mdk;../config;"
      debug_additional_load_file="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_radio_notification;../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/s112/hex/s112_nrf52_7.2.0_softdevice.hex"
      debug_register_definition_file="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/mdk/nrf52820.svd"
      debug_start_from_entry_point_symbol="No"
      debug_target_connection="J-Link"
      gcc_debugging_level="Level 3"
      gcc_entry_point="Reset_Handler"
      linker_output_format="hex"
      linker_printf_fmt_level="long"
      linker_printf_width_precision_supported="Yes"
      linker_scanf_fmt_level="long"
      linker_section_placement_file="flash_placement.xml"
      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x40000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x8000;FLASH_START=0x19000;FLASH_SIZE=0xf800;RAM_START=0x20002ae8;RAM_SIZE=0x5518"
      linker_section_placements_segments="FLASH1 RX 0x0 0x40000;RAM1 RWX 0x20000000 0x8000;uicr_bootloader_start_address RX 0x10001014 0x4"
      macros="CMSIS_CONFIG_TOOL=../../../../../nRF5_SDK_17.1.0_ddde560/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
      project_directory=""
      project_type="Executable" />
    <folder Name="Application">
      <file file_name="../../../bitBang.c" />
      <file file_name="../../../bitBang.h" />
      <file file_name="../../../LIS3DH.c" />
      <file file_name="../../../LIS3DH.h" />
      <file file_name="../../../main.c" />
      <file file_name="../../../myGlobal.h" />
      <file file_name="../../../myI2c.c" />
      <file file_name="../../../myI2c.h" />
      <file file_name="../../../mySensor.c" />
      <file file_name="../../../mySensor.h" />
      <file file_name="../config/sdk_config.h" />
      <file file_name="../../../sht40.c" />
      <file file_name="../../../shtc3.c" />
    </folder>
    <folder Name="Board Definition">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/boards/boards.c" />
    </folder>
    <folder Name="Board Support">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bsp/bsp.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bsp/bsp_btn_ble.c" />
    </folder>
    <folder Name="None">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/mdk/ses_startup_nrf52810.s" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/mdk/ses_startup_nrf_common.s" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/mdk/system_nrf52810.c" />
    </folder>
    <folder Name="nRF_BLE">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/auth_status_tracker.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/common/ble_advdata.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_advertising/ble_advertising.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/common/ble_conn_params.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/common/ble_conn_state.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_radio_notification/ble_radio_notification.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/common/ble_srv_common.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/gatt_cache_manager.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/gatts_cache_manager.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/id_manager.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/nrf_ble_gatt/nrf_ble_gatt.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/nrf_ble_qwr/nrf_ble_qwr.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/peer_data_storage.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/peer_database.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/peer_id.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/peer_manager.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/peer_manager_handler.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/pm_buffer.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/security_dispatcher.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/peer_manager/security_manager.c" />
    </folder>
    <folder Name="nRF_DFU">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_dfu/ble_dfu.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_dfu/ble_dfu_bonded.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/ble/ble_services/ble_dfu/ble_dfu_unbonded.c" />
    </folder>
    <folder Name="nRF_Drivers">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/integration/nrfx/legacy/nrf_drv_clock.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/integration/nrfx/legacy/nrf_drv_twi.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/soc/nrfx_atomic.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_clock.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_comp.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_gpiote.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/prs/nrfx_prs.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_saadc.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_twi.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/modules/nrfx/drivers/src/nrfx_twim.c" />
    </folder>
    <folder Name="nRF_Libraries">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/button/app_button.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util/app_error.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util/app_error_handler_gcc.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util/app_error_weak.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/scheduler/app_scheduler.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/timer/app_timer2.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util/app_util_platform.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/crc16/crc16.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/timer/drv_rtc.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fds/fds.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/util/nrf_assert.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic_fifo/nrf_atfifo.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic_flags/nrf_atflags.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/atomic/nrf_atomic.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/balloc/nrf_balloc.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/external/fprintf/nrf_fprintf.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/external/fprintf/nrf_fprintf_format.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fstorage/nrf_fstorage.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/fstorage/nrf_fstorage_sd.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/memobj/nrf_memobj.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/ringbuf/nrf_ringbuf.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/experimental_section_vars/nrf_section_iter.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/sortlist/nrf_sortlist.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/strerror/nrf_strerror.c" />
    </folder>
    <folder Name="nRF_Log">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src/nrf_log_backend_rtt.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src/nrf_log_backend_serial.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src/nrf_log_default_backends.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src/nrf_log_frontend.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/log/src/nrf_log_str_formatter.c" />
    </folder>
    <folder Name="nRF_Segger_RTT">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/external/segger_rtt/SEGGER_RTT.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/external/segger_rtt/SEGGER_RTT_printf.c" />
    </folder>
    <folder Name="nRF_SoftDevice">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/common/nrf_sdh.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/common/nrf_sdh_ble.c" />
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/softdevice/common/nrf_sdh_soc.c" />
    </folder>
    <folder Name="nRF_SVC">
      <file file_name="../../../../../nRF5_SDK_17.1.0_ddde560/components/libraries/bootloader/dfu/nrf_dfu_svci.c" />
    </folder>
    <folder Name="Segger Startup Files">
      <file file_name="$(StudioDir)/source/thumb_crt0.s" />
    </folder>
    <folder Name="System Files">
      <file file_name="flash_placement.xml" />
    </folder>
  </project>
</solution>


/* Linker script to configure memory regions. */

SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)

MEMORY
{
  FLASH (rx) : ORIGIN = 0x19000, LENGTH = 0xf800
  RAM (rwx) :  ORIGIN = 0x20002ae8, LENGTH = 0x5518
  uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4
}

SECTIONS
{
  . = ALIGN(4);
  .uicr_bootloader_start_address :
  {
    PROVIDE(__start_uicr_bootloader_start_address = .);
    KEEP(*(SORT(.uicr_bootloader_start_address*)))
    PROVIDE(__stop_uicr_bootloader_start_address = .);
  } > uicr_bootloader_start_address
}

SECTIONS
{
  . = ALIGN(4);
  .mem_section_dummy_ram :
  {
  }
  .cli_sorted_cmd_ptrs :
  {
    PROVIDE(__start_cli_sorted_cmd_ptrs = .);
    KEEP(*(.cli_sorted_cmd_ptrs))
    PROVIDE(__stop_cli_sorted_cmd_ptrs = .);
  } > RAM
  .fs_data :
  {
    PROVIDE(__start_fs_data = .);
    KEEP(*(.fs_data))
    PROVIDE(__stop_fs_data = .);
  } > RAM
  .log_dynamic_data :
  {
    PROVIDE(__start_log_dynamic_data = .);
    KEEP(*(SORT(.log_dynamic_data*)))
    PROVIDE(__stop_log_dynamic_data = .);
  } > RAM
  .log_filter_data :
  {
    PROVIDE(__start_log_filter_data = .);
    KEEP(*(SORT(.log_filter_data*)))
    PROVIDE(__stop_log_filter_data = .);
  } > RAM

} INSERT AFTER .data;

SECTIONS
{
  .mem_section_dummy_rom :
  {
  }
  .sdh_soc_observers :
  {
    PROVIDE(__start_sdh_soc_observers = .);
    KEEP(*(SORT(.sdh_soc_observers*)))
    PROVIDE(__stop_sdh_soc_observers = .);
  } > FLASH
  .sdh_ble_observers :
  {
    PROVIDE(__start_sdh_ble_observers = .);
    KEEP(*(SORT(.sdh_ble_observers*)))
    PROVIDE(__stop_sdh_ble_observers = .);
  } > FLASH
  .pwr_mgmt_data :
  {
    PROVIDE(__start_pwr_mgmt_data = .);
    KEEP(*(SORT(.pwr_mgmt_data*)))
    PROVIDE(__stop_pwr_mgmt_data = .);
  } > FLASH
  .sdh_req_observers :
  {
    PROVIDE(__start_sdh_req_observers = .);
    KEEP(*(SORT(.sdh_req_observers*)))
    PROVIDE(__stop_sdh_req_observers = .);
  } > FLASH
  .sdh_state_observers :
  {
    PROVIDE(__start_sdh_state_observers = .);
    KEEP(*(SORT(.sdh_state_observers*)))
    PROVIDE(__stop_sdh_state_observers = .);
  } > FLASH
  .sdh_stack_observers :
  {
    PROVIDE(__start_sdh_stack_observers = .);
    KEEP(*(SORT(.sdh_stack_observers*)))
    PROVIDE(__stop_sdh_stack_observers = .);
  } > FLASH
    .nrf_queue :
  {
    PROVIDE(__start_nrf_queue = .);
    KEEP(*(.nrf_queue))
    PROVIDE(__stop_nrf_queue = .);
  } > FLASH
    .nrf_balloc :
  {
    PROVIDE(__start_nrf_balloc = .);
    KEEP(*(.nrf_balloc))
    PROVIDE(__stop_nrf_balloc = .);
  } > FLASH
    .cli_command :
  {
    PROVIDE(__start_cli_command = .);
    KEEP(*(.cli_command))
    PROVIDE(__stop_cli_command = .);
  } > FLASH
  .crypto_data :
  {
    PROVIDE(__start_crypto_data = .);
    KEEP(*(SORT(.crypto_data*)))
    PROVIDE(__stop_crypto_data = .);
  } > FLASH
  .log_const_data :
  {
    PROVIDE(__start_log_const_data = .);
    KEEP(*(SORT(.log_const_data*)))
    PROVIDE(__stop_log_const_data = .);
  } > FLASH
  .log_backends :
  {
    PROVIDE(__start_log_backends = .);
    KEEP(*(SORT(.log_backends*)))
    PROVIDE(__stop_log_backends = .);
  } > FLASH

} INSERT AFTER .text


INCLUDE "nrf_common.ld"

<!DOCTYPE Linker_Placement_File>
<Root name="Flash Section Placement">
  <MemorySegment name="FLASH1" 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=".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=".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=".nrf_queue" inputsections="*(.nrf_queue*)" address_symbol="__start_nrf_queue" end_symbol="__stop_nrf_queue" />
    <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" 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="RAM1" 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" 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>
  <MemorySegment name="uicr_bootloader_start_address" start="0x10001014">
    <ProgramSection alignment="4" keep="Yes" load="Yes" name=".uicr_bootloader_start_address" address_symbol="__start_uicr_bootloader_start_address" end_symbol="__stop_uicr_bootloader_start_address" start="0x10001014" />
  </MemorySegment>
</Root>

PROJECT_NAME     := ble_app_uart_pca10100_s112
TARGETS          := nrf52820_xxaa
OUTPUT_DIRECTORY := _build

SDK_ROOT := ../../../../../..
PROJ_DIR := ../../..

$(OUTPUT_DIRECTORY)/nrf52820_xxaa.out: \
  LINKER_SCRIPT  := ble_app_uart_gcc_nrf52.ld

# Source files common to all targets
SRC_FILES += \
  $(SDK_ROOT)/modules/nrfx/mdk/gcc_startup_nrf52820.S \
  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_rtt.c \
  $(SDK_ROOT)/components/libraries/log/src/nrf_log_backend_serial.c \
  $(SDK_ROOT)/components/libraries/log/src/nrf_log_default_backends.c \
  $(SDK_ROOT)/components/libraries/log/src/nrf_log_frontend.c \
  $(SDK_ROOT)/components/libraries/log/src/nrf_log_str_formatter.c \
  $(SDK_ROOT)/components/libraries/button/app_button.c \
  $(SDK_ROOT)/components/libraries/util/app_error.c \
  $(SDK_ROOT)/components/libraries/util/app_error_handler_gcc.c \
  $(SDK_ROOT)/components/libraries/util/app_error_weak.c \
  $(SDK_ROOT)/components/libraries/fifo/app_fifo.c \
  $(SDK_ROOT)/components/libraries/scheduler/app_scheduler.c \
  $(SDK_ROOT)/components/libraries/timer/app_timer2.c \
  $(SDK_ROOT)/components/libraries/uart/app_uart_fifo.c \
  $(SDK_ROOT)/components/libraries/util/app_util_platform.c \
  $(SDK_ROOT)/components/libraries/timer/drv_rtc.c \
  $(SDK_ROOT)/components/libraries/hardfault/hardfault_implementation.c \
  $(SDK_ROOT)/components/libraries/util/nrf_assert.c \
  $(SDK_ROOT)/components/libraries/atomic_fifo/nrf_atfifo.c \
  $(SDK_ROOT)/components/libraries/atomic_flags/nrf_atflags.c \
  $(SDK_ROOT)/components/libraries/atomic/nrf_atomic.c \
  $(SDK_ROOT)/components/libraries/balloc/nrf_balloc.c \
  $(SDK_ROOT)/external/fprintf/nrf_fprintf.c \
  $(SDK_ROOT)/external/fprintf/nrf_fprintf_format.c \
  $(SDK_ROOT)/components/libraries/memobj/nrf_memobj.c \
  $(SDK_ROOT)/components/libraries/pwr_mgmt/nrf_pwr_mgmt.c \
  $(SDK_ROOT)/components/libraries/ringbuf/nrf_ringbuf.c \
  $(SDK_ROOT)/components/libraries/experimental_section_vars/nrf_section_iter.c \
  $(SDK_ROOT)/components/libraries/sortlist/nrf_sortlist.c \
  $(SDK_ROOT)/components/libraries/strerror/nrf_strerror.c \
  $(SDK_ROOT)/components/libraries/uart/retarget.c \
  $(SDK_ROOT)/modules/nrfx/mdk/system_nrf52820.c \
  $(SDK_ROOT)/components/boards/boards.c \
  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_clock.c \
  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_uart.c \
  $(SDK_ROOT)/modules/nrfx/soc/nrfx_atomic.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_clock.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_gpiote.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/prs/nrfx_prs.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uart.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_uarte.c \
  $(SDK_ROOT)/components/libraries/bsp/bsp.c \
  $(SDK_ROOT)/components/libraries/bsp/bsp_btn_ble.c \
  $(PROJ_DIR)/main.c \
  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT.c \
  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.c \
  $(SDK_ROOT)/external/segger_rtt/SEGGER_RTT_printf.c \
  $(SDK_ROOT)/components/ble/common/ble_advdata.c \
  $(SDK_ROOT)/components/ble/ble_advertising/ble_advertising.c \
  $(SDK_ROOT)/components/ble/common/ble_conn_params.c \
  $(SDK_ROOT)/components/ble/common/ble_conn_state.c \
  $(SDK_ROOT)/components/ble/ble_link_ctx_manager/ble_link_ctx_manager.c \
  $(SDK_ROOT)/components/ble/common/ble_srv_common.c \
  $(SDK_ROOT)/components/ble/nrf_ble_gatt/nrf_ble_gatt.c \
  $(SDK_ROOT)/components/ble/nrf_ble_qwr/nrf_ble_qwr.c \
  $(SDK_ROOT)/external/utf_converter/utf.c \
  $(SDK_ROOT)/components/ble/ble_services/ble_nus/ble_nus.c \
  $(SDK_ROOT)/components/softdevice/common/nrf_sdh.c \
  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_ble.c \
  $(SDK_ROOT)/components/softdevice/common/nrf_sdh_soc.c \
  $(SDK_ROOT)/modules/nrfx/drivers/src/nrfx_comp.c \
  $(SDK_ROOT)/integration/nrfx/legacy/nrf_drv_comp.c

# Include folders common to all targets
INC_FOLDERS += \
  $(SDK_ROOT)/components/ble/ble_services/ble_ancs_c \
  $(SDK_ROOT)/components/ble/ble_services/ble_ias_c \
  $(SDK_ROOT)/components/libraries/pwm \
  $(SDK_ROOT)/components/softdevice/s112/headers/nrf52 \
  $(SDK_ROOT)/components/libraries/usbd/class/cdc/acm \
  $(SDK_ROOT)/components/libraries/usbd/class/hid/generic \
  $(SDK_ROOT)/components/libraries/usbd/class/msc \
  $(SDK_ROOT)/components/libraries/usbd/class/hid \
  $(SDK_ROOT)/modules/nrfx/hal \
  $(SDK_ROOT)/components/libraries/log \
  $(SDK_ROOT)/components/ble/ble_services/ble_gls \
  $(SDK_ROOT)/components/libraries/fstorage \
  $(SDK_ROOT)/components/libraries/mutex \
  $(SDK_ROOT)/components/libraries/gfx \
  $(SDK_ROOT)/components/libraries/bootloader/ble_dfu \
  $(SDK_ROOT)/components/libraries/bootloader/dfu \
  $(SDK_ROOT)/components/libraries/fifo \
  $(SDK_ROOT)/components/boards \
  $(SDK_ROOT)/components/ble/ble_advertising \
  $(SDK_ROOT)/external/utf_converter \
  $(SDK_ROOT)/components/ble/ble_services/ble_bas_c \
  $(SDK_ROOT)/modules/nrfx/drivers/include \
  $(SDK_ROOT)/components/libraries/experimental_task_manager \
  $(SDK_ROOT)/components/ble/ble_services/ble_hrs_c \
  $(SDK_ROOT)/components/libraries/queue \
  $(SDK_ROOT)/components/libraries/pwr_mgmt \
  $(SDK_ROOT)/components/ble/ble_dtm \
  $(SDK_ROOT)/components/toolchain/cmsis/include \
  $(SDK_ROOT)/components/ble/ble_services/ble_rscs_c \
  $(SDK_ROOT)/components/ble/common \
  $(SDK_ROOT)/components/ble/ble_services/ble_lls \
  $(SDK_ROOT)/components/libraries/bsp \
  $(SDK_ROOT)/components/ble/ble_services/ble_bas \
  $(SDK_ROOT)/components/libraries/mpu \
  $(SDK_ROOT)/components/libraries/experimental_section_vars \
  $(SDK_ROOT)/components/ble/ble_services/ble_ans_c \
  $(SDK_ROOT)/components/libraries/slip \
  $(SDK_ROOT)/components/libraries/delay \
  $(SDK_ROOT)/components/libraries/csense_drv \
  $(SDK_ROOT)/components/libraries/memobj \
  $(SDK_ROOT)/components/ble/ble_services/ble_nus_c \
  $(SDK_ROOT)/components/softdevice/common \
  $(SDK_ROOT)/components/ble/ble_services/ble_ias \
  $(SDK_ROOT)/components/libraries/usbd/class/hid/mouse \
  $(SDK_ROOT)/components/libraries/low_power_pwm \
  $(SDK_ROOT)/components/ble/ble_services/ble_dfu \
  $(SDK_ROOT)/components/ble/ble_services/dfu \
  $(SDK_ROOT)/external/fprintf \
  $(SDK_ROOT)/components/libraries/svc \
  $(SDK_ROOT)/components/libraries/atomic \
  $(SDK_ROOT)/components \
  $(SDK_ROOT)/components/libraries/scheduler \
  $(SDK_ROOT)/components/libraries/cli \
  $(SDK_ROOT)/components/ble/ble_services/ble_lbs \
  $(SDK_ROOT)/components/ble/ble_services/ble_hts \
  $(SDK_ROOT)/components/ble/ble_services/ble_cts_c \
  $(SDK_ROOT)/components/libraries/crc16 \
  $(SDK_ROOT)/components/libraries/util \
  ../config \
  $(SDK_ROOT)/components/libraries/usbd/class/cdc \
  $(SDK_ROOT)/components/libraries/csense \
  $(SDK_ROOT)/components/libraries/balloc \
  $(SDK_ROOT)/components/libraries/ecc \
  $(SDK_ROOT)/components/libraries/hardfault \
  $(SDK_ROOT)/components/ble/ble_services/ble_cscs \
  $(SDK_ROOT)/components/libraries/uart \
  $(SDK_ROOT)/components/libraries/hci \
  $(SDK_ROOT)/components/libraries/usbd/class/hid/kbd \
  $(SDK_ROOT)/components/libraries/timer \
  $(SDK_ROOT)/integration/nrfx \
  $(SDK_ROOT)/components/libraries/sortlist \
  $(SDK_ROOT)/components/libraries/spi_mngr \
  $(SDK_ROOT)/components/softdevice/s112/headers \
  $(SDK_ROOT)/components/libraries/led_softblink \
  $(SDK_ROOT)/components/libraries/sdcard \
  $(SDK_ROOT)/modules/nrfx/mdk \
  $(SDK_ROOT)/components/ble/ble_link_ctx_manager \
  $(SDK_ROOT)/components/ble/ble_services/ble_nus \
  $(SDK_ROOT)/components/libraries/twi_mngr \
  $(SDK_ROOT)/components/ble/ble_services/ble_hids \
  $(SDK_ROOT)/components/libraries/strerror \
  $(SDK_ROOT)/components/libraries/crc32 \
  $(SDK_ROOT)/components/libraries/usbd/class/audio \
  $(SDK_ROOT)/components/ble/peer_manager \
  $(SDK_ROOT)/components/libraries/mem_manager \
  $(SDK_ROOT)/components/libraries/ringbuf \
  $(SDK_ROOT)/components/ble/ble_services/ble_tps \
  $(SDK_ROOT)/components/ble/ble_services/ble_dis \
  $(SDK_ROOT)/components/ble/nrf_ble_gatt \
  $(SDK_ROOT)/components/ble/nrf_ble_qwr \
  $(SDK_ROOT)/components/libraries/gpiote \
  $(SDK_ROOT)/components/libraries/button \
  $(SDK_ROOT)/modules/nrfx \
  $(SDK_ROOT)/components/libraries/twi_sensor \
  $(SDK_ROOT)/integration/nrfx/legacy \
  $(SDK_ROOT)/components/libraries/usbd \
  $(SDK_ROOT)/external/segger_rtt \
  $(SDK_ROOT)/components/libraries/atomic_fifo \
  $(SDK_ROOT)/components/ble/ble_services/ble_lbs_c \
  $(SDK_ROOT)/components/libraries/crypto \
  $(SDK_ROOT)/components/ble/ble_racp \
  $(SDK_ROOT)/components/libraries/fds \
  $(SDK_ROOT)/components/libraries/atomic_flags \
  $(SDK_ROOT)/components/ble/ble_services/ble_hrs \
  $(SDK_ROOT)/components/ble/ble_services/ble_rscs \
  $(SDK_ROOT)/components/libraries/stack_guard \
  $(SDK_ROOT)/components/libraries/log/src \
  $(SDK_ROOT)/modules/nrfx/drivers/include \
  $(SDK_ROOT)/integration/nrfx/legacy \
  $(SDK_ROOT)/modules/nrfx \
  $(SDK_ROOT)/modules/nrfx/hal
# Libraries common to all targets
LIB_FILES += \

# Optimization flags
OPT = -O3 -g3
# Uncomment the line below to enable link time optimization
#OPT += -flto

# C flags common to all targets
CFLAGS += $(OPT)
CFLAGS += -DAPP_TIMER_V2
CFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
CFLAGS += -DBOARD_LAZYIOT_AXIS_NRF52820
CFLAGS += -DCONFIG_GPIO_AS_PINRESET
CFLAGS += -DDEVELOP_IN_NRF52833
CFLAGS += -DFLOAT_ABI_SOFT
CFLAGS += -DNRF52820_XXAA
CFLAGS += -DNRFX_COREDEP_DELAY_US_LOOP_CYCLES=3
CFLAGS += -DNRF_SD_BLE_API_VERSION=7
CFLAGS += -DS112
CFLAGS += -DSOFTDEVICE_PRESENT
CFLAGS += -DNRFX_COMP_ENABLED=1
CFLAGS += -DCOMP_ENABLED=1
CFLAGS += -DNRF_DFU_SVCI_ENABLED
CFLAGS += -DNRF_DFU_TRANSPORT_BLE=1
CFLAGS += -DNRF_SD_BLE_API_VERSION=7
CFLAGS += -mcpu=cortex-m4
CFLAGS += -mthumb -mabi=aapcs
CFLAGS += -Wall -Werror
CFLAGS += -mfloat-abi=soft
# keep every function in a separate section, this allows linker to discard unused ones
CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing
CFLAGS += -fno-builtin -fshort-enums

# C++ flags common to all targets
CXXFLAGS += $(OPT)
# Assembler flags common to all targets
ASMFLAGS += -g3
ASMFLAGS += -mcpu=cortex-m4
ASMFLAGS += -mthumb -mabi=aapcs
ASMFLAGS += -mfloat-abi=soft
ASMFLAGS += -DAPP_TIMER_V2
ASMFLAGS += -DAPP_TIMER_V2_RTC1_ENABLED
ASMFLAGS += -DBOARD_LAZYIOT_AXIS_NRF52820
ASMFLAGS += -DCONFIG_GPIO_AS_PINRESET
ASMFLAGS += -DDEVELOP_IN_NRF52833
ASMFLAGS += -DFLOAT_ABI_SOFT
ASMFLAGS += -DNRF52820_XXAA
ASMFLAGS += -DNRFX_COREDEP_DELAY_US_LOOP_CYCLES=3
ASMFLAGS += -DNRF_DFU_SVCI_ENABLED
ASMFLAGS += -DNRF_DFU_TRANSPORT_BLE=1
ASMFLAGS += -DNRF_SD_BLE_API_VERSION=7
ASMFLAGS += -DS112
ASMFLAGS += -DSOFTDEVICE_PRESENT

# Linker flags
LDFLAGS += $(OPT)
LDFLAGS += -mthumb -mabi=aapcs -L$(SDK_ROOT)/modules/nrfx/mdk -T$(LINKER_SCRIPT)
LDFLAGS += -mcpu=cortex-m4
# let linker dump unused sections
LDFLAGS += -Wl,--gc-sections
# use newlib in nano version
LDFLAGS += --specs=nano.specs

nrf52820_xxaa: CFLAGS += -D__HEAP_SIZE=4096
nrf52820_xxaa: CFLAGS += -D__STACK_SIZE=4096
nrf52820_xxaa: ASMFLAGS += -D__HEAP_SIZE=4096
nrf52820_xxaa: ASMFLAGS += -D__STACK_SIZE=4096

# Add standard libraries at the very end of the linker input, after all objects
# that may need symbols provided by these libraries.
LIB_FILES += -lc -lnosys -lm


.PHONY: default help

# Default target - first one defined
default: nrf52820_xxaa

# Print all targets that can be built
help:
	@echo following targets are available:
	@echo		nrf52820_xxaa
	@echo		flash_softdevice
	@echo		sdk_config - starting external tool for editing sdk_config.h
	@echo		flash      - flashing binary

TEMPLATE_PATH := $(SDK_ROOT)/components/toolchain/gcc


include $(TEMPLATE_PATH)/Makefile.common

$(foreach target, $(TARGETS), $(call define_target, $(target)))

.PHONY: flash flash_softdevice erase

# Flash the program
flash: default
	@echo Flashing: $(OUTPUT_DIRECTORY)/nrf52820_xxaa.hex
	nrfjprog -f nrf52 --program $(OUTPUT_DIRECTORY)/nrf52820_xxaa.hex --sectorerase
	nrfjprog -f nrf52 --reset

# Flash softdevice
flash_softdevice:
	@echo Flashing: s112_nrf52_7.2.0_softdevice.hex
	nrfjprog -f nrf52 --program $(SDK_ROOT)/components/softdevice/s112/hex/s112_nrf52_7.2.0_softdevice.hex --sectorerase
	nrfjprog -f nrf52 --reset

erase:
	nrfjprog -f nrf52 --eraseall

SDK_CONFIG_FILE := ../config/sdk_config.h
CMSIS_CONFIG_TOOL := $(SDK_ROOT)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar
sdk_config:
	java -jar $(CMSIS_CONFIG_TOOL) $(SDK_CONFIG_FILE)

Parents
  • Hi Noaman, 
    My suggestion is to try flashing with the bootloader debug build so that you can step in the code and see what could be wrong. 

    Have you disabled the option to enter DFU via a button press (NRF_BL_DFU_ENTER_METHOD_BUTTON) ? If not there could be a chance that the button (P0.16- Button4 on the DK) is held active when the device booting => always enter DFU mode. 


    One another thing you should try is to test on a DK to see if your application start. 

Reply
  • Hi Noaman, 
    My suggestion is to try flashing with the bootloader debug build so that you can step in the code and see what could be wrong. 

    Have you disabled the option to enter DFU via a button press (NRF_BL_DFU_ENTER_METHOD_BUTTON) ? If not there could be a chance that the button (P0.16- Button4 on the DK) is held active when the device booting => always enter DFU mode. 


    One another thing you should try is to test on a DK to see if your application start. 

Children
No Data
Related