From 2ddba938424c6a276a82ae3fbf31b069c0205b64 Mon Sep 17 00:00:00 2001 From: chain40 Date: Mon, 25 Sep 2023 23:07:56 +0800 Subject: [PATCH] prj init --- .gitignore | 52 + app_config.h | 120 + bmd380_bootloader-Debug.bat | 199 + bmd380_bootloader-Debug.vgdbsettings | 156 + ...bootloader-Debug.vgdbsettings.chain40.user | 36 + bmd380_bootloader-Release.bat | 197 + bmd380_bootloader-Release.vgdbsettings | 129 + bmd380_bootloader.sln | 25 + bmd380_bootloader.vcxproj | 402 ++ bmd380_bootloader.vcxproj.filters | 1284 ++++ bmd380_bootloader.vcxproj.user | 4 + custom_board.h | 76 + dfu_public_key.c | 11 + main.c | 231 + nrf5x.props | 42 + nrf5x.xml | 62 + nrf_crypto_allocator.h | 58 + private.pem | 5 + sdk_config.h | 5479 +++++++++++++++++ secure_bootloader_gcc_nrf52.ld | 167 + 20 files changed, 8735 insertions(+) create mode 100644 .gitignore create mode 100644 app_config.h create mode 100644 bmd380_bootloader-Debug.bat create mode 100644 bmd380_bootloader-Debug.vgdbsettings create mode 100644 bmd380_bootloader-Debug.vgdbsettings.chain40.user create mode 100644 bmd380_bootloader-Release.bat create mode 100644 bmd380_bootloader-Release.vgdbsettings create mode 100644 bmd380_bootloader.sln create mode 100644 bmd380_bootloader.vcxproj create mode 100644 bmd380_bootloader.vcxproj.filters create mode 100644 bmd380_bootloader.vcxproj.user create mode 100644 custom_board.h create mode 100644 dfu_public_key.c create mode 100644 main.c create mode 100644 nrf5x.props create mode 100644 nrf5x.xml create mode 100644 nrf_crypto_allocator.h create mode 100644 private.pem create mode 100644 sdk_config.h create mode 100644 secure_bootloader_gcc_nrf52.ld diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c08f57b --- /dev/null +++ b/.gitignore @@ -0,0 +1,52 @@ +# These are some examples of commonly ignored file patterns. +# You should customize this list as applicable to your project. +# Learn more about .gitignore: +# https://www.atlassian.com/git/tutorials/saving-changes/gitignore + +# Node artifact files +node_modules/ +dist/ + +# Compiled Java class files +*.class + +# Compiled Python bytecode +*.py[cod] + +# Log files +*.log + +# Package files +*.jar + +# Maven +target/ + +# JetBrains IDE +.idea/ + +# Unit test reports +TEST*.xml + +# Generated by MacOS +.DS_Store + +# Generated by Windows +Thumbs.db + +# Applications +*.app +*.exe +*.war + +# Large media files +*.mp4 +*.tiff +*.avi +*.flv +*.mov +*.wmv + +/VisualGDB/ +/.visualgdb/ +/.vs/ diff --git a/app_config.h b/app_config.h new file mode 100644 index 0000000..219a638 --- /dev/null +++ b/app_config.h @@ -0,0 +1,120 @@ +#pragma once +#ifndef __APP_CONFIG_H__ +#define __APP_CONFIG_H__ + +#define COUNTOF(x) (sizeof(x)/sizeof(x[0])) + +// LOG +#define NRF_LOG_DEFAULT_LEVEL 4 +#define NRF_LOG_BACKEND_RTT_ENABLED 1 +#define NRF_LOG_BACKEND_UART_ENABLED 0 +#define NRF_LOG_DEFERRED 0 +#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 0 + +// SEGGER-RTT +#define SEGGER_RTT_SECTION ".segger_rtt" +#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 1 +#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 1 +#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 4000 +#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16 + +#define NRF_SDH_CLOCK_LF_SRC 0 +#define NRF_SDH_CLOCK_LF_RC_CTIV 12 +#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2 +#define NRF_SDH_CLOCK_LF_ACCURACY 1 + +// DFU +#define NRF_BL_DFU_ENTER_METHOD_BUTTON 0 +#define NRF_BL_DFU_ENTER_METHOD_BUTTONLESS 1 +#define NRF_BL_DFU_ALLOW_UPDATE_FROM_APP 1 +#define NRF_DFU_SETTINGS_COMPATIBILITY_MODE 0 +#define NRF_DFU_APP_DOWNGRADE_PREVENTION 0 +#define NRF_DFU_APP_DATA_AREA_SIZE (CODE_PAGE_SIZE*4) + +// DFU over BLE +#define NRF_DFU_TRANSPORT_BLE 1 + +// DFU over USBD +#define SLIP_ENABLED 1 +#define NRF_DFU_SERIAL_USB_RX_BUFFERS 3 + +// USBD +#define NRFX_USBD_ENABLED 1 +#define NRFX_USBD_CONFIG_IRQ_PRIORITY 6 +#define NRFX_USBD_CONFIG_DMASCHEDULER_MODE 0 +#define NRFX_USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#define NRFX_USBD_CONFIG_ISO_IN_ZLP 0 +#define NRFX_USBD_USE_WORKAROUND_FOR_ANOMALY_211 0 + +#define USBD_ENABLED 1 +#define USBD_CONFIG_IRQ_PRIORITY 6 +#define USBD_CONFIG_DMASCHEDULER_MODE 0 +#define USBD_CONFIG_DMASCHEDULER_ISO_BOOST 1 +#define USBD_CONFIG_ISO_IN_ZLP 0 + +// USBD CDC +#define APP_USBD_CDC_ACM_ENABLED 1 +#define APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE 1 +#define APP_USBD_ENABLED 1 +#define APP_USBD_VID 0x1915 +#define APP_USBD_PID 0x521F +#define APP_USBD_DEVICE_VER_MAJOR 1 +#define APP_USBD_DEVICE_VER_MINOR 0 +#define APP_USBD_DEVICE_VER_SUB 0 +#define APP_USBD_CONFIG_SELF_POWERED 1 +#define APP_USBD_CONFIG_MAX_POWER 100 +#define APP_USBD_CONFIG_POWER_EVENTS_PROCESS 1 +#define APP_USBD_CONFIG_EVENT_QUEUE_ENABLE 0 +#define APP_USBD_CONFIG_EVENT_QUEUE_SIZE 32 +#define APP_USBD_CONFIG_SOF_HANDLING_MODE 1 +#define APP_USBD_CONFIG_SOF_TIMESTAMP_PROVIDE 0 +#define APP_USBD_CONFIG_DESC_STRING_SIZE 31 +#define APP_USBD_CONFIG_DESC_STRING_UTF_ENABLED 0 +#define APP_USBD_STRINGS_LANGIDS APP_USBD_LANG_AND_SUBLANG(APP_USBD_LANG_ENGLISH, APP_USBD_SUBLANG_ENGLISH_US) +#define APP_USBD_STRING_ID_MANUFACTURER 1 +#define APP_USBD_STRINGS_MANUFACTURER_EXTERN 0 +#define APP_USBD_STRINGS_MANUFACTURER APP_USBD_STRING_DESC("Nordic Semiconductor") +#define APP_USBD_STRING_ID_PRODUCT 2 +#define APP_USBD_STRINGS_PRODUCT_EXTERN 0 +#define APP_USBD_STRINGS_PRODUCT APP_USBD_STRING_DESC("Secure DFU Bootloader") +#define APP_USBD_STRING_ID_SERIAL 3 +#define APP_USBD_STRING_SERIAL_EXTERN 1 +#define APP_USBD_STRING_SERIAL g_extern_serial_number +#define APP_USBD_STRING_ID_CONFIGURATION 4 +#define APP_USBD_STRING_CONFIGURATION_EXTERN 0 +#define APP_USBD_STRINGS_CONFIGURATION APP_USBD_STRING_DESC("Default configuration") +#define APP_USBD_STRINGS_USER X(APP_USER_1, , APP_USBD_STRING_DESC("User 1")) + +// Power & Clock +#define NRFX_POWER_ENABLED 1 +#define NRFX_POWER_CONFIG_IRQ_PRIORITY 6 +#define NRFX_POWER_CONFIG_DEFAULT_DCDCEN 0 +#define NRFX_POWER_CONFIG_DEFAULT_DCDCENHV 0 +#define POWER_ENABLED 1 +#define POWER_CONFIG_IRQ_PRIORITY 6 +#define POWER_CONFIG_DEFAULT_DCDCEN 0 +#define POWER_CONFIG_DEFAULT_DCDCENHV 0 +#define NRFX_CLOCK_CONFIG_LF_SRC 0 +#define NRFX_CLOCK_CONFIG_IRQ_PRIORITY 6 +#define NRF_CLOCK_ENABLED 1 +#define CLOCK_CONFIG_IRQ_PRIORITY 6 + +#define LED_SOFTBLINK_ENABLED 1 +#define NRF_SORTLIST_ENABLED 1 +#define LOW_POWER_PWM_ENABLED 1 + +#define APP_TIMER_V2_RTC1_ENABLED 1 +#define APP_TIMER_WITH_PROFILER 0 +#define APP_TIMER_CONFIG_USE_SCHEDULER 0 +#define APP_TIMER_CONFIG_IRQ_PRIORITY 6 +#define APP_TIMER_CONFIG_RTC_FREQUENCY 0 +#define APP_TIMER_CONFIG_OP_QUEUE_SIZE 10 +#define APP_TIMER_SAFE_WINDOW_MS (30 * 1000) +#define APP_TIMER_KEEPS_RTC_ACTIVE 1 + +#define DFU_LED_CONFIG_TRANSPORT_ACTIVE_BREATH_MS 300 +#define DFU_LED_CONFIG_TRANSPORT_INACTIVE_BREATH_MS 600 +#define DFU_LED_CONFIG_PROGRESS_BLINK_MS 100 + +#endif // !__APP_CONFIG_H__ + diff --git a/bmd380_bootloader-Debug.bat b/bmd380_bootloader-Debug.bat new file mode 100644 index 0000000..7002a9e --- /dev/null +++ b/bmd380_bootloader-Debug.bat @@ -0,0 +1,199 @@ +@echo off +REM Run this file to build the project outside of the IDE. +REM WARNING: if using a different machine, copy the .rsp files together with this script. +echo led_softblink.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/led_softblink/led_softblink.gcc.rsp" || exit 1 +echo low_power_pwm.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/low_power_pwm/low_power_pwm.gcc.rsp" || exit 1 +echo slip.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/slip/slip.gcc.rsp" || exit 1 +echo nrf_sortlist.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/sortlist/nrf_sortlist.gcc.rsp" || exit 1 +echo app_timer2.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/timer/app_timer2.gcc.rsp" || exit 1 +echo drv_rtc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/timer/drv_rtc.gcc.rsp" || exit 1 +echo nrf_drv_clock.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/integration/nrfx/legacy/nrf_drv_clock.gcc.rsp" || exit 1 +echo nrf_drv_power.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/integration/nrfx/legacy/nrf_drv_power.gcc.rsp" || exit 1 +echo nrf_dfu_serial.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/serial_dfu/nrf_dfu_serial.gcc.rsp" || exit 1 +echo nrf_dfu_serial_usb.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/serial_dfu/nrf_dfu_serial_usb.gcc.rsp" || exit 1 +echo app_usbd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/usbd/app_usbd.gcc.rsp" || exit 1 +echo app_usbd_core.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/usbd/app_usbd_core.gcc.rsp" || exit 1 +echo app_usbd_serial_num.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/usbd/app_usbd_serial_num.gcc.rsp" || exit 1 +echo app_usbd_string_desc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/usbd/app_usbd_string_desc.gcc.rsp" || exit 1 +echo app_usbd_cdc_acm.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.gcc.rsp" || exit 1 +echo nrfx_clock.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/drivers/src/nrfx_clock.gcc.rsp" || exit 1 +echo nrfx_power.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/drivers/src/nrfx_power.gcc.rsp" || exit 1 +echo nrfx_usbd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/drivers/src/nrfx_usbd.gcc.rsp" || exit 1 +echo dfu_public_key.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/dfu_public_key.gcc.rsp" || exit 1 +echo main.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/main.gcc.rsp" || exit 1 +echo nrf_log_backend_rtt.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/log/src/nrf_log_backend_rtt.gcc.rsp" || exit 1 +echo nrf_log_backend_serial.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/log/src/nrf_log_backend_serial.gcc.rsp" || exit 1 +echo nrf_log_default_backends.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/log/src/nrf_log_default_backends.gcc.rsp" || exit 1 +echo nrf_log_frontend.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/log/src/nrf_log_frontend.gcc.rsp" || exit 1 +echo nrf_log_str_formatter.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/log/src/nrf_log_str_formatter.gcc.rsp" || exit 1 +echo app_error_weak.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/util/app_error_weak.gcc.rsp" || exit 1 +echo app_scheduler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/scheduler/app_scheduler.gcc.rsp" || exit 1 +echo app_util_platform.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/util/app_util_platform.gcc.rsp" || exit 1 +echo crc32.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crc32/crc32.gcc.rsp" || exit 1 +echo mem_manager.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/mem_manager/mem_manager.gcc.rsp" || exit 1 +echo nrf_assert.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/util/nrf_assert.gcc.rsp" || exit 1 +echo nrf_atfifo.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/atomic_fifo/nrf_atfifo.gcc.rsp" || exit 1 +echo nrf_atomic.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/atomic/nrf_atomic.gcc.rsp" || exit 1 +echo nrf_balloc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/balloc/nrf_balloc.gcc.rsp" || exit 1 +echo nrf_fprintf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/external/fprintf/nrf_fprintf.gcc.rsp" || exit 1 +echo nrf_fprintf_format.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/external/fprintf/nrf_fprintf_format.gcc.rsp" || exit 1 +echo nrf_fstorage.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/fstorage/nrf_fstorage.gcc.rsp" || exit 1 +echo nrf_fstorage_nvmc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/fstorage/nrf_fstorage_nvmc.gcc.rsp" || exit 1 +echo nrf_fstorage_sd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/fstorage/nrf_fstorage_sd.gcc.rsp" || exit 1 +echo nrf_memobj.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/memobj/nrf_memobj.gcc.rsp" || exit 1 +echo nrf_queue.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/queue/nrf_queue.gcc.rsp" || exit 1 +echo nrf_ringbuf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/ringbuf/nrf_ringbuf.gcc.rsp" || exit 1 +echo nrf_section_iter.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/experimental_section_vars/nrf_section_iter.gcc.rsp" || exit 1 +echo nrf_strerror.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/strerror/nrf_strerror.gcc.rsp" || exit 1 +echo cc310_bl_backend_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_ecc.gcc.rsp" || exit 1 +echo cc310_bl_backend_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_ecdsa.gcc.rsp" || exit 1 +echo cc310_bl_backend_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_hash.gcc.rsp" || exit 1 +echo cc310_bl_backend_init.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_init.gcc.rsp" || exit 1 +echo cc310_bl_backend_shared.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_shared.gcc.rsp" || exit 1 +echo boards.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/boards/boards.gcc.rsp" || exit 1 +echo nrf_sdh.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/softdevice/common/nrf_sdh.gcc.rsp" || exit 1 +echo nrf_sdh_ble.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/softdevice/common/nrf_sdh_ble.gcc.rsp" || exit 1 +echo nrf_sdh_soc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/softdevice/common/nrf_sdh_soc.gcc.rsp" || exit 1 +echo nrf_nvmc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/hal/nrf_nvmc.gcc.rsp" || exit 1 +echo nrfx_atomic.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/soc/nrfx_atomic.gcc.rsp" || exit 1 +echo nrf_crypto_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/nrf_crypto_ecc.gcc.rsp" || exit 1 +echo nrf_crypto_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/nrf_crypto_ecdsa.gcc.rsp" || exit 1 +echo nrf_crypto_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/nrf_crypto_hash.gcc.rsp" || exit 1 +echo nrf_crypto_init.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/nrf_crypto_init.gcc.rsp" || exit 1 +echo nrf_crypto_shared.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/nrf_crypto_shared.gcc.rsp" || exit 1 +echo nrf_dfu_svci.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_svci.gcc.rsp" || exit 1 +echo nrf_dfu_svci_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_svci_handler.gcc.rsp" || exit 1 +echo nrf_svc_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/svc/nrf_svc_handler.gcc.rsp" || exit 1 +echo SEGGER_RTT.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/external/segger_rtt/SEGGER_RTT.gcc.rsp" || exit 1 +echo nrf_bootloader.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader.gcc.rsp" || exit 1 +echo nrf_bootloader_app_start.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_app_start.gcc.rsp" || exit 1 +echo nrf_bootloader_app_start_final.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_app_start_final.gcc.rsp" || exit 1 +echo nrf_bootloader_dfu_timers.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_dfu_timers.gcc.rsp" || exit 1 +echo nrf_bootloader_fw_activation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_fw_activation.gcc.rsp" || exit 1 +echo nrf_bootloader_info.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_info.gcc.rsp" || exit 1 +echo nrf_bootloader_wdt.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/nrf_bootloader_wdt.gcc.rsp" || exit 1 +echo pb_common.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/external/nano-pb/pb_common.gcc.rsp" || exit 1 +echo pb_decode.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/external/nano-pb/pb_decode.gcc.rsp" || exit 1 +echo dfu-cc.pb.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/dfu-cc.pb.gcc.rsp" || exit 1 +echo nrf_dfu.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu.gcc.rsp" || exit 1 +echo nrf_dfu_ble.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/ble_dfu/nrf_dfu_ble.gcc.rsp" || exit 1 +echo nrf_dfu_flash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_flash.gcc.rsp" || exit 1 +echo nrf_dfu_handling_error.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_handling_error.gcc.rsp" || exit 1 +echo nrf_dfu_mbr.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_mbr.gcc.rsp" || exit 1 +echo nrf_dfu_req_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_req_handler.gcc.rsp" || exit 1 +echo nrf_dfu_settings.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_settings.gcc.rsp" || exit 1 +echo nrf_dfu_settings_svci.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_settings_svci.gcc.rsp" || exit 1 +echo nrf_dfu_transport.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_transport.gcc.rsp" || exit 1 +echo nrf_dfu_utils.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_utils.gcc.rsp" || exit 1 +echo nrf_dfu_validation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_validation.gcc.rsp" || exit 1 +echo nrf_dfu_ver_validation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/bootloader/dfu/nrf_dfu_ver_validation.gcc.rsp" || exit 1 +echo ble_srv_common.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/ble/common/ble_srv_common.gcc.rsp" || exit 1 +echo oberon_backend_chacha_poly_aead.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_chacha_poly_aead.gcc.rsp" || exit 1 +echo oberon_backend_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_ecc.gcc.rsp" || exit 1 +echo oberon_backend_ecdh.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_ecdh.gcc.rsp" || exit 1 +echo oberon_backend_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_ecdsa.gcc.rsp" || exit 1 +echo oberon_backend_eddsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_eddsa.gcc.rsp" || exit 1 +echo oberon_backend_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_hash.gcc.rsp" || exit 1 +echo oberon_backend_hmac.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/components/libraries/crypto/backend/oberon/oberon_backend_hmac.gcc.rsp" || exit 1 +echo system_nrf52840.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/mdk/system_nrf52840.gcc.rsp" || exit 1 +echo gcc_startup_nrf52840.S +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/sysgcc/arm-eabi/bin/arm-none-eabi-g++.exe" @"VisualGDB/Debug/_1_/bmd380_sdk/modules/nrfx/mdk/gcc_startup_nrf52840.gcc.rsp" || exit 1 +echo Linking VisualGDB/Debug/bmd380_bootloader... +c:\sysgcc\arm-eabi\bin\arm-none-eabi-g++.exe @VisualGDB/Debug/bmd380_bootloader.link.rsp || exit 1 +c:\sysgcc\arm-eabi\bin\arm-none-eabi-objcopy.exe @VisualGDB/Debug/bmd380_bootloader.mkbin.rsp || exit 1 +c:\sysgcc\arm-eabi\bin\arm-none-eabi-objcopy.exe @VisualGDB/Debug/bmd380_bootloader.mkihex.rsp || exit 1 diff --git a/bmd380_bootloader-Debug.vgdbsettings b/bmd380_bootloader-Debug.vgdbsettings new file mode 100644 index 0000000..944799b --- /dev/null +++ b/bmd380_bootloader-Debug.vgdbsettings @@ -0,0 +1,156 @@ + + + Debug + + + + MinGWUnixSlash + $(ToolchainDir) + + true + $(ProjectDir) + false + false + nrf5x.xml + LinkerScript + + X:\Github\ble_intelligent_bracelet\ble_intelligent_bracelet\bootloader + + false + + + + + + 0 + + + neulive_boot.vcxproj + + + + + 1 + true + false + + + + + + + + + + + + + Default + + + + true + + + + + Unknown + + true + true + true + + + + false + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + main + true + false + false + true + 0 + false + 0 + true + false + + + jlink-jtag + + -select USB -device $$SYS:MCU_ID$$ -speed auto -if SWD + Enabled + + target remote :$$SYS:GDB_PORT$$ + mon reset + load + mon reset + + false + false + 0 + + + true + Auto + 0 + false + false + true + false + false + + + false + true + false + 0 + 0 + Auto + + + false + false + true + + + true + 0 + 0 + + + _estack + 0 + false + + true + + \ No newline at end of file diff --git a/bmd380_bootloader-Debug.vgdbsettings.chain40.user b/bmd380_bootloader-Debug.vgdbsettings.chain40.user new file mode 100644 index 0000000..f32862c --- /dev/null +++ b/bmd380_bootloader-Debug.vgdbsettings.chain40.user @@ -0,0 +1,36 @@ + + + + + + false + false + false + + + + false + + + + + com.sysprogs.AllGlobals + + + + com.sysprogs.SpecificVariables + + + + com.sysprogs.Custom + + + + + SpecificVariables + false + + + + + \ No newline at end of file diff --git a/bmd380_bootloader-Release.bat b/bmd380_bootloader-Release.bat new file mode 100644 index 0000000..edf6437 --- /dev/null +++ b/bmd380_bootloader-Release.bat @@ -0,0 +1,197 @@ +@echo off +REM Run this file to build the project outside of the IDE. +REM WARNING: if using a different machine, copy the .rsp files together with this script. +echo dfu_public_key.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/_1_/tools/dfu_public_key.gcc.rsp" || exit 1 +echo nrf_dfu_serial.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/serial_dfu/nrf_dfu_serial.gcc.rsp" || exit 1 +echo nrf_dfu_serial_usb.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/serial_dfu/nrf_dfu_serial_usb.gcc.rsp" || exit 1 +echo slip.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/slip/slip.gcc.rsp" || exit 1 +echo app_usbd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/usbd/app_usbd.gcc.rsp" || exit 1 +echo app_usbd_core.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/usbd/app_usbd_core.gcc.rsp" || exit 1 +echo app_usbd_serial_num.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/usbd/app_usbd_serial_num.gcc.rsp" || exit 1 +echo app_usbd_string_desc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/usbd/app_usbd_string_desc.gcc.rsp" || exit 1 +echo app_usbd_cdc_acm.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.gcc.rsp" || exit 1 +echo utf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/utf_converter/utf.gcc.rsp" || exit 1 +echo nrf_drv_clock.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/integration/nrfx/legacy/nrf_drv_clock.gcc.rsp" || exit 1 +echo nrfx_clock.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/drivers/src/nrfx_clock.gcc.rsp" || exit 1 +echo nrfx_power.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/drivers/src/nrfx_power.gcc.rsp" || exit 1 +echo nrfx_usbd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/drivers/src/nrfx_usbd.gcc.rsp" || exit 1 +echo main.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/main.gcc.rsp" || exit 1 +echo nrf_log_backend_rtt.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/log/src/nrf_log_backend_rtt.gcc.rsp" || exit 1 +echo nrf_log_backend_serial.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/log/src/nrf_log_backend_serial.gcc.rsp" || exit 1 +echo nrf_log_default_backends.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/log/src/nrf_log_default_backends.gcc.rsp" || exit 1 +echo nrf_log_frontend.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/log/src/nrf_log_frontend.gcc.rsp" || exit 1 +echo nrf_log_str_formatter.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/log/src/nrf_log_str_formatter.gcc.rsp" || exit 1 +echo app_error_weak.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/util/app_error_weak.gcc.rsp" || exit 1 +echo app_scheduler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/scheduler/app_scheduler.gcc.rsp" || exit 1 +echo app_util_platform.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/util/app_util_platform.gcc.rsp" || exit 1 +echo crc32.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crc32/crc32.gcc.rsp" || exit 1 +echo mem_manager.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/mem_manager/mem_manager.gcc.rsp" || exit 1 +echo nrf_assert.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/util/nrf_assert.gcc.rsp" || exit 1 +echo nrf_atfifo.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/atomic_fifo/nrf_atfifo.gcc.rsp" || exit 1 +echo nrf_atomic.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/atomic/nrf_atomic.gcc.rsp" || exit 1 +echo nrf_balloc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/balloc/nrf_balloc.gcc.rsp" || exit 1 +echo nrf_fprintf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/fprintf/nrf_fprintf.gcc.rsp" || exit 1 +echo nrf_fprintf_format.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/fprintf/nrf_fprintf_format.gcc.rsp" || exit 1 +echo nrf_fstorage.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/fstorage/nrf_fstorage.gcc.rsp" || exit 1 +echo nrf_fstorage_nvmc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/fstorage/nrf_fstorage_nvmc.gcc.rsp" || exit 1 +echo nrf_fstorage_sd.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/fstorage/nrf_fstorage_sd.gcc.rsp" || exit 1 +echo nrf_memobj.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/memobj/nrf_memobj.gcc.rsp" || exit 1 +echo nrf_queue.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/queue/nrf_queue.gcc.rsp" || exit 1 +echo nrf_ringbuf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/ringbuf/nrf_ringbuf.gcc.rsp" || exit 1 +echo nrf_section_iter.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/experimental_section_vars/nrf_section_iter.gcc.rsp" || exit 1 +echo nrf_strerror.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/strerror/nrf_strerror.gcc.rsp" || exit 1 +echo cc310_bl_backend_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_ecc.gcc.rsp" || exit 1 +echo cc310_bl_backend_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_ecdsa.gcc.rsp" || exit 1 +echo cc310_bl_backend_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_hash.gcc.rsp" || exit 1 +echo cc310_bl_backend_init.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_init.gcc.rsp" || exit 1 +echo cc310_bl_backend_shared.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/cc310_bl/cc310_bl_backend_shared.gcc.rsp" || exit 1 +echo boards.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/boards/boards.gcc.rsp" || exit 1 +echo nrf_sdh.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/softdevice/common/nrf_sdh.gcc.rsp" || exit 1 +echo nrf_sdh_ble.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/softdevice/common/nrf_sdh_ble.gcc.rsp" || exit 1 +echo nrf_sdh_soc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/softdevice/common/nrf_sdh_soc.gcc.rsp" || exit 1 +echo nrf_nvmc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/hal/nrf_nvmc.gcc.rsp" || exit 1 +echo nrfx_atomic.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/soc/nrfx_atomic.gcc.rsp" || exit 1 +echo nrf_crypto_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/nrf_crypto_ecc.gcc.rsp" || exit 1 +echo nrf_crypto_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/nrf_crypto_ecdsa.gcc.rsp" || exit 1 +echo nrf_crypto_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/nrf_crypto_hash.gcc.rsp" || exit 1 +echo nrf_crypto_init.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/nrf_crypto_init.gcc.rsp" || exit 1 +echo nrf_crypto_shared.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/nrf_crypto_shared.gcc.rsp" || exit 1 +echo nrf_dfu_svci.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_svci.gcc.rsp" || exit 1 +echo nrf_dfu_svci_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_svci_handler.gcc.rsp" || exit 1 +echo nrf_svc_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/svc/nrf_svc_handler.gcc.rsp" || exit 1 +echo SEGGER_RTT.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/segger_rtt/SEGGER_RTT.gcc.rsp" || exit 1 +echo SEGGER_RTT_Syscalls_GCC.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/segger_rtt/SEGGER_RTT_Syscalls_GCC.gcc.rsp" || exit 1 +echo SEGGER_RTT_printf.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/segger_rtt/SEGGER_RTT_printf.gcc.rsp" || exit 1 +echo nrf_bootloader.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader.gcc.rsp" || exit 1 +echo nrf_bootloader_app_start.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_app_start.gcc.rsp" || exit 1 +echo nrf_bootloader_app_start_final.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_app_start_final.gcc.rsp" || exit 1 +echo nrf_bootloader_dfu_timers.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_dfu_timers.gcc.rsp" || exit 1 +echo nrf_bootloader_fw_activation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_fw_activation.gcc.rsp" || exit 1 +echo nrf_bootloader_info.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_info.gcc.rsp" || exit 1 +echo nrf_bootloader_wdt.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/nrf_bootloader_wdt.gcc.rsp" || exit 1 +echo pb_common.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/nano-pb/pb_common.gcc.rsp" || exit 1 +echo pb_decode.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/external/nano-pb/pb_decode.gcc.rsp" || exit 1 +echo dfu-cc.pb.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/dfu-cc.pb.gcc.rsp" || exit 1 +echo nrf_dfu.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu.gcc.rsp" || exit 1 +echo nrf_dfu_ble.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/ble_dfu/nrf_dfu_ble.gcc.rsp" || exit 1 +echo nrf_dfu_flash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_flash.gcc.rsp" || exit 1 +echo nrf_dfu_handling_error.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_handling_error.gcc.rsp" || exit 1 +echo nrf_dfu_mbr.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_mbr.gcc.rsp" || exit 1 +echo nrf_dfu_req_handler.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_req_handler.gcc.rsp" || exit 1 +echo nrf_dfu_settings.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_settings.gcc.rsp" || exit 1 +echo nrf_dfu_settings_svci.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_settings_svci.gcc.rsp" || exit 1 +echo nrf_dfu_transport.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_transport.gcc.rsp" || exit 1 +echo nrf_dfu_utils.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_utils.gcc.rsp" || exit 1 +echo nrf_dfu_validation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_validation.gcc.rsp" || exit 1 +echo nrf_dfu_ver_validation.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/bootloader/dfu/nrf_dfu_ver_validation.gcc.rsp" || exit 1 +echo ble_srv_common.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/ble/common/ble_srv_common.gcc.rsp" || exit 1 +echo oberon_backend_chacha_poly_aead.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_chacha_poly_aead.gcc.rsp" || exit 1 +echo oberon_backend_ecc.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_ecc.gcc.rsp" || exit 1 +echo oberon_backend_ecdh.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_ecdh.gcc.rsp" || exit 1 +echo oberon_backend_ecdsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_ecdsa.gcc.rsp" || exit 1 +echo oberon_backend_eddsa.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_eddsa.gcc.rsp" || exit 1 +echo oberon_backend_hash.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_hash.gcc.rsp" || exit 1 +echo oberon_backend_hmac.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/components/libraries/crypto/backend/oberon/oberon_backend_hmac.gcc.rsp" || exit 1 +echo system_nrf52840.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/mdk/system_nrf52840.gcc.rsp" || exit 1 +echo nrf_drv_power.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/integration/nrfx/legacy/nrf_drv_power.gcc.rsp" || exit 1 +echo nrf_drv_rng.c +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-gcc.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/integration/nrfx/legacy/nrf_drv_rng.gcc.rsp" || exit 1 +echo gcc_startup_nrf52840.S +C:\Users\chain40\AppData\Local\VisualGDB\CCache\ccache.exe "c:/SysGCC/arm-eabi/bin/arm-none-eabi-g++.exe" @"VisualGDB/Release/__BSP_ROOT__/nRF5x/modules/nrfx/mdk/gcc_startup_nrf52840.gcc.rsp" || exit 1 +echo Linking ../VisualGDB/Release/neulive_boot... +c:\SysGCC\arm-eabi\bin\arm-none-eabi-g++.exe @../VisualGDB/Release/neulive_boot.link.rsp || exit 1 +c:\SysGCC\arm-eabi\bin\arm-none-eabi-objcopy.exe @../VisualGDB/Release/neulive_boot.mkbin.rsp || exit 1 +c:\SysGCC\arm-eabi\bin\arm-none-eabi-objcopy.exe @../VisualGDB/Release/neulive_boot.mkihex.rsp || exit 1 diff --git a/bmd380_bootloader-Release.vgdbsettings b/bmd380_bootloader-Release.vgdbsettings new file mode 100644 index 0000000..cd6e214 --- /dev/null +++ b/bmd380_bootloader-Release.vgdbsettings @@ -0,0 +1,129 @@ + + + Release + + + + MinGWUnixSlash + $(ToolchainDir) + + true + $(ProjectDir) + false + false + nrf5x.xml + DeviceDefinition + + + + + + 0 + + + neulive_boot.vcxproj + + + + 1 + true + false + + + + + + + + + + + + + Default + + + + true + + + + + Unknown + + true + true + true + + + + false + + + + + + + + + false + false + false + false + false + false + false + false + false + + false + false + false + false + false + false + true + false + None + false + false + main + true + false + false + false + 0 + true + + + jlink-jtag + + -select USB -device $$SYS:MCU_ID$$ -speed auto -if SWD + Enabled + + target remote :$$SYS:GDB_PORT$$ + mon reset + load + mon reset + + false + false + 0 + + + true + Auto + 0 + false + false + true + false + false + + _estack + 0 + false + + true + + \ No newline at end of file diff --git a/bmd380_bootloader.sln b/bmd380_bootloader.sln new file mode 100644 index 0000000..209ab37 --- /dev/null +++ b/bmd380_bootloader.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34031.279 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bmd380_bootloader", "bmd380_bootloader.vcxproj", "{0F7FC068-F35C-4CCB-9333-FABECCA529B5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|VisualGDB = Debug|VisualGDB + Release|VisualGDB = Release|VisualGDB + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0F7FC068-F35C-4CCB-9333-FABECCA529B5}.Debug|VisualGDB.ActiveCfg = Debug|VisualGDB + {0F7FC068-F35C-4CCB-9333-FABECCA529B5}.Debug|VisualGDB.Build.0 = Debug|VisualGDB + {0F7FC068-F35C-4CCB-9333-FABECCA529B5}.Release|VisualGDB.ActiveCfg = Release|VisualGDB + {0F7FC068-F35C-4CCB-9333-FABECCA529B5}.Release|VisualGDB.Build.0 = Release|VisualGDB + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D74BA592-403C-4451-83FA-8930B8B09765} + EndGlobalSection +EndGlobal diff --git a/bmd380_bootloader.vcxproj b/bmd380_bootloader.vcxproj new file mode 100644 index 0000000..1a38939 --- /dev/null +++ b/bmd380_bootloader.vcxproj @@ -0,0 +1,402 @@ + + + + + Debug + VisualGDB + + + Release + VisualGDB + + + + 16.0 + {0F7FC068-F35C-4CCB-9333-FABECCA529B5} + com.sysprogs.arm.nordic.nrf5x + 17.0 + + + + + + + + + + + + + + + + Debug + com.visualgdb.arm-eabi + 12.3.1/13.2/r1 + true + true + $(ProjectDir)nrf5x.props + true + + + com.visualgdb.arm-eabi + 12.3.1/13.2/r1 + true + true + $(ProjectDir)nrf5x.props + true + + + + C99 + .;../bmd380_sdk/components/boards;../bmd380_sdk/components/softdevice/mbr/headers;../bmd380_sdk/components/softdevice/s113/headers;../bmd380_sdk/components/libraries/experimental_section_vars;../bmd380_sdk/components/libraries/log;../bmd380_sdk/components/libraries/log/src;../bmd380_sdk/components/libraries/strerror;../bmd380_sdk/components/libraries/usbd;../bmd380_sdk/components/libraries/usbd/class/cdc;../bmd380_sdk/components/libraries/util;../bmd380_sdk/integration/nrfx;../bmd380_sdk/integration/nrfx/legacy;../bmd380_sdk/external/fprintf;../bmd380_sdk/components/libraries/bootloader/dfu;../bmd380_sdk/components/libraries/memobj;../bmd380_sdk/components/libraries/slip;../bmd380_sdk/components/libraries/balloc;../bmd380_sdk/external/segger_rtt;../bmd380_sdk/components/libraries/delay;../bmd380_sdk/components/libraries/atomic;../bmd380_sdk/external/nrf_cc310_bl/include;../bmd380_sdk/components/libraries/ringbuf;../bmd380_sdk/components/libraries/bootloader;../bmd380_sdk/components/libraries/atomic_fifo;../bmd380_sdk/components/softdevice/common;../bmd380_sdk/components/libraries/crypto;../bmd380_sdk/components/libraries/crypto/backend/cc310;../bmd380_sdk/components/libraries/crypto/backend/cc310_bl;../bmd380_sdk/components/libraries/crypto/backend/mbedtls;../bmd380_sdk/components/libraries/crypto/backend/micro_ecc;../bmd380_sdk/components/libraries/crypto/backend/oberon;../bmd380_sdk/components/libraries/crypto/backend/optiga;../bmd380_sdk/external/utf_converter;../bmd380_sdk/components/libraries/mutex;../bmd380_sdk/components/libraries/crypto/backend/nrf_sw;../bmd380_sdk/external/nano-pb;../bmd380_sdk/components/libraries/bootloader/ble_dfu;../bmd380_sdk/components/libraries/svc;../bmd380_sdk/components/libraries/fstorage;../bmd380_sdk/components/libraries/crc32;../bmd380_sdk/components/ble/common;../bmd380_sdk/components/libraries/crypto/backend/cifra;../bmd380_sdk/components/libraries/crypto/backend/nrf_hw;../bmd380_sdk/components/libraries/scheduler;../bmd380_sdk/components/libraries/usbd/class/cdc/acm;../bmd380_sdk/components/toolchain/cmsis/include;../bmd380_sdk/modules/nrfx;../bmd380_sdk/modules/nrfx/hal;../bmd380_sdk/modules/nrfx/mdk;../bmd380_sdk/components/libraries/led_softblink;../bmd380_sdk/components/libraries/timer;../bmd380_sdk/modules/nrfx/drivers/include;../bmd380_sdk/components/libraries/sortlist;../bmd380_sdk/components/libraries/low_power_pwm;%(ClCompile.AdditionalIncludeDirectories) + DEBUG=1;BLE_STACK_SUPPORT_REQD;BOARD_CUSTOM;DEBUG_NRF;FLOAT_ABI_HARD;NRF52840_XXAA;NRF_DFU_SETTINGS_VERSION=2;NRF_DFU_SVCI_ENABLED;NRF_SD_BLE_API_VERSION=7;S113;SOFTDEVICE_PRESENT;SVC_INTERFACE_CALL_AS_NORMAL_FUNCTION;USE_APP_CONFIG;APP_TIMER_V2;%(ClCompile.PreprocessorDefinitions) + Os + + + + + secure_bootloader_gcc_nrf52.ld + ;%(Link.AdditionalLinkerInputs) + ;%(Link.LibrarySearchDirectories) + ;%(Link.AdditionalLibraryNames) + + true + + + + + C99 + .;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/micro_ecc;$(BSP_ROOT)/nRF5x/components/libraries/memobj;$(BSP_ROOT)/nRF5x/components/softdevice/s113/headers/nrf52;$(BSP_ROOT)/nRF5x/components/libraries/crc32;$(BSP_ROOT)/nRF5x/components/libraries/experimental_section_vars;$(BSP_ROOT)/nRF5x/components/libraries/mem_manager;$(BSP_ROOT)/nRF5x/components/libraries/fstorage;$(BSP_ROOT)/nRF5x/components/libraries/util;$(BSP_ROOT)/nRF5x/modules/nrfx;$(BSP_ROOT)/nRF5x/external/nrf_oberon/include;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/oberon;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/cifra;$(BSP_ROOT)/nRF5x/components/libraries/atomic;$(BSP_ROOT)/nRF5x/integration/nrfx;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/cc310_bl;$(BSP_ROOT)/nRF5x/external/nrf_cc310/include;$(BSP_ROOT)/nRF5x/components/libraries/log/src;$(BSP_ROOT)/nRF5x/components/libraries/bootloader/dfu;$(BSP_ROOT)/nRF5x/components/ble/common;$(BSP_ROOT)/nRF5x/external/segger_rtt;$(BSP_ROOT)/nRF5x/components/libraries/delay;$(BSP_ROOT)/nRF5x/components/libraries/svc;$(BSP_ROOT)/nRF5x/components/libraries/stack_info;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/nrf_hw;$(BSP_ROOT)/nRF5x/components/libraries/log;$(BSP_ROOT)/nRF5x/external/nrf_oberon;$(BSP_ROOT)/nRF5x/components/libraries/strerror;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/mbedtls;$(BSP_ROOT)/nRF5x/components/boards;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/cc310;$(BSP_ROOT)/nRF5x/components/libraries/bootloader;$(BSP_ROOT)/nRF5x/components/softdevice/s113/headers;$(BSP_ROOT)/nRF5x/components/libraries/crypto;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/optiga;$(BSP_ROOT)/nRF5x/components/libraries/scheduler;$(BSP_ROOT)/nRF5x/external/nrf_cc310_bl/include;$(BSP_ROOT)/nRF5x/modules/nrfx/hal;$(BSP_ROOT)/nRF5x/external/fprintf;$(BSP_ROOT)/nRF5x/components/toolchain/cmsis/include;$(BSP_ROOT)/nRF5x/components/libraries/balloc;$(BSP_ROOT)/nRF5x/components/libraries/atomic_fifo;$(BSP_ROOT)/nRF5x/components/libraries/crypto/backend/nrf_sw;$(BSP_ROOT)/nRF5x/modules/nrfx/mdk;$(BSP_ROOT)/nRF5x/components/libraries/bootloader/ble_dfu;$(BSP_ROOT)/nRF5x/components/softdevice/common;$(BSP_ROOT)/nRF5x/external/nano-pb;$(BSP_ROOT)/nRF5x/components/libraries/queue;$(BSP_ROOT)/nRF5x/components/libraries/mutex;$(BSP_ROOT)/nRF5x/external/utf_converter;$(BSP_ROOT)/nRF5x/components/libraries/ringbuf;%(ClCompile.AdditionalIncludeDirectories) + NDEBUG=1;RELEASE=1;BLE_STACK_SUPPORT_REQD;BOARD_CUSTOM;CONFIG_GPIO_AS_PINRESET;DEBUG_NRF;FLOAT_ABI_HARD;NRF52840_XXAA;NRF_DFU_DEBUG_VERSION;NRF_DFU_SETTINGS_VERSION=2;NRF_DFU_SVCI_ENABLED;NRF_SD_BLE_API_VERSION=7;S113;SOFTDEVICE_PRESENT;SVC_INTERFACE_CALL_AS_NORMAL_FUNCTION;USE_APP_CONFIG;%(ClCompile.PreprocessorDefinitions) + Os + + + secure_bootloader_gcc_nrf52.ld + ;%(Link.AdditionalLinkerInputs) + ;%(Link.LibrarySearchDirectories) + ;%(Link.AdditionalLibraryNames) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bmd380_bootloader.vcxproj.filters b/bmd380_bootloader.vcxproj.filters new file mode 100644 index 0000000..2e779be --- /dev/null +++ b/bmd380_bootloader.vcxproj.filters @@ -0,0 +1,1284 @@ + + + + + {c2248d7c-b3f2-45de-b2d8-44dbdd9ae814} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {7e16f4d4-17a8-47b4-8bec-620fb0c4228a} + h;hpp;hxx;hm;inl;inc;xsd + + + {8d759cb3-7eab-449c-9e4c-017750bc4723} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav + + + {7968a4ce-ac73-4989-a57f-36885171c75b} + + + {c0ab0df5-b030-450f-bb55-ab784b0cb1f2} + + + {bd8d6b6e-8f2e-4641-9831-f1bbcbab6c6e} + + + {c9e1c15a-8172-47d9-8503-619dc76354d6} + + + {a3a50a19-f922-4c44-85cd-9967943a4dd1} + + + {280f72eb-494e-4a1e-b3a1-77084a0e1349} + + + {d42c6614-3b67-49c8-8a33-5c66357a91c4} + + + {50aa00d1-7d70-42fa-8077-8f6181f7b9a8} + + + {fb3ba324-3a14-4f39-a949-8a8bb4ecab13} + + + {d93ad6dd-2c7f-4e10-989a-8a43b4a64709} + + + {2fbc5429-a6f3-495e-abee-90da63c3e15f} + + + {31b7197a-5b06-4684-93c6-7d61a0657e3f} + + + {7f52d9cf-2d91-4f03-ac24-d552f977ce3c} + + + {4b11ec0a-8c06-45ac-a2d8-fafa1f78609f} + + + {8cebce8d-f068-46e3-98de-4416a4f5129c} + + + {1adfcc6f-1e8a-4770-9a6b-b9876d6711d9} + + + {17881eec-b68c-4518-81ee-71e67039d0c7} + + + {3b63844d-f1f3-4d55-b2a1-8c1841d2c58a} + + + {4515a811-f197-4088-8361-28ad9a9ed118} + + + {b26f81cc-75a3-4f4a-b865-ce4488d2dc0c} + + + {bbb50521-e81e-466e-934c-ef08df18ee0b} + + + {f1733737-cf05-4aae-97a8-6defca0e83ae} + + + {5715ba70-7de7-4034-a0f4-7d181008fa9b} + + + {f6eb2a19-031e-4168-bfd7-de87661141f3} + + + {e4b92bb8-7702-4d7d-b9f6-1eddc856cd4d} + + + {33ebf716-82e7-4b75-a1f4-1af6749e119a} + + + {dc4f28e2-8024-43f4-b38a-f0bfb64c2508} + + + {e9a17eb0-b909-47b9-9252-97dd46c3282c} + + + {61bef12a-d10c-439e-9b72-bbcaad5afaa7} + + + {75b856ce-200d-4ca1-885b-e08c91b4cc4f} + + + {bf353bb7-5965-4dd3-bfa3-9e9996eff85d} + + + {05db1b0b-5eed-4b7c-b793-3355f0eb310b} + + + {a28a1356-c7af-4cb9-90a5-dfdd8fce3f17} + + + {891aab56-b3a9-443f-9552-847f884dbc1d} + + + {5a4c860f-5b59-4ac0-b8f0-333f7e5dae2c} + + + {48cc7e56-035a-4aa9-8275-136b1b8a622c} + + + {c9054aca-1624-432b-954b-35ed61033fbc} + + + {91d49659-53f8-4f2a-8ad8-d9058d3073da} + + + {ed5f86e5-7560-446b-8728-d7b33d428ba0} + + + {5adf099a-226b-4872-80da-6d9ced54b191} + + + {839c2d5b-ed20-42aa-a974-1d82e19e5a98} + + + {a50a81f3-2007-45a1-a99d-f5caa6a97a72} + + + {26a83639-cb84-4682-9596-2cfa54cbeb9d} + + + {97f05eb1-9a30-4521-9e35-515592d442df} + + + {6195dfee-229f-4bdf-a5c2-b1ac9b1222cc} + + + {de17ea4f-cddc-401a-980f-3f72b920b45e} + + + {0aee4d80-dc51-4d7c-b94b-9d7fca7b187b} + + + {27f63f29-9d4d-4652-a6e0-6ec16768e5ab} + + + {9d4000a6-8599-4a11-b243-0360630a76fc} + + + {b61bc177-a678-40a9-a4c9-f762fc071010} + + + {7084630b-fc44-4ea1-b228-54e068afef7b} + + + {acfbb2f0-d173-4fe3-af30-3de97ae4a866} + + + {8004db17-4d2c-4c4c-9aba-9d53a1ef196e} + + + {d1bf44e1-f424-4e1f-8c2a-a79a296a021d} + + + {8c0f419e-d4c8-49d4-96d7-ae62ddb72dfa} + + + {c381fc37-bf1c-4354-a0b6-3401b976c048} + + + {d23f6f2b-71ac-4627-a74c-bf70370dbeb8} + + + {a40f5efe-0cb7-42eb-832c-4f0aca3bbb93} + + + {2001f0f4-60ec-4a1d-a2ed-3f0182a081bb} + + + {93fc355c-2082-437d-8726-c3877e353f06} + + + {52295d58-a12a-441e-b83d-b996dc082c0c} + + + {dfe9e560-5942-4887-ba12-b85ab03de16f} + + + {4e9400ee-10cf-4fc2-b3d7-38ec4f2b7df1} + + + {423fc775-c88c-4589-b005-79aa0aec1e26} + + + {f545d46e-b6d9-4154-a4b6-79e957c8fd35} + + + {fba1c856-f75f-4278-8cb1-aa92e3b66ef5} + + + {d8a64a57-6d07-41e2-8860-e677c1044279} + + + {ce508963-8373-4268-889f-54054bcdd600} + + + {e64bbc75-3fda-4daa-b8d5-89167e678769} + + + {04d56558-4cb0-49fe-aded-72ba0a7b810e} + + + {094523b5-3181-4ec3-964f-47706a8d3845} + + + {f48355fd-d5c0-473f-ac9c-7bb56e0e6202} + + + {b48060d8-777d-47e4-a436-cc950985b1f0} + + + {6ce3352a-16dc-4485-a0e0-25c0d419ee49} + + + {c012e05e-2892-40eb-ba45-f69e7db195e8} + + + {cd3bfed7-1645-46f3-b209-ac7a6dd80062} + + + {b039e3cb-8167-4a90-abd1-10683169fd7f} + + + {dc57cec3-c465-401d-9c70-7aed732ce46c} + + + {3d63e146-0873-439b-8f69-c2ef9290d745} + + + {b8dd4198-04d9-4bdd-bb70-1444560c68b2} + + + {78bff36c-dd53-49e6-bcc9-1bedc19fce88} + + + {1a6108e7-ffcb-430c-ab87-955a6dc6cc87} + + + {57dbffbd-6748-4f48-a320-f38796f3ac37} + + + {b6576931-b47f-4737-b875-39b67dac05ad} + + + {13dc4480-e4aa-4767-a97a-371ded9584c5} + + + {d9ac676f-85e6-4a73-99c8-a10a949f3abf} + + + {46348c6b-c72a-42c7-b86d-427e2452e15d} + + + {a1143942-482a-4bc9-b62e-a8cdca81599c} + + + {81687866-7de4-4d52-b9ef-f6936a11efb1} + + + {018fd885-e000-47de-8cbd-dac006000bc7} + + + {dbe35c67-536f-4a7f-a06d-ae2e1a630b60} + + + {efdb1029-6320-4e56-9d21-16a4f6ce770c} + + + {1f2cd980-2af0-4a95-a384-323648b3fcf1} + + + {08fba7f6-d234-4b86-bd00-f0238d4fcf2d} + + + {6bbf6d03-03ac-4200-8a0b-94e930b555e6} + + + {1ecacf21-36c3-48c0-b75c-b793e48fd8e0} + + + {0cb2e59b-aee8-4c83-9e68-997925abb810} + + + {bd39d768-7000-4f51-9c29-478e43a9cf53} + + + {f636ae28-4639-4211-9778-026098e547b7} + + + {98197956-1862-4114-9e7a-7001a9a54fb6} + + + {464efbd7-edf0-4610-94e8-af5dd6b4ce49} + + + {4c6a41f5-f686-4b81-9bcc-66c80a4e8190} + + + {108a8cb5-f9cf-43d6-8fc3-b7a7748ff6cb} + + + {cf93e005-7aea-49ac-91f4-e6d3dfd18c68} + + + {30657476-23bd-4ef9-aa29-a432166f940c} + + + {33aa1ecd-5e21-420a-9e04-6d081d5d7877} + + + {323e61da-1ac7-4cd6-9b77-f4d7c914c23a} + + + {ab8dad6e-8aae-4c42-ae2b-a57a79a4060d} + + + {1783b323-c75f-4e66-828f-5d4907517074} + + + + + Source files + + + Source files\Device-specific files + + + VisualGDB settings + + + VisualGDB settings + + + VisualGDB settings + + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Header files\Device-specific files + + + Source files\sdk\components\libraries\util + + + Source files\sdk\components\libraries\util + + + Source files\sdk\components\libraries\util + + + Source files\sdk\components\libraries\scheduler + + + Source files\sdk\components\libraries\timer + + + Source files\sdk\components\libraries\timer + + + Source files\sdk\components\libraries\usbd\class\cdc\acm + + + Source files\sdk\components\libraries\usbd + + + Source files\sdk\components\libraries\usbd + + + Source files\sdk\components\libraries\usbd + + + Source files\sdk\components\libraries\usbd + + + Source files\sdk\components\ble\common + + + Source files\sdk\components\boards + + + Source files\sdk\components\libraries\crypto\backend\cc310_bl + + + Source files\sdk\components\libraries\crypto\backend\cc310_bl + + + Source files\sdk\components\libraries\crypto\backend\cc310_bl + + + Source files\sdk\components\libraries\crypto\backend\cc310_bl + + + Source files\sdk\components\libraries\crypto\backend\cc310_bl + + + Source files\sdk\components\libraries\crc32 + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader\dfu + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader + + + Source files\sdk\components\libraries\bootloader\ble_dfu + + + Source files\sdk\components\libraries\crypto + + + Source files\sdk\components\libraries\crypto + + + Source files\sdk\components\libraries\crypto + + + Source files\sdk\components\libraries\crypto + + + Source files\sdk\components\libraries\crypto + + + Source files\sdk\components\libraries\log\src + + + Source files\sdk\components\libraries\log\src + + + Source files\sdk\components\libraries\log\src + + + Source files\sdk\components\libraries\log\src + + + Source files\sdk\components\libraries\log\src + + + Source files\sdk\components\libraries\atomic + + + Source files\sdk\components\libraries\atomic_fifo + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\components\libraries\crypto\backend\oberon + + + Source files\sdk\external\nano-pb + + + Source files\sdk\external\nano-pb + + + Source files\sdk\external\segger_rtt + + + Source files\sdk\modules\nrfx\soc + + + Source files\sdk\modules\nrfx\drivers\src + + + Source files\sdk\modules\nrfx\drivers\src + + + Source files\sdk\modules\nrfx\drivers\src + + + Source files\sdk\modules\nrfx\mdk + + + Source files\sdk\integration\nrfx\legacy + + + Source files\sdk\integration\nrfx\legacy + + + Source files\sdk\external\fprintf + + + Source files\sdk\external\fprintf + + + Source files\sdk\components\libraries\balloc + + + Source files\sdk\components\libraries\fstorage + + + Source files\sdk\components\libraries\fstorage + + + Source files\sdk\components\libraries\fstorage + + + Source files\sdk\components\libraries\led_softblink + + + Source files\sdk\components\libraries\low_power_pwm + + + Source files\sdk\components\libraries\mem_manager + + + Source files\sdk\components\libraries\memobj + + + Source files\sdk\modules\nrfx\hal + + + Source files\sdk\components\libraries\queue + + + Source files\sdk\components\libraries\ringbuf + + + Source files\sdk\components\softdevice\common + + + Source files\sdk\components\softdevice\common + + + Source files\sdk\components\softdevice\common + + + Source files\sdk\components\libraries\experimental_section_vars + + + Source files\sdk\components\libraries\sortlist + + + Source files\sdk\components\libraries\strerror + + + Source files\sdk\components\libraries\svc + + + Source files\sdk\components\libraries\slip + + + Source files + + + + + Resource files + + + + + Header files + + + Header files + + + Header files\sdk\components\libraries\util + + + Header files\sdk\components\libraries\util + + + Header files\sdk\components\libraries\util + + + Header files\sdk\components\libraries\scheduler + + + Header files\sdk\components\libraries\timer + + + Header files\sdk\components\libraries\timer + + + Header files\sdk\components\libraries\usbd\class\cdc\acm + + + Header files\sdk\components\libraries\usbd\class\cdc\acm + + + Header files\sdk\components\libraries\usbd\class\cdc + + + Header files\sdk\components\libraries\usbd\class\cdc + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\libraries\usbd + + + Header files\sdk\components\ble\common + + + Header files\sdk\components\boards + + + Header files\sdk\components\libraries\crypto\backend\cc310_bl + + + Header files\sdk\components\libraries\crypto\backend\cc310_bl + + + Header files\sdk\components\libraries\crypto\backend\cc310_bl + + + Header files\sdk\components\libraries\crypto\backend\cc310_bl + + + Header files\sdk\components\libraries\crypto\backend\cc310_bl + + + Header files\sdk\components\libraries\crc32 + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader\dfu + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader + + + Header files\sdk\components\libraries\bootloader\ble_dfu + + + Header files\sdk\components\libraries\bootloader\ble_dfu + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\crypto + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log + + + Header files\sdk\components\libraries\log\src + + + Header files\sdk\components\libraries\log\src + + + Header files\sdk\components\libraries\log\src + + + Header files\sdk\components\libraries\atomic + + + Header files\sdk\components\libraries\atomic + + + Header files\sdk\components\libraries\atomic + + + Header files\sdk\components\libraries\atomic_fifo + + + Header files\sdk\components\libraries\atomic_fifo + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\components\libraries\crypto\backend\oberon + + + Header files\sdk\external\nano-pb + + + Header files\sdk\external\nano-pb + + + Header files\sdk\external\nano-pb + + + Header files\sdk\external\nano-pb + + + Header files\sdk\external\segger_rtt + + + Header files\sdk\external\segger_rtt + + + Header files\sdk\modules\nrfx\soc + + + Header files\sdk\modules\nrfx\soc + + + Header files\sdk\modules\nrfx\soc + + + Header files\sdk\modules\nrfx\soc + + + Header files\sdk\modules\nrfx\soc + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\include + + + Header files\sdk\modules\nrfx\drivers\src + + + Header files\sdk\components\libraries\led_softblink + + + Header files\sdk\components\libraries\low_power_pwm + + + Header files\sdk\components\libraries\mem_manager + + + Header files\sdk\components\libraries\balloc + + + Header files\sdk\integration\nrfx\legacy + + + Header files\sdk\integration\nrfx\legacy + + + Header files\sdk\external\fprintf + + + Header files\sdk\external\fprintf + + + Header files\sdk\components\libraries\fstorage + + + Header files\sdk\components\libraries\fstorage + + + Header files\sdk\components\libraries\fstorage + + + Header files\sdk\components\libraries\memobj + + + Header files\sdk\modules\nrfx\hal + + + Header files\sdk\components\softdevice\common + + + Header files\sdk\components\softdevice\common + + + Header files\sdk\components\softdevice\common + + + Header files\sdk\components\libraries\experimental_section_vars + + + Header files\sdk\components\libraries\experimental_section_vars + + + Header files\sdk\components\libraries\sortlist + + + Header files\sdk\components\libraries\strerror + + + Header files\sdk\components\libraries\svc + + + Header files\sdk\components\libraries\svc + + + Header files\sdk\components\libraries\svc + + + Header files\sdk\components\libraries\svc + + + Header files\sdk\components\libraries\slip + + + + + + \ No newline at end of file diff --git a/bmd380_bootloader.vcxproj.user b/bmd380_bootloader.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/bmd380_bootloader.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/custom_board.h b/custom_board.h new file mode 100644 index 0000000..494e8fc --- /dev/null +++ b/custom_board.h @@ -0,0 +1,76 @@ +#pragma once +/** + * Copyright (c) 2014 - 2019, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +#ifndef __CUSTOM_BOARD_H__ +#define __CUSTOM_BOARD_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "nrf_gpio.h" + +#define LEDS_NUMBER 3 + +#define BLE_LED_R NRF_GPIO_PIN_MAP(1, 1) +#define BLE_LED_G NRF_GPIO_PIN_MAP(1, 3) +#define BLE_LED_B NRF_GPIO_PIN_MAP(1, 5) + +#define LED_1 BLE_LED_R +#define LED_2 BLE_LED_G +#define LED_3 BLE_LED_B + +#define LEDS_ACTIVE_STATE 0 + +#define LEDS_LIST { LED_1, LED_2, LED_3 } + +#define LEDS_INV_MASK LEDS_MASK + +#define BSP_LED_0 LED_1 +#define BSP_LED_1 LED_2 +#define BSP_LED_2 LED_3 + +#define BUTTONS_NUMBER 0 + +#ifdef __cplusplus +} +#endif + +#endif // __CUSTOM_BOARD_H__ diff --git a/dfu_public_key.c b/dfu_public_key.c new file mode 100644 index 0000000..df604d5 --- /dev/null +++ b/dfu_public_key.c @@ -0,0 +1,11 @@ +/* This file was automatically generated by nrfutil on 2023-09-25 (YY-MM-DD) at 23:00:35 */ + +#include "stdint.h" +#include "compiler_abstraction.h" + +/** @brief Public key used to verify DFU images */ +__ALIGN(4) const uint8_t pk[64] = +{ + 0xb3, 0xc2, 0xde, 0xcd, 0xbd, 0x64, 0xc0, 0x94, 0x7d, 0x38, 0x53, 0x12, 0xc4, 0x46, 0xf1, 0x11, 0xe2, 0xee, 0xe7, 0x4a, 0x98, 0xcb, 0x7e, 0x84, 0x63, 0xc2, 0x90, 0x63, 0x54, 0x11, 0x42, 0x61, + 0x00, 0x89, 0x13, 0x47, 0xf9, 0x08, 0x8e, 0xd1, 0x15, 0x11, 0x85, 0x5c, 0xf8, 0x7d, 0xec, 0x9a, 0x5e, 0x62, 0x63, 0xc0, 0xc1, 0x33, 0x88, 0x6c, 0xbc, 0xbf, 0xf6, 0x5d, 0xe2, 0xb7, 0xa5, 0xe4 +}; diff --git a/main.c b/main.c new file mode 100644 index 0000000..ed4782a --- /dev/null +++ b/main.c @@ -0,0 +1,231 @@ +/** + * Copyright (c) 2016 - 2020, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +/** @file + * + * @defgroup bootloader_secure_ble main.c + * @{ + * @ingroup dfu_bootloader_api + * @brief Bootloader project main file for secure DFU. + * + */ + +#include +#include "boards.h" +#include "nrf_mbr.h" +#include "nrf_bootloader.h" +#include "nrf_bootloader_app_start.h" +#include "nrf_bootloader_dfu_timers.h" +#include "nrf_dfu.h" +#include "nrf_log.h" +#include "nrf_log_ctrl.h" +#include "nrf_log_default_backends.h" +#include "app_error.h" +#include "app_error_weak.h" +#include "nrf_bootloader_info.h" +#include "nrf_dfu_utils.h" +#include "led_softblink.h" +#include "app_timer.h" +#include "nrf_delay.h" +#include "nrf_clock.h" + +/* Timer used to blink LED on DFU progress. */ +APP_TIMER_DEF(m_dfu_progress_led_timer); + +static void on_error(void) +{ + NRF_LOG_FINAL_FLUSH(); + +#if NRF_MODULE_ENABLED(NRF_LOG_BACKEND_RTT) + // To allow the buffer to be flushed by the host. + nrf_delay_ms(100); +#endif +#ifdef NRF_DFU_DEBUG_VERSION + NRF_BREAKPOINT_COND; +#endif + NVIC_SystemReset(); +} + + +void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t * p_file_name) +{ + NRF_LOG_ERROR("%s:%d", p_file_name, line_num); + on_error(); +} + + +void app_error_fault_handler(uint32_t id, uint32_t pc, uint32_t info) +{ + NRF_LOG_ERROR("Received a fault! id: 0x%08x, pc: 0x%08x, info: 0x%08x", id, pc, info); + on_error(); +} + + +void app_error_handler_bare(uint32_t error_code) +{ + NRF_LOG_ERROR("Received an error: 0x%08x!", error_code); + on_error(); +} + +static void dfu_progress_led_timeout_handler(void * p_context) +{ + app_timer_id_t timer = (app_timer_id_t)p_context; + + uint32_t err_code = app_timer_start(timer, + APP_TIMER_TICKS(DFU_LED_CONFIG_PROGRESS_BLINK_MS), + p_context); + APP_ERROR_CHECK(err_code); + + bsp_board_led_invert(BSP_BOARD_LED_1); +} + +/** + * @brief Function notifies certain events in DFU process. + */ +static void dfu_observer(nrf_dfu_evt_type_t evt_type) +{ + static bool timer_created = false; + uint32_t err_code; + + if (!timer_created) + { + err_code = app_timer_create(&m_dfu_progress_led_timer, + APP_TIMER_MODE_SINGLE_SHOT, + dfu_progress_led_timeout_handler); + APP_ERROR_CHECK(err_code); + timer_created = true; + } + + switch (evt_type) + { + case NRF_DFU_EVT_DFU_FAILED: + case NRF_DFU_EVT_DFU_ABORTED: + err_code = led_softblink_stop(); + APP_ERROR_CHECK(err_code); + + err_code = app_timer_stop(m_dfu_progress_led_timer); + APP_ERROR_CHECK(err_code); + + err_code = led_softblink_start(BSP_LED_0_MASK | BSP_LED_1_MASK); + APP_ERROR_CHECK(err_code); + + break; + case NRF_DFU_EVT_DFU_INITIALIZED: + { + bsp_board_init(BSP_INIT_LEDS); + + if (!nrf_clock_lf_is_running()) + { + nrf_clock_task_trigger(NRF_CLOCK_TASK_LFCLKSTART); + } + err_code = app_timer_init(); + APP_ERROR_CHECK(err_code); + + led_sb_init_params_t led_sb_init_param = LED_SB_INIT_DEFAULT_PARAMS(BSP_LED_0_MASK | BSP_LED_1_MASK); + + uint32_t ticks = APP_TIMER_TICKS(DFU_LED_CONFIG_TRANSPORT_INACTIVE_BREATH_MS); + led_sb_init_param.p_leds_port = BSP_LED_1_PORT; + led_sb_init_param.on_time_ticks = ticks; + led_sb_init_param.off_time_ticks = ticks; + led_sb_init_param.duty_cycle_max = 255; + + err_code = led_softblink_init(&led_sb_init_param); + APP_ERROR_CHECK(err_code); + + err_code = led_softblink_start(BSP_LED_0_MASK | BSP_LED_1_MASK); + APP_ERROR_CHECK(err_code); + break; + } + case NRF_DFU_EVT_TRANSPORT_ACTIVATED: + { + uint32_t ticks = APP_TIMER_TICKS(DFU_LED_CONFIG_TRANSPORT_ACTIVE_BREATH_MS); + led_softblink_off_time_set(ticks); + led_softblink_on_time_set(ticks); + break; + } + case NRF_DFU_EVT_TRANSPORT_DEACTIVATED: + { + uint32_t ticks = APP_TIMER_TICKS(DFU_LED_CONFIG_PROGRESS_BLINK_MS); + err_code = led_softblink_stop(); + APP_ERROR_CHECK(err_code); + + err_code = app_timer_start(m_dfu_progress_led_timer, ticks, m_dfu_progress_led_timer); + APP_ERROR_CHECK(err_code); + + break; + } + default: + break; + } +} + +/**@brief Function for application main entry. */ +int main(void) +{ + uint32_t ret_val; + + // Must happen before flash protection is applied, since it edits a protected page. + nrf_bootloader_mbr_addrs_populate(); + + // Protect MBR and bootloader code from being overwritten. + ret_val = nrf_bootloader_flash_protect(0, MBR_SIZE); + APP_ERROR_CHECK(ret_val); + ret_val = nrf_bootloader_flash_protect(BOOTLOADER_START_ADDR, BOOTLOADER_SIZE); + APP_ERROR_CHECK(ret_val); + + (void) NRF_LOG_INIT(nrf_bootloader_dfu_timer_counter_get); + + NRF_LOG_DEFAULT_BACKENDS_INIT(); + + NRF_LOG_INFO("Inside main"); + + ret_val = nrf_bootloader_init(dfu_observer); + APP_ERROR_CHECK(ret_val); + + NRF_LOG_FLUSH(); + + NRF_LOG_ERROR("After main, should never be reached."); + NRF_LOG_FLUSH(); + + APP_ERROR_CHECK_BOOL(false); +} + +/** + * @} + */ diff --git a/nrf5x.props b/nrf5x.props new file mode 100644 index 0000000..6cf7959 --- /dev/null +++ b/nrf5x.props @@ -0,0 +1,42 @@ + + + + + + + NRF52840_XXAA;S140_reserve;CONFIG_GPIO_AS_PINRESET;NRF_DFU_SETTINGS_VERSION=2;NRF_SD_BLE_API_VERSION=7;__STACK_SIZE=1024;__HEAP_SIZE=0;ARM_MATH_CM4;SOFTDEVICE_PRESENT;%(ClCompile.PreprocessorDefinitions) + %(ClCompile.AdditionalIncludeDirectories);$(ProjectDir);$(BSP_ROOT)/nRF5x/components/softdevice/S140_reserve/headers;$(BSP_ROOT)/nRF5x/components/softdevice/S140_reserve/headers/nrf52;$(BSP_ROOT)/nRF5x/modules/nrfx;$(BSP_ROOT)/nRF5x/modules/nrfx/hal;$(BSP_ROOT)/nRF5x/modules/nrfx/drivers/include;$(BSP_ROOT)/nRF5x/modules/nrfx/drivers;$(BSP_ROOT)/nRF5x/external/nrf_oberon;$(BSP_ROOT)/nRF5x/modules/nrfx/mdk;$(BSP_ROOT)/nRF5x/components/toolchain/cmsis/dsp/Include;$(BSP_ROOT)/nRF5x/components/toolchain/cmsis/include + -mabi=aapcs %(ClCompile.AdditionalOptions) + + + + + $(BSP_ROOT)/nRF5x/LinkerScripts/nRF52840_XXAA_S140_reserve.lds + $(BSP_ROOT)/nRF5x/SoftdeviceLibraries/hard;$(BSP_ROOT)/nRF5x/LinkerScripts;%(Link.LibrarySearchDirectories) + --specs=nano.specs --specs=nosys.specs -Wl,--no-warn-rwx-segments -mabi=aapcs %(Link.AdditionalOptions) + + + + $(BSP_ROOT)/nRF5x/LinkerScripts/nRF52840_XXAA_S140_reserve.lds + + + + + C99 + + + + + + cortex-m4 + THUMB + fpv4-sp-d16 + hard + + + diff --git a/nrf5x.xml b/nrf5x.xml new file mode 100644 index 0000000..12304b0 --- /dev/null +++ b/nrf5x.xml @@ -0,0 +1,62 @@ + + + com.visualgdb.arm-eabi + + 12.3.1 + 13.2 + 1 + + com.sysprogs.arm.nordic.nrf5x + 17.0 + nRF52840_XXAA + nRF5x/DeviceDefinitions/NRF52840.xml + + + + com.sysprogs.bspoptions.nrf5x.wchar + + + + com.sysprogs.bspoptions.nrf5x.pinreset + CONFIG_GPIO_AS_PINRESET + + + com.sysprogs.bspoptions.primary_memory + flash + + + com.sysprogs.bspoptions.arm.floatmode.short + hard + + + com.sysprogs.bspoptions.nrf5x.softdevice + S140_reserve + + + com.sysprogs.toolchainoptions.arm.libctype + --specs=nano.specs + + + com.sysprogs.toolchainoptions.arm.syscallspecs + --specs=nosys.specs + + + com.sysprogs.bspoptions.stackheap.stacksize + 1024 + + + com.sysprogs.bspoptions.stackheap.heapsize + 0 + + + + Device-specific files + nrf5x.mak + + + + + + + + \ No newline at end of file diff --git a/nrf_crypto_allocator.h b/nrf_crypto_allocator.h new file mode 100644 index 0000000..94011d6 --- /dev/null +++ b/nrf_crypto_allocator.h @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2019 - 2020, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +#ifndef NRF_CRYPTO_ALLOCATOR_H__ +#define NRF_CRYPTO_ALLOCATOR_H__ + +#include "nrf_assert.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Crypto library in bootloader case does not use dynamic allocation */ +#define NRF_CRYPTO_ALLOC(size) NULL; ASSERT(0) +#define NRF_CRYPTO_ALLOC_ON_STACK(size) NULL; ASSERT(0) +#define NRF_CRYPTO_FREE(ptr) (void)ptr; + +#ifdef __cplusplus +} +#endif + +#endif /* NRF_CRYPTO_ALLOCATOR_H__ */ diff --git a/private.pem b/private.pem new file mode 100644 index 0000000..97e9b5c --- /dev/null +++ b/private.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIEM6TVi/ofxCYEb2O9OYK4sNHlpwd0ZrW3yFOIeRJKqKoAoGCCqGSM49 +AwEHoUQDQgAEYUIRVGOQwmOEfsuYSufu4hHxRsQSUzh9lMBkvc3ewrPkpbfiXfa/ +vGyIM8HAY2Jemux9+FyFERXRjgj5RxOJAA== +-----END EC PRIVATE KEY----- diff --git a/sdk_config.h b/sdk_config.h new file mode 100644 index 0000000..76b8105 --- /dev/null +++ b/sdk_config.h @@ -0,0 +1,5479 @@ +/** + * Copyright (c) 2017 - 2020, Nordic Semiconductor ASA + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form, except as embedded into a Nordic + * Semiconductor ASA integrated circuit in a product or a software update for + * such product, must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. + * + * 3. Neither the name of Nordic Semiconductor ASA nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * 4. This software, with or without modification, must only be used with a + * Nordic Semiconductor ASA integrated circuit. + * + * 5. Any software provided in binary form under this license must not be reverse + * engineered, decompiled, modified and/or disassembled. + * + * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + + + +#ifndef SDK_CONFIG_H +#define SDK_CONFIG_H +// <<< Use Configuration Wizard in Context Menu >>>\n +#ifdef USE_APP_CONFIG +#include "app_config.h" +#endif +// nRF_Bootloader + +//========================================================== +// nrf_bootloader - Bootloader settings + +//========================================================== +// Application integrity checks + +//========================================================== +// NRF_BL_APP_CRC_CHECK_SKIPPED_ON_GPREGRET2 - Skip CRC integrity check of the application when bit 1 (0-indexed) is set in the GPREGRET2 register. + + +// Only CRC checks can be skipped. For other boot validation types, the GPREGRET2 register is ignored. + +#ifndef NRF_BL_APP_CRC_CHECK_SKIPPED_ON_GPREGRET2 +#define NRF_BL_APP_CRC_CHECK_SKIPPED_ON_GPREGRET2 1 +#endif + +// NRF_BL_APP_CRC_CHECK_SKIPPED_ON_SYSTEMOFF_RESET - Skip integrity check of the application when waking up from the System Off state. + + +// Only CRC checks can be skipped. For other boot validation types, the reset state is ignored. + +#ifndef NRF_BL_APP_CRC_CHECK_SKIPPED_ON_SYSTEMOFF_RESET +#define NRF_BL_APP_CRC_CHECK_SKIPPED_ON_SYSTEMOFF_RESET 1 +#endif + +// NRF_BL_APP_SIGNATURE_CHECK_REQUIRED - Perform signature check on the app. Requires the signature to be sent in the init packet. + + +#ifndef NRF_BL_APP_SIGNATURE_CHECK_REQUIRED +#define NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 0 +#endif + +// NRF_BL_DFU_ALLOW_UPDATE_FROM_APP - Whether to allow the app to receive firmware updates for the bootloader to activate. + + +// Enable this to allow the app to instruct the bootloader to activate firmware. +// The bootloader will do its own postvalidation. + +#ifndef NRF_BL_DFU_ALLOW_UPDATE_FROM_APP +#define NRF_BL_DFU_ALLOW_UPDATE_FROM_APP 0 +#endif + +// +//========================================================== + +// DFU mode enter method + +//========================================================== +// NRF_BL_DFU_ENTER_METHOD_BUTTON - Enter DFU mode on button press. +//========================================================== +#ifndef NRF_BL_DFU_ENTER_METHOD_BUTTON +#define NRF_BL_DFU_ENTER_METHOD_BUTTON 1 +#endif +// NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN - Button for entering DFU mode. + +// <0=> 0 (P0.0) +// <1=> 1 (P0.1) +// <2=> 2 (P0.2) +// <3=> 3 (P0.3) +// <4=> 4 (P0.4) +// <5=> 5 (P0.5) +// <6=> 6 (P0.6) +// <7=> 7 (P0.7) +// <8=> 8 (P0.8) +// <9=> 9 (P0.9) +// <10=> 10 (P0.10) +// <11=> 11 (P0.11) +// <12=> 12 (P0.12) +// <13=> 13 (P0.13) +// <14=> 14 (P0.14) +// <15=> 15 (P0.15) +// <16=> 16 (P0.16) +// <17=> 17 (P0.17) +// <18=> 18 (P0.18) +// <19=> 19 (P0.19) +// <20=> 20 (P0.20) +// <21=> 21 (P0.21) +// <22=> 22 (P0.22) +// <23=> 23 (P0.23) +// <24=> 24 (P0.24) +// <25=> 25 (P0.25) +// <26=> 26 (P0.26) +// <27=> 27 (P0.27) +// <28=> 28 (P0.28) +// <29=> 29 (P0.29) +// <30=> 30 (P0.30) +// <31=> 31 (P0.31) +// <32=> 32 (P1.0) +// <33=> 33 (P1.1) +// <34=> 34 (P1.2) +// <35=> 35 (P1.3) +// <36=> 36 (P1.4) +// <37=> 37 (P1.5) +// <38=> 38 (P1.6) +// <39=> 39 (P1.7) +// <40=> 40 (P1.8) +// <41=> 41 (P1.9) +// <42=> 42 (P1.10) +// <43=> 43 (P1.11) +// <44=> 44 (P1.12) +// <45=> 45 (P1.13) +// <46=> 46 (P1.14) +// <47=> 47 (P1.15) + +#ifndef NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN +#define NRF_BL_DFU_ENTER_METHOD_BUTTON_PIN 25 +#endif + +// + +// NRF_BL_DFU_ENTER_METHOD_PINRESET - Enter DFU mode on pin reset. + + +#ifndef NRF_BL_DFU_ENTER_METHOD_PINRESET +#define NRF_BL_DFU_ENTER_METHOD_PINRESET 0 +#endif + +// NRF_BL_DFU_ENTER_METHOD_GPREGRET - Enter DFU mode when bit 0 is set in the NRF_POWER_GPREGRET register. + + +#ifndef NRF_BL_DFU_ENTER_METHOD_GPREGRET +#define NRF_BL_DFU_ENTER_METHOD_GPREGRET 1 +#endif + +// NRF_BL_DFU_ENTER_METHOD_BUTTONLESS - Enter DFU mode when the Boolean enter_buttonless_dfu in DFU settings is true. + + +#ifndef NRF_BL_DFU_ENTER_METHOD_BUTTONLESS +#define NRF_BL_DFU_ENTER_METHOD_BUTTONLESS 0 +#endif + +// +//========================================================== + +// DFU timers + +//========================================================== +// NRF_BL_DFU_CONTINUATION_TIMEOUT_MS - Timeout in ms when expecting an update immediately. <100-60000000> + + +// This timeout is used after updating the SoftDevice, when there is +// already a valid application present. The bootloader will enter DFU mode +// for a short time instead of booting the old application to allow the host +// to immediately transfer a new application if it wishes. + +#ifndef NRF_BL_DFU_CONTINUATION_TIMEOUT_MS +#define NRF_BL_DFU_CONTINUATION_TIMEOUT_MS 10000 +#endif + +// NRF_BL_DFU_INACTIVITY_TIMEOUT_MS - Timeout in ms before automatically starting a valid application due to inactivity. <0-60000000> + + +// If 0, no inactivity timer will be used. Values 1-99 are invalid. + +#ifndef NRF_BL_DFU_INACTIVITY_TIMEOUT_MS +#define NRF_BL_DFU_INACTIVITY_TIMEOUT_MS 120000 +#endif + +// +//========================================================== + +// Watchdog timer + +//========================================================== +// NRF_BL_WDT_MAX_SCHEDULER_LATENCY_MS - Maximum latency of the scheduler in miliseconds +// Maximum latency of the scheduler is compared with +// watchdog counter reload value (CRV). If latency is big +// enough, the watchdog will be fed from internal timer +// handler along with feed from user function. If latency +// is smaller than CRV, the watchdog will not be internally fed once +// it will be externally fed. Maximum latency is mainly affected +// by flash operations. + +#ifndef NRF_BL_WDT_MAX_SCHEDULER_LATENCY_MS +#define NRF_BL_WDT_MAX_SCHEDULER_LATENCY_MS 10000 +#endif + +// +//========================================================== + +// Misc Bootloader settings + +//========================================================== +// NRF_BL_DEBUG_PORT_DISABLE - Disable access to the chip via the debug port. + + +// Disable access to the chip via the debug port. +// This modifies the APPROTECT and DEBUGCTRL registers. +// Enable this option in production code if such +// access should be prohibited. Read about the registers +// for more details. + +#ifndef NRF_BL_DEBUG_PORT_DISABLE +#define NRF_BL_DEBUG_PORT_DISABLE 0 +#endif + +// NRF_BL_FW_COPY_PROGRESS_STORE_STEP - Number of pages copied after which progress in the settings page is updated. +// Progress stored in the settings page allows the bootloader to resume +// copying the new firmware in case of interruption (reset). +// If the value is small, then the resume point is more accurate. However, +// it also impacts negatively on flash wear. + +#ifndef NRF_BL_FW_COPY_PROGRESS_STORE_STEP +#define NRF_BL_FW_COPY_PROGRESS_STORE_STEP 8 +#endif + +// NRF_BL_RESET_DELAY_MS - Time to wait before resetting the bootloader. +// Time (in ms) to wait before resetting the bootloader after DFU has been completed or aborted. This allows more time for e.g. disconnecting the BLE link or writing logs. + +#ifndef NRF_BL_RESET_DELAY_MS +#define NRF_BL_RESET_DELAY_MS 0 +#endif + +// +//========================================================== + +// +//========================================================== + +// +//========================================================== + +// nRF_Crypto + +//========================================================== +// NRF_CRYPTO_ENABLED - nrf_crypto - Cryptography library. +//========================================================== +#ifndef NRF_CRYPTO_ENABLED +#define NRF_CRYPTO_ENABLED 1 +#endif +// NRF_CRYPTO_ALLOCATOR - Memory allocator + + +// Choose memory allocator used by nrf_crypto. Default is alloca if possible or nrf_malloc otherwise. If 'User macros' are selected, the user has to create 'nrf_crypto_allocator.h' file that contains NRF_CRYPTO_ALLOC, NRF_CRYPTO_FREE, and NRF_CRYPTO_ALLOC_ON_STACK. +// <0=> Default +// <1=> User macros +// <2=> On stack (alloca) +// <3=> C dynamic memory (malloc) +// <4=> SDK Memory Manager (nrf_malloc) + +#ifndef NRF_CRYPTO_ALLOCATOR +#define NRF_CRYPTO_ALLOCATOR 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_ENABLED - Enable the ARM Cryptocell CC310 reduced backend. + +// The CC310 hardware-accelerated cryptography backend with reduced functionality and footprint (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ENABLED 1 +#endif +// NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP224R1_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310_BL. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_ECC_SECP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED - CC310_BL SHA-256 hash functionality. + + +// CC310_BL backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED - nrf_cc310_bl buffers to RAM before running hash operation + + +// Enabling this makes hashing of addresses in FLASH range possible. Size of buffer allocated for hashing is set by NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE - nrf_cc310_bl hash outputs digests in little endian +// Makes the nrf_cc310_bl hash functions output digests in little endian format. Only for use in nRF SDK DFU! + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE +#define NRF_CRYPTO_BACKEND_CC310_BL_HASH_AUTOMATIC_RAM_BUFFER_SIZE 4096 +#endif + +// NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310 bl. + + +// Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_BL_INTERRUPTS_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_CC310_ENABLED - Enable the ARM Cryptocell CC310 backend. + +// The CC310 hardware-accelerated cryptography backend (only available on nRF52840). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CC310_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED - Enable the AES CBC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED - Enable the AES CTR mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CTR_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED - Enable the AES ECB mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_ECB_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED - Enable the AES CBC_MAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CBC_MAC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED - Enable the AES CMAC mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CMAC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED - Enable the AES CCM mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED - Enable the AES CCM* mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_AES_CCM_STAR_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_CHACHA_POLY_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED - Enable the secp160r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED - Enable the secp160r2 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160R2_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED - Enable the secp192r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED - Enable the secp224r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED - Enable the secp256r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED - Enable the secp384r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP384R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED - Enable the secp521r1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP521R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED - Enable the secp160k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP160K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED - Enable the secp192k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP192K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED - Enable the secp224k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP224K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED - Enable the secp256k1 elliptic curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_SECP256K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED - Enable the Curve25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_CURVE25519_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED - Enable the Ed25519 curve support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_ECC_ED25519_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED - CC310 SHA-256 hash functionality. + + +// CC310 backend implementation for hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED - CC310 SHA-512 hash functionality + + +// CC310 backend implementation for SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HASH_SHA512_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED - CC310 HMAC using SHA-256 + + +// CC310 backend implementation for HMAC using hardware-accelerated SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED - CC310 HMAC using SHA-512 + + +// CC310 backend implementation for HMAC using SHA-512 (in software). + +#ifndef NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_HMAC_SHA512_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED - Enable RNG support using CC310. + + +#ifndef NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_RNG_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED - Enable Interrupts while support using CC310. + + +// Select a library version compatible with the configuration. When interrupts are disable, a version named _noint must be used + +#ifndef NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED +#define NRF_CRYPTO_BACKEND_CC310_INTERRUPTS_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_CIFRA_ENABLED - Enable the Cifra backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_CIFRA_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED - Enable the AES EAX mode using Cifra. + + +#ifndef NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED +#define NRF_CRYPTO_BACKEND_CIFRA_AES_EAX_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED - Enable the mbed TLS backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED - Enable the AES CBC mode mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED - Enable the AES CTR mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CTR_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED - Enable the AES CFB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CFB_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED - Enable the AES ECB mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_ECB_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED - Enable the AES CBC MAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CBC_MAC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED - Enable the AES CMAC mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CMAC_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED - Enable the AES CCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_CCM_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED - Enable the AES GCM mode using mbed TLS. + + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_AES_GCM_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// Enable this setting if you need secp192r1 (NIST 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// Enable this setting if you need secp224r1 (NIST 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// Enable this setting if you need secp256r1 (NIST 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED - Enable secp384r1 (NIST 384-bit) curve + + +// Enable this setting if you need secp384r1 (NIST 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP384R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED - Enable secp521r1 (NIST 521-bit) curve + + +// Enable this setting if you need secp521r1 (NIST 521-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP521R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED - Enable secp192k1 (Koblitz 192-bit) curve + + +// Enable this setting if you need secp192k1 (Koblitz 192-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP192K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED - Enable secp224k1 (Koblitz 224-bit) curve + + +// Enable this setting if you need secp224k1 (Koblitz 224-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP224K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// Enable this setting if you need secp256k1 (Koblitz 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_SECP256K1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED - Enable bp256r1 (Brainpool 256-bit) curve + + +// Enable this setting if you need bp256r1 (Brainpool 256-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED - Enable bp384r1 (Brainpool 384-bit) curve + + +// Enable this setting if you need bp384r1 (Brainpool 384-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP384R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED - Enable bp512r1 (Brainpool 512-bit) curve + + +// Enable this setting if you need bp512r1 (Brainpool 512-bit) support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_BP512R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED - Enable Curve25519 curve + + +// Enable this setting if you need Curve25519 support using MBEDTLS + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_ECC_CURVE25519_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED - Enable mbed TLS SHA-256 hash functionality. + + +// mbed TLS backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED - Enable mbed TLS SHA-512 hash functionality. + + +// mbed TLS backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HASH_SHA512_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED - Enable mbed TLS HMAC using SHA-256. + + +// mbed TLS backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED - Enable mbed TLS HMAC using SHA-512. + + +// mbed TLS backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_MBEDTLS_HMAC_SHA512_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED - Enable the micro-ecc backend. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED - Enable secp192r1 (NIST 192-bit) curve + + +// Enable this setting if you need secp192r1 (NIST 192-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP192R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED - Enable secp224r1 (NIST 224-bit) curve + + +// Enable this setting if you need secp224r1 (NIST 224-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP224R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED - Enable secp256r1 (NIST 256-bit) curve + + +// Enable this setting if you need secp256r1 (NIST 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED - Enable secp256k1 (Koblitz 256-bit) curve + + +// Enable this setting if you need secp256k1 (Koblitz 256-bit) support using micro-ecc + +#ifndef NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED +#define NRF_CRYPTO_BACKEND_MICRO_ECC_ECC_SECP256K1_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED - Enable the nRF HW RNG backend. + +// The nRF HW backend provide access to RNG peripheral in nRF5x devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED - Enable mbed TLS CTR-DRBG algorithm. + + +// Enable mbed TLS CTR-DRBG standardized by NIST (NIST SP 800-90A Rev. 1). The nRF HW RNG is used as an entropy source for seeding. + +#ifndef NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_HW_RNG_MBEDTLS_CTR_DRBG_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_NRF_SW_ENABLED - Enable the legacy nRFx sw for crypto. + +// The nRF SW cryptography backend (only used in bootloader context). +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED - nRF SW hash backend support for SHA-256 + + +// The nRF SW backend provide access to nRF SDK legacy hash implementation of SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_NRF_SW_HASH_SHA256_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_BACKEND_OBERON_ENABLED - Enable the Oberon backend + +// The Oberon backend +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OBERON_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED - Enable the CHACHA-POLY mode using Oberon. + + +#ifndef NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_CHACHA_POLY_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED - Enable secp256r1 curve + + +// Enable this setting if you need secp256r1 curve support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_SECP256R1_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED - Enable Curve25519 ECDH + + +// Enable this setting if you need Curve25519 ECDH support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_CURVE25519_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED - Enable Ed25519 signature scheme + + +// Enable this setting if you need Ed25519 support using Oberon library + +#ifndef NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_ECC_ED25519_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED - Oberon SHA-256 hash functionality + + +// Oberon backend implementation for SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA256_ENABLED 1 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED - Oberon SHA-512 hash functionality + + +// Oberon backend implementation for SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HASH_SHA512_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED - Oberon HMAC using SHA-256 + + +// Oberon backend implementation for HMAC using SHA-256. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA256_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED - Oberon HMAC using SHA-512 + + +// Oberon backend implementation for HMAC using SHA-512. + +#ifndef NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED +#define NRF_CRYPTO_BACKEND_OBERON_HMAC_SHA512_ENABLED 0 +#endif + +// + +// NRF_CRYPTO_BACKEND_OPTIGA_ENABLED - Enable the nrf_crypto Optiga Trust X backend. + +// Enables the nrf_crypto backend for Optiga Trust X devices. +//========================================================== +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ENABLED 0 +#endif +// NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED - Optiga backend support for RNG + + +// The Optiga backend provide external chip RNG. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_RNG_ENABLED 0 +#endif + +// NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED - Optiga backend support for ECC secp256r1 + + +// The Optiga backend provide external chip ECC using secp256r1. + +#ifndef NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED +#define NRF_CRYPTO_BACKEND_OPTIGA_ECC_SECP256R1_ENABLED 1 +#endif + +// + +// NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED - Big-endian byte order in raw Curve25519 data + + +// Enable big-endian byte order in Curve25519 API, if set to 1. Use little-endian, if set to 0. + +#ifndef NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED +#define NRF_CRYPTO_CURVE25519_BIG_ENDIAN_ENABLED 0 +#endif + +// + +// nrf_crypto_rng - RNG Configuration + +//========================================================== +// NRF_CRYPTO_RNG_STATIC_MEMORY_BUFFERS_ENABLED - Use static memory buffers for context and temporary init buffer. + + +// Always recommended when using the nRF HW RNG as the context and temporary buffers are small. Consider disabling if using the CC310 RNG in a RAM constrained application. In this case, memory must be provided to nrf_crypto_rng_init, or it can be allocated internally provided that NRF_CRYPTO_ALLOCATOR does not allocate memory on the stack. + +#ifndef NRF_CRYPTO_RNG_STATIC_MEMORY_BUFFERS_ENABLED +#define NRF_CRYPTO_RNG_STATIC_MEMORY_BUFFERS_ENABLED 1 +#endif + +// NRF_CRYPTO_RNG_AUTO_INIT_ENABLED - Initialize the RNG module automatically when nrf_crypto is initialized. + + +// Automatic initialization is only supported with static or internally allocated context and temporary memory. + +#ifndef NRF_CRYPTO_RNG_AUTO_INIT_ENABLED +#define NRF_CRYPTO_RNG_AUTO_INIT_ENABLED 1 +#endif + +// +//========================================================== + +// +//========================================================== + +// nRF_DFU + +//========================================================== +// DFU security - nrf_dfu_validation - DFU validation + +//========================================================== +// NRF_DFU_APP_ACCEPT_SAME_VERSION - Whether to accept application upgrades with the same version as the current application. + + +// This applies to application updates, and possibly to SoftDevice updates. +// Bootloader upgrades always require higher versions. SoftDevice upgrades +// look at the sd_req field independently of this config. +// Disabling this protects against replay attacks wearing out the flash of the device. +// This config only has an effect when NRF_DFU_APP_DOWNGRADE_PREVENTION is enabled. + +#ifndef NRF_DFU_APP_ACCEPT_SAME_VERSION +#define NRF_DFU_APP_ACCEPT_SAME_VERSION 1 +#endif + +// NRF_DFU_APP_DOWNGRADE_PREVENTION - Check the firmware version and SoftDevice requirements of application (and SoftDevice) updates. + + +// Whether to check the incoming version against the version of the existing app and/or +// the incoming SoftDevice requirements against the existing SoftDevice. +// This applies to application updates, and possibly to SoftDevice updates. +// Disabling this causes the checks to always ignore the incoming firmware version and +// to ignore the SoftDevice requirements if the first requirement is 0. +// This does not apply the bootloader updates. If the bootloader depends on the SoftDevice +// e.g. for BLE transport, this does not apply to SoftDevice updates. +// See @ref lib_bootloader_dfu_validation for more information. +// When signed updates are required, version checking should always be enabled. + +#ifndef NRF_DFU_APP_DOWNGRADE_PREVENTION +#define NRF_DFU_APP_DOWNGRADE_PREVENTION 1 +#endif + +// NRF_DFU_EXTERNAL_APP_VERSIONING - Require versioning for external applications. + + +// This configuration is only used if NRF_DFU_SUPPORTS_EXTERNAL_APP is set to 1. +// Setting this will require that any FW images using the FW upgrade type +// DFU_FW_TYPE_EXTERNAL_APPLICATION must follow a monotonic versioning scheme +// where the FW version of an upgrade must always be larger than the previously stored +// FW version. + +#ifndef NRF_DFU_EXTERNAL_APP_VERSIONING +#define NRF_DFU_EXTERNAL_APP_VERSIONING 1 +#endif + +// NRF_DFU_FORCE_DUAL_BANK_APP_UPDATES - Accept only dual-bank application updates. + + +// If not enabled then if there is not enough space to perform dual-bank update +// application is deleted and single-bank update is performed. In case it is considered +// security concern user can prefer to discard update request rather than overwrite +// current application. + +#ifndef NRF_DFU_FORCE_DUAL_BANK_APP_UPDATES +#define NRF_DFU_FORCE_DUAL_BANK_APP_UPDATES 0 +#endif + +// NRF_DFU_HW_VERSION - Device hardware version. +// This is used to determine if given update is targeting the device. +// It is checked against the hw_version value in the init packet + +#ifndef NRF_DFU_HW_VERSION +#define NRF_DFU_HW_VERSION 52 +#endif + +// NRF_DFU_REQUIRE_SIGNED_APP_UPDATE - Require a valid signature to update the application or SoftDevice. + + +#ifndef NRF_DFU_REQUIRE_SIGNED_APP_UPDATE +#define NRF_DFU_REQUIRE_SIGNED_APP_UPDATE 1 +#endif + +// NRF_DFU_SINGLE_BANK_APP_UPDATES - Place the application and the SoftDevice directly where they are supposed to be. + + +// Note that this creates security concerns when signing and version checks +// are enabled. An attacker will be able to delete (but not replace) +// the current app or SoftDevice without knowing the signature key. + +#ifndef NRF_DFU_SINGLE_BANK_APP_UPDATES +#define NRF_DFU_SINGLE_BANK_APP_UPDATES 0 +#endif + +// +//========================================================== + +// NRF_DFU_SETTINGS_COMPATIBILITY_MODE - nrf_dfu_settings - DFU Settings + + +#ifndef NRF_DFU_SETTINGS_COMPATIBILITY_MODE +#define NRF_DFU_SETTINGS_COMPATIBILITY_MODE 1 +#endif + +// nrf_dfu - Device Firmware Upgrade + +//========================================================== +// DFU transport + +//========================================================== +// NRF_DFU_TRANSPORT_ANT - ANT transport settings +//========================================================== +#ifndef NRF_DFU_TRANSPORT_ANT +#define NRF_DFU_TRANSPORT_ANT 0 +#endif +// NRF_DFU_ANT_MTU - MTU size used for firmware bursts. +// Sets the maximum burst size used for DFU write commands. + +#ifndef NRF_DFU_ANT_MTU +#define NRF_DFU_ANT_MTU 1024 +#endif + +// ANT DFU buffers + +//========================================================== +// NRF_DFU_ANT_BUFFERS_OVERRIDE + +// Check this option to override the default number of buffers. +//========================================================== +#ifndef NRF_DFU_ANT_BUFFERS_OVERRIDE +#define NRF_DFU_ANT_BUFFERS_OVERRIDE 0 +#endif +// NRF_DFU_ANT_BUFFERS - Number of buffers in the ANT transport. +// Number of buffers to store incoming data while it is being written to flash. +// Reduce this value to save RAM. If this value is too low, the DFU process will fail. + +#ifndef NRF_DFU_ANT_BUFFERS +#define NRF_DFU_ANT_BUFFERS 8 +#endif + +// + +// +//========================================================== + +// ANT DFU Channel Configuration + +//========================================================== +// NRF_DFU_ANT_RF_FREQ - DFU RF channel. +#ifndef NRF_DFU_ANT_RF_FREQ +#define NRF_DFU_ANT_RF_FREQ 66 +#endif + +// NRF_DFU_ANT_DEV_TYPE - Device type field to use for DFU channel id. +#ifndef NRF_DFU_ANT_DEV_TYPE +#define NRF_DFU_ANT_DEV_TYPE 10 +#endif + +// NRF_DFU_ANT_CHANNEL_PERIOD - Channel period of DFU ANT channel. +#ifndef NRF_DFU_ANT_CHANNEL_PERIOD +#define NRF_DFU_ANT_CHANNEL_PERIOD 2048 +#endif + +// +//========================================================== + +// + +// NRF_DFU_TRANSPORT_BLE - BLE transport settings +//========================================================== +#ifndef NRF_DFU_TRANSPORT_BLE +#define NRF_DFU_TRANSPORT_BLE 1 +#endif +// NRF_DFU_BLE_SKIP_SD_INIT - Skip the SoftDevice and interrupt vector table initialization. + + +#ifndef NRF_DFU_BLE_SKIP_SD_INIT +#define NRF_DFU_BLE_SKIP_SD_INIT 0 +#endif + +// NRF_DFU_BLE_ADV_NAME - Default advertising name. +#ifndef NRF_DFU_BLE_ADV_NAME +#define NRF_DFU_BLE_ADV_NAME "DfuTarget" +#endif + +// NRF_DFU_BLE_ADV_INTERVAL - Advertising interval (in units of 0.625 ms) +#ifndef NRF_DFU_BLE_ADV_INTERVAL +#define NRF_DFU_BLE_ADV_INTERVAL 40 +#endif + +// BLE DFU security + +//========================================================== +// NRF_DFU_BLE_REQUIRES_BONDS - Require bond with peer. + + +#ifndef NRF_DFU_BLE_REQUIRES_BONDS +#define NRF_DFU_BLE_REQUIRES_BONDS 0 + +#endif + +// +//========================================================== + +// BLE DFU connection + +//========================================================== +// NRF_DFU_BLE_MIN_CONN_INTERVAL - Minimum connection interval (units). +// Minimum GAP connection interval, in 1.25 ms units. + +#ifndef NRF_DFU_BLE_MIN_CONN_INTERVAL +#define NRF_DFU_BLE_MIN_CONN_INTERVAL 12 +#endif + +// NRF_DFU_BLE_MAX_CONN_INTERVAL - Maximum connection interval (units). +// Maximum GAP connection interval, in 1.25 ms units. + +#ifndef NRF_DFU_BLE_MAX_CONN_INTERVAL +#define NRF_DFU_BLE_MAX_CONN_INTERVAL 12 +#endif + +// NRF_DFU_BLE_CONN_SUP_TIMEOUT_MS - Supervision timeout (ms). +// GAP connection supervision timeout, in milliseconds. + +#ifndef NRF_DFU_BLE_CONN_SUP_TIMEOUT_MS +#define NRF_DFU_BLE_CONN_SUP_TIMEOUT_MS 6000 +#endif + +// +//========================================================== + +// BLE DFU buffers + +//========================================================== +// NRF_DFU_BLE_BUFFERS_OVERRIDE + +// Check this option to override the default number of buffers. +//========================================================== +#ifndef NRF_DFU_BLE_BUFFERS_OVERRIDE +#define NRF_DFU_BLE_BUFFERS_OVERRIDE 0 +#endif +// NRF_DFU_BLE_BUFFERS - Number of buffers in the BLE transport. +// Number of buffers to store incoming data while it is being written to flash. +// Reduce this value to save RAM. If this value is too low, the DFU process will fail. + +#ifndef NRF_DFU_BLE_BUFFERS +#define NRF_DFU_BLE_BUFFERS 8 +#endif + +// + +// +//========================================================== + +// + +// +//========================================================== + +// DFU protocol + +//========================================================== +// NRF_DFU_PROTOCOL_FW_VERSION_MSG - Firmware version message support. + + +// Firmware version message support. +// If disabled, firmware version requests will return NRF_DFU_RES_CODE_OP_CODE_NOT_SUPPORTED. + +#ifndef NRF_DFU_PROTOCOL_FW_VERSION_MSG +#define NRF_DFU_PROTOCOL_FW_VERSION_MSG 1 +#endif + +// NRF_DFU_PROTOCOL_REDUCED - Reduced protocol opcode selection. + + +// Only support a minimal set of opcodes; return NRF_DFU_RES_CODE_OP_CODE_NOT_SUPPORTED +// for unsupported opcodes. The supported opcodes are:NRF_DFU_OP_OBJECT_CREATE, +// NRF_DFU_OP_OBJECT_EXECUTE, NRF_DFU_OP_OBJECT_SELECT, NRF_DFU_OP_OBJECT_WRITE, +// NRF_DFU_OP_CRC_GET, NRF_DFU_OP_RECEIPT_NOTIF_SET, and NRF_DFU_OP_ABORT. +// This reduced feature set is used by the BLE transport to reduce flash usage. + +#ifndef NRF_DFU_PROTOCOL_REDUCED +#define NRF_DFU_PROTOCOL_REDUCED 0 +#endif + +// NRF_DFU_PROTOCOL_VERSION_MSG - Protocol version message support. + + +// Protocol version message support. +// If disabled, protocol version requests will return NRF_DFU_RES_CODE_OP_CODE_NOT_SUPPORTED. + +#ifndef NRF_DFU_PROTOCOL_VERSION_MSG +#define NRF_DFU_PROTOCOL_VERSION_MSG 1 +#endif + +// +//========================================================== + +// Misc DFU settings + +//========================================================== +// NRF_DFU_APP_DATA_AREA_SIZE - The size (in bytes) of the flash area reserved for application data. +// This area is found at the end of the application area, next to the start of +// the bootloader. This area will not be erased by the bootloader during a +// firmware upgrade. The size must be a multiple of the flash page size. + +#ifndef NRF_DFU_APP_DATA_AREA_SIZE +#define NRF_DFU_APP_DATA_AREA_SIZE 12288 +#endif + +// NRF_DFU_IN_APP - Specifies that this code is in the app, not the bootloader, so some settings are off-limits. + + +// Enable this to disable writing to areas of the settings that are protected +// by the bootlader. If this is not enabled in the app, certain settings write +// operations will cause HardFaults or will be ignored. Enabling this option +// also causes postvalidation to be disabled since this is meant to be done +// in the bootloader. NRF_BL_DFU_ALLOW_UPDATE_FROM_APP must be enabled in the bootloader. + +#ifndef NRF_DFU_IN_APP +#define NRF_DFU_IN_APP 0 +#endif + +// NRF_DFU_SAVE_PROGRESS_IN_FLASH - Save DFU progress in flash. + + +// Save DFU progress to flash so that it can be resumed if interrupted, instead of being restarted. +// Keep this setting disabled to maximize transfer speed and minimize flash wear. +// The init packet is always saved in flash, regardless of this setting. + +#ifndef NRF_DFU_SAVE_PROGRESS_IN_FLASH +#define NRF_DFU_SAVE_PROGRESS_IN_FLASH 0 +#endif + +// NRF_DFU_SUPPORTS_EXTERNAL_APP - [Experimental] Support for external app. + + +// External apps are apps that will not be activated. They can +// e.g. be apps to be sent to a third party. External app updates +// are verified upon reception, but will remain in bank 1, and +// will never be booted. An external app will be overwritten if +// a new DFU procedure is performed. Note: This functionality is +// experimental and not yet used in any examples. + +#ifndef NRF_DFU_SUPPORTS_EXTERNAL_APP +#define NRF_DFU_SUPPORTS_EXTERNAL_APP 0 +#endif + +// +//========================================================== + +// +//========================================================== + +// +//========================================================== + +// nRF_Libraries + +//========================================================== +// APP_SCHEDULER_ENABLED - app_scheduler - Events scheduler +//========================================================== +#ifndef APP_SCHEDULER_ENABLED +#define APP_SCHEDULER_ENABLED 1 +#endif +// APP_SCHEDULER_WITH_PAUSE - Enabling pause feature + + +#ifndef APP_SCHEDULER_WITH_PAUSE +#define APP_SCHEDULER_WITH_PAUSE 0 +#endif + +// APP_SCHEDULER_WITH_PROFILER - Enabling scheduler profiling + + +#ifndef APP_SCHEDULER_WITH_PROFILER +#define APP_SCHEDULER_WITH_PROFILER 0 +#endif + +// + +// CRC32_ENABLED - crc32 - CRC32 calculation routines + + +#ifndef CRC32_ENABLED +#define CRC32_ENABLED 1 +#endif + +// MEM_MANAGER_ENABLED - mem_manager - Dynamic memory allocator +//========================================================== +#ifndef MEM_MANAGER_ENABLED +#define MEM_MANAGER_ENABLED 1 +#endif +// MEMORY_MANAGER_SMALL_BLOCK_COUNT - Size of each memory blocks identified as 'small' block. <0-255> + + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_COUNT +#define MEMORY_MANAGER_SMALL_BLOCK_COUNT 1 +#endif + +// MEMORY_MANAGER_SMALL_BLOCK_SIZE - Size of each memory blocks identified as 'small' block. +// Size of each memory blocks identified as 'small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_SMALL_BLOCK_SIZE +#define MEMORY_MANAGER_SMALL_BLOCK_SIZE 32 +#endif + +// MEMORY_MANAGER_MEDIUM_BLOCK_COUNT - Size of each memory blocks identified as 'medium' block. <0-255> + + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_COUNT +#define MEMORY_MANAGER_MEDIUM_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_MEDIUM_BLOCK_SIZE - Size of each memory blocks identified as 'medium' block. +// Size of each memory blocks identified as 'medium' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_MEDIUM_BLOCK_SIZE +#define MEMORY_MANAGER_MEDIUM_BLOCK_SIZE 256 +#endif + +// MEMORY_MANAGER_LARGE_BLOCK_COUNT - Size of each memory blocks identified as 'large' block. <0-255> + + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_COUNT +#define MEMORY_MANAGER_LARGE_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_LARGE_BLOCK_SIZE - Size of each memory blocks identified as 'large' block. +// Size of each memory blocks identified as 'large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_LARGE_BLOCK_SIZE +#define MEMORY_MANAGER_LARGE_BLOCK_SIZE 256 +#endif + +// MEMORY_MANAGER_XLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XLARGE_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_XLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra large' block. +// Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XLARGE_BLOCK_SIZE 1320 +#endif + +// MEMORY_MANAGER_XXLARGE_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra large' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_COUNT +#define MEMORY_MANAGER_XXLARGE_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_XXLARGE_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra large' block. +// Size of each memory blocks identified as 'extra extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXLARGE_BLOCK_SIZE +#define MEMORY_MANAGER_XXLARGE_BLOCK_SIZE 3444 +#endif + +// MEMORY_MANAGER_XSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XSMALL_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_XSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra small' block. +// Size of each memory blocks identified as 'extra large' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XSMALL_BLOCK_SIZE 64 +#endif + +// MEMORY_MANAGER_XXSMALL_BLOCK_COUNT - Size of each memory blocks identified as 'extra extra small' block. <0-255> + + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_COUNT +#define MEMORY_MANAGER_XXSMALL_BLOCK_COUNT 0 +#endif + +// MEMORY_MANAGER_XXSMALL_BLOCK_SIZE - Size of each memory blocks identified as 'extra extra small' block. +// Size of each memory blocks identified as 'extra extra small' block. Memory block are recommended to be word-sized. + +#ifndef MEMORY_MANAGER_XXSMALL_BLOCK_SIZE +#define MEMORY_MANAGER_XXSMALL_BLOCK_SIZE 32 +#endif + +// MEM_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef MEM_MANAGER_CONFIG_LOG_ENABLED +#define MEM_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// MEM_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MEM_MANAGER_CONFIG_LOG_LEVEL +#define MEM_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// MEM_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_INFO_COLOR +#define MEM_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// MEM_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MEM_MANAGER_CONFIG_DEBUG_COLOR +#define MEM_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// MEM_MANAGER_DISABLE_API_PARAM_CHECK - Disable API parameter checks in the module. + + +#ifndef MEM_MANAGER_DISABLE_API_PARAM_CHECK +#define MEM_MANAGER_DISABLE_API_PARAM_CHECK 0 +#endif + +// + +// NRF_BALLOC_ENABLED - nrf_balloc - Block allocator module +//========================================================== +#ifndef NRF_BALLOC_ENABLED +#define NRF_BALLOC_ENABLED 1 +#endif +// NRF_BALLOC_CONFIG_DEBUG_ENABLED - Enables debug mode in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_DEBUG_ENABLED +#define NRF_BALLOC_CONFIG_DEBUG_ENABLED 0 +#endif +// NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS - Number of words used as head guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS +#define NRF_BALLOC_CONFIG_HEAD_GUARD_WORDS 1 +#endif + +// NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS - Number of words used as tail guard. <0-255> + + +#ifndef NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS +#define NRF_BALLOC_CONFIG_TAIL_GUARD_WORDS 1 +#endif + +// NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED - Enables basic checks in this module. + + +#ifndef NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED +#define NRF_BALLOC_CONFIG_BASIC_CHECKS_ENABLED 0 +#endif + +// NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED - Enables double memory free check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DOUBLE_FREE_CHECK_ENABLED 0 +#endif + +// NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED - Enables free memory corruption check in this module. + + +#ifndef NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED +#define NRF_BALLOC_CONFIG_DATA_TRASHING_CHECK_ENABLED 0 +#endif + +// NRF_BALLOC_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_BALLOC_CLI_CMDS +#define NRF_BALLOC_CLI_CMDS 0 +#endif + +// + +// + +// NRF_FSTORAGE_ENABLED - nrf_fstorage - Flash abstraction library +//========================================================== +#ifndef NRF_FSTORAGE_ENABLED +#define NRF_FSTORAGE_ENABLED 1 +#endif +// nrf_fstorage - Common settings + +// Common settings to all fstorage implementations +//========================================================== +// NRF_FSTORAGE_PARAM_CHECK_DISABLED - Disable user input validation + + +// If selected, use ASSERT to validate user input. +// This effectively removes user input validation in production code. +// Recommended setting: OFF, only enable this setting if size is a major concern. + +#ifndef NRF_FSTORAGE_PARAM_CHECK_DISABLED +#define NRF_FSTORAGE_PARAM_CHECK_DISABLED 1 +#endif + +// +//========================================================== + +// nrf_fstorage_sd - Implementation using the SoftDevice + +// Configuration options for the fstorage implementation using the SoftDevice +//========================================================== +// NRF_FSTORAGE_SD_QUEUE_SIZE - Size of the internal queue of operations +// Increase this value if API calls frequently return the error @ref NRF_ERROR_NO_MEM. + +#ifndef NRF_FSTORAGE_SD_QUEUE_SIZE +#define NRF_FSTORAGE_SD_QUEUE_SIZE 16 +#endif + +// NRF_FSTORAGE_SD_MAX_RETRIES - Maximum number of attempts at executing an operation when the SoftDevice is busy +// Increase this value if events frequently return the @ref NRF_ERROR_TIMEOUT error. +// The SoftDevice might fail to schedule flash access due to high BLE activity. + +#ifndef NRF_FSTORAGE_SD_MAX_RETRIES +#define NRF_FSTORAGE_SD_MAX_RETRIES 8 +#endif + +// NRF_FSTORAGE_SD_MAX_WRITE_SIZE - Maximum number of bytes to be written to flash in a single operation +// This value must be a multiple of four. +// Lowering this value can increase the chances of the SoftDevice being able to execute flash operations in between radio activity. +// This value is bound by the maximum number of bytes that can be written to flash in a single call to @ref sd_flash_write. +// That is 1024 bytes for nRF51 ICs and 4096 bytes for nRF52 ICs. + +#ifndef NRF_FSTORAGE_SD_MAX_WRITE_SIZE +#define NRF_FSTORAGE_SD_MAX_WRITE_SIZE 20 +#endif + +// +//========================================================== + +// + +// NRF_MEMOBJ_ENABLED - nrf_memobj - Linked memory allocator module + + +#ifndef NRF_MEMOBJ_ENABLED +#define NRF_MEMOBJ_ENABLED 1 +#endif + +// NRF_QUEUE_ENABLED - nrf_queue - Queue module +//========================================================== +#ifndef NRF_QUEUE_ENABLED +#define NRF_QUEUE_ENABLED 0 +#endif +// NRF_QUEUE_CLI_CMDS - Enable CLI commands specific to the module + + +#ifndef NRF_QUEUE_CLI_CMDS +#define NRF_QUEUE_CLI_CMDS 0 +#endif + +// + +// NRF_SECTION_ITER_ENABLED - nrf_section_iter - Section iterator + + +#ifndef NRF_SECTION_ITER_ENABLED +#define NRF_SECTION_ITER_ENABLED 1 +#endif + +// NRF_STRERROR_ENABLED - nrf_strerror - Library for converting error code to string. + + +#ifndef NRF_STRERROR_ENABLED +#define NRF_STRERROR_ENABLED 1 +#endif + +// nrf_fprintf - fprintf function. + +//========================================================== +// NRF_FPRINTF_ENABLED - Enable/disable fprintf module. + + +#ifndef NRF_FPRINTF_ENABLED +#define NRF_FPRINTF_ENABLED 1 +#endif + +// NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED - For each printed LF, function will add CR. + + +#ifndef NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED +#define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1 +#endif + +// NRF_FPRINTF_DOUBLE_ENABLED - Enable IEEE-754 double precision formatting. + + +#ifndef NRF_FPRINTF_DOUBLE_ENABLED +#define NRF_FPRINTF_DOUBLE_ENABLED 0 +#endif + +// +//========================================================== + +// +//========================================================== + +// nRF_Log + +//========================================================== +// NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend +//========================================================== +#ifndef NRF_LOG_BACKEND_RTT_ENABLED +#define NRF_LOG_BACKEND_RTT_ENABLED 1 +#endif +// NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE - Size of buffer for partially processed strings. +// Size of the buffer is a trade-off between RAM usage and processing. +// if buffer is smaller then strings will often be fragmented. +// It is recommended to use size which will fit typical log and only the +// longer one will be fragmented. + +#ifndef NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE +#define NRF_LOG_BACKEND_RTT_TEMP_BUFFER_SIZE 64 +#endif + +// NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS - Period before retrying writing to RTT +#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS +#define NRF_LOG_BACKEND_RTT_TX_RETRY_DELAY_MS 1 +#endif + +// NRF_LOG_BACKEND_RTT_TX_RETRY_CNT - Writing to RTT retries. +// If RTT fails to accept any new data after retries +// module assumes that host is not active and on next +// request it will perform only one write attempt. +// On successful writing, module assumes that host is active +// and scheme with retry is applied again. + +#ifndef NRF_LOG_BACKEND_RTT_TX_RETRY_CNT +#define NRF_LOG_BACKEND_RTT_TX_RETRY_CNT 3 +#endif + +// + +// NRF_LOG_ENABLED - nrf_log - Logger +//========================================================== +#ifndef NRF_LOG_ENABLED +#define NRF_LOG_ENABLED 1 +#endif +// Log message pool - Configuration of log message pool + +//========================================================== +// NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. +// If a small value is set, then performance of logs processing +// is degraded because data is fragmented. Bigger value impacts +// RAM memory utilization. The size is set to fit a message with +// a timestamp and up to 2 arguments in a single memory object. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE +#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20 +#endif + +// NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects +// If a small value is set, then it may lead to a deadlock +// in certain cases if backend has high latency and holds +// multiple messages for long time. Bigger value impacts +// RAM memory usage. + +#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT +#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8 +#endif + +// +//========================================================== + +// NRF_LOG_ALLOW_OVERFLOW - Configures behavior when circular buffer is full. + + +// If set then oldest logs are overwritten. Otherwise a +// marker is injected informing about overflow. + +#ifndef NRF_LOG_ALLOW_OVERFLOW +#define NRF_LOG_ALLOW_OVERFLOW 1 +#endif + +// NRF_LOG_BUFSIZE - Size of the buffer for storing logs (in bytes). + + +// Must be power of 2 and multiple of 4. +// If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum. +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 +// <2048=> 2048 +// <4096=> 4096 +// <8192=> 8192 +// <16384=> 16384 + +#ifndef NRF_LOG_BUFSIZE +#define NRF_LOG_BUFSIZE 4096 +#endif + +// NRF_LOG_CLI_CMDS - Enable CLI commands for the module. + + +#ifndef NRF_LOG_CLI_CMDS +#define NRF_LOG_CLI_CMDS 0 +#endif + +// NRF_LOG_DEFAULT_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LOG_DEFAULT_LEVEL +#define NRF_LOG_DEFAULT_LEVEL 4 +#endif + +// NRF_LOG_DEFERRED - Enable deffered logger. + + +// Log data is buffered and can be processed in idle. + +#ifndef NRF_LOG_DEFERRED +#define NRF_LOG_DEFERRED 1 +#endif + +// NRF_LOG_FILTERS_ENABLED - Enable dynamic filtering of logs. + + +#ifndef NRF_LOG_FILTERS_ENABLED +#define NRF_LOG_FILTERS_ENABLED 0 +#endif + +// NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED - Enable use of critical region for non deffered mode when flushing logs. + + +// When enabled NRF_LOG_FLUSH is called from critical section when non deffered mode is used. +// Log output will never be corrupted as access to the log backend is exclusive +// but system will spend significant amount of time in critical section + +#ifndef NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED +#define NRF_LOG_NON_DEFFERED_CRITICAL_REGION_ENABLED 0 +#endif + +// NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// NRF_LOG_STR_PUSH_BUFFER_SIZE - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH. + +// <16=> 16 +// <32=> 32 +// <64=> 64 +// <128=> 128 +// <256=> 256 +// <512=> 512 +// <1024=> 1024 + +#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE +#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128 +#endif + +// NRF_LOG_USES_COLORS - If enabled then ANSI escape code for colors is prefixed to every string +//========================================================== +#ifndef NRF_LOG_USES_COLORS +#define NRF_LOG_USES_COLORS 0 +#endif +// NRF_LOG_COLOR_DEFAULT - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_COLOR_DEFAULT +#define NRF_LOG_COLOR_DEFAULT 0 +#endif + +// NRF_LOG_ERROR_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_ERROR_COLOR +#define NRF_LOG_ERROR_COLOR 2 +#endif + +// NRF_LOG_WARNING_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LOG_WARNING_COLOR +#define NRF_LOG_WARNING_COLOR 4 +#endif + +// + +// NRF_LOG_USES_TIMESTAMP - Enable timestamping + +// Function for getting the timestamp is provided by the user +//========================================================== +#ifndef NRF_LOG_USES_TIMESTAMP +#define NRF_LOG_USES_TIMESTAMP 0 +#endif +// NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY - Default frequency of the timestamp (in Hz) or 0 to use app_timer frequency. +#ifndef NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY +#define NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY 0 +#endif + +// + +// nrf_log module configuration + +//========================================================== +// nrf_log in nRF_Core + +//========================================================== +// NRF_MPU_LIB_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MPU_LIB_CONFIG_LOG_ENABLED +#define NRF_MPU_LIB_CONFIG_LOG_ENABLED 0 +#endif +// NRF_MPU_LIB_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MPU_LIB_CONFIG_LOG_LEVEL +#define NRF_MPU_LIB_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_MPU_LIB_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_INFO_COLOR +#define NRF_MPU_LIB_CONFIG_INFO_COLOR 0 +#endif + +// NRF_MPU_LIB_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MPU_LIB_CONFIG_DEBUG_COLOR +#define NRF_MPU_LIB_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_STACK_GUARD_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_STACK_GUARD_CONFIG_LOG_ENABLED +#define NRF_STACK_GUARD_CONFIG_LOG_ENABLED 0 +#endif +// NRF_STACK_GUARD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_STACK_GUARD_CONFIG_LOG_LEVEL +#define NRF_STACK_GUARD_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_STACK_GUARD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_INFO_COLOR +#define NRF_STACK_GUARD_CONFIG_INFO_COLOR 0 +#endif + +// NRF_STACK_GUARD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_STACK_GUARD_CONFIG_DEBUG_COLOR +#define NRF_STACK_GUARD_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// TASK_MANAGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TASK_MANAGER_CONFIG_LOG_ENABLED +#define TASK_MANAGER_CONFIG_LOG_ENABLED 0 +#endif +// TASK_MANAGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TASK_MANAGER_CONFIG_LOG_LEVEL +#define TASK_MANAGER_CONFIG_LOG_LEVEL 3 +#endif + +// TASK_MANAGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_INFO_COLOR +#define TASK_MANAGER_CONFIG_INFO_COLOR 0 +#endif + +// TASK_MANAGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TASK_MANAGER_CONFIG_DEBUG_COLOR +#define TASK_MANAGER_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// +//========================================================== + +// nrf_log in nRF_Drivers + +//========================================================== +// CLOCK_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef CLOCK_CONFIG_LOG_ENABLED +#define CLOCK_CONFIG_LOG_ENABLED 0 +#endif +// CLOCK_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef CLOCK_CONFIG_LOG_LEVEL +#define CLOCK_CONFIG_LOG_LEVEL 3 +#endif + +// CLOCK_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_INFO_COLOR +#define CLOCK_CONFIG_INFO_COLOR 0 +#endif + +// CLOCK_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef CLOCK_CONFIG_DEBUG_COLOR +#define CLOCK_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// COMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef COMP_CONFIG_LOG_ENABLED +#define COMP_CONFIG_LOG_ENABLED 0 +#endif +// COMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef COMP_CONFIG_LOG_LEVEL +#define COMP_CONFIG_LOG_LEVEL 3 +#endif + +// COMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_INFO_COLOR +#define COMP_CONFIG_INFO_COLOR 0 +#endif + +// COMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef COMP_CONFIG_DEBUG_COLOR +#define COMP_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// GPIOTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef GPIOTE_CONFIG_LOG_ENABLED +#define GPIOTE_CONFIG_LOG_ENABLED 0 +#endif +// GPIOTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef GPIOTE_CONFIG_LOG_LEVEL +#define GPIOTE_CONFIG_LOG_LEVEL 3 +#endif + +// GPIOTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_INFO_COLOR +#define GPIOTE_CONFIG_INFO_COLOR 0 +#endif + +// GPIOTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef GPIOTE_CONFIG_DEBUG_COLOR +#define GPIOTE_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// LPCOMP_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef LPCOMP_CONFIG_LOG_ENABLED +#define LPCOMP_CONFIG_LOG_ENABLED 0 +#endif +// LPCOMP_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef LPCOMP_CONFIG_LOG_LEVEL +#define LPCOMP_CONFIG_LOG_LEVEL 3 +#endif + +// LPCOMP_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_INFO_COLOR +#define LPCOMP_CONFIG_INFO_COLOR 0 +#endif + +// LPCOMP_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef LPCOMP_CONFIG_DEBUG_COLOR +#define LPCOMP_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// MAX3421E_HOST_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef MAX3421E_HOST_CONFIG_LOG_ENABLED +#define MAX3421E_HOST_CONFIG_LOG_ENABLED 0 +#endif +// MAX3421E_HOST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef MAX3421E_HOST_CONFIG_LOG_LEVEL +#define MAX3421E_HOST_CONFIG_LOG_LEVEL 3 +#endif + +// MAX3421E_HOST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_INFO_COLOR +#define MAX3421E_HOST_CONFIG_INFO_COLOR 0 +#endif + +// MAX3421E_HOST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef MAX3421E_HOST_CONFIG_DEBUG_COLOR +#define MAX3421E_HOST_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRFX_USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef NRFX_USBD_CONFIG_LOG_ENABLED +#define NRFX_USBD_CONFIG_LOG_ENABLED 0 +#endif +// NRFX_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRFX_USBD_CONFIG_LOG_LEVEL +#define NRFX_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// NRFX_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_INFO_COLOR +#define NRFX_USBD_CONFIG_INFO_COLOR 0 +#endif + +// NRFX_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRFX_USBD_CONFIG_DEBUG_COLOR +#define NRFX_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// PDM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PDM_CONFIG_LOG_ENABLED +#define PDM_CONFIG_LOG_ENABLED 0 +#endif +// PDM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PDM_CONFIG_LOG_LEVEL +#define PDM_CONFIG_LOG_LEVEL 3 +#endif + +// PDM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_INFO_COLOR +#define PDM_CONFIG_INFO_COLOR 0 +#endif + +// PDM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PDM_CONFIG_DEBUG_COLOR +#define PDM_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// PPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PPI_CONFIG_LOG_ENABLED +#define PPI_CONFIG_LOG_ENABLED 0 +#endif +// PPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PPI_CONFIG_LOG_LEVEL +#define PPI_CONFIG_LOG_LEVEL 3 +#endif + +// PPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_INFO_COLOR +#define PPI_CONFIG_INFO_COLOR 0 +#endif + +// PPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PPI_CONFIG_DEBUG_COLOR +#define PPI_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// PWM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef PWM_CONFIG_LOG_ENABLED +#define PWM_CONFIG_LOG_ENABLED 0 +#endif +// PWM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PWM_CONFIG_LOG_LEVEL +#define PWM_CONFIG_LOG_LEVEL 3 +#endif + +// PWM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_INFO_COLOR +#define PWM_CONFIG_INFO_COLOR 0 +#endif + +// PWM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PWM_CONFIG_DEBUG_COLOR +#define PWM_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// QDEC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef QDEC_CONFIG_LOG_ENABLED +#define QDEC_CONFIG_LOG_ENABLED 0 +#endif +// QDEC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef QDEC_CONFIG_LOG_LEVEL +#define QDEC_CONFIG_LOG_LEVEL 3 +#endif + +// QDEC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_INFO_COLOR +#define QDEC_CONFIG_INFO_COLOR 0 +#endif + +// QDEC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef QDEC_CONFIG_DEBUG_COLOR +#define QDEC_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// RNG_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RNG_CONFIG_LOG_ENABLED +#define RNG_CONFIG_LOG_ENABLED 0 +#endif +// RNG_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RNG_CONFIG_LOG_LEVEL +#define RNG_CONFIG_LOG_LEVEL 3 +#endif + +// RNG_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_INFO_COLOR +#define RNG_CONFIG_INFO_COLOR 0 +#endif + +// RNG_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RNG_CONFIG_DEBUG_COLOR +#define RNG_CONFIG_DEBUG_COLOR 0 +#endif + +// RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED - Enables logging of random numbers. + + +#ifndef RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED +#define RNG_CONFIG_RANDOM_NUMBER_LOG_ENABLED 0 +#endif + +// + +// RTC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef RTC_CONFIG_LOG_ENABLED +#define RTC_CONFIG_LOG_ENABLED 0 +#endif +// RTC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef RTC_CONFIG_LOG_LEVEL +#define RTC_CONFIG_LOG_LEVEL 3 +#endif + +// RTC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_INFO_COLOR +#define RTC_CONFIG_INFO_COLOR 0 +#endif + +// RTC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef RTC_CONFIG_DEBUG_COLOR +#define RTC_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// SAADC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SAADC_CONFIG_LOG_ENABLED +#define SAADC_CONFIG_LOG_ENABLED 0 +#endif +// SAADC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SAADC_CONFIG_LOG_LEVEL +#define SAADC_CONFIG_LOG_LEVEL 3 +#endif + +// SAADC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_INFO_COLOR +#define SAADC_CONFIG_INFO_COLOR 0 +#endif + +// SAADC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SAADC_CONFIG_DEBUG_COLOR +#define SAADC_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// SPIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPIS_CONFIG_LOG_ENABLED +#define SPIS_CONFIG_LOG_ENABLED 0 +#endif +// SPIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPIS_CONFIG_LOG_LEVEL +#define SPIS_CONFIG_LOG_LEVEL 3 +#endif + +// SPIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_INFO_COLOR +#define SPIS_CONFIG_INFO_COLOR 0 +#endif + +// SPIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPIS_CONFIG_DEBUG_COLOR +#define SPIS_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// SPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SPI_CONFIG_LOG_ENABLED +#define SPI_CONFIG_LOG_ENABLED 0 +#endif +// SPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SPI_CONFIG_LOG_LEVEL +#define SPI_CONFIG_LOG_LEVEL 3 +#endif + +// SPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_INFO_COLOR +#define SPI_CONFIG_INFO_COLOR 0 +#endif + +// SPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SPI_CONFIG_DEBUG_COLOR +#define SPI_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TIMER_CONFIG_LOG_ENABLED +#define TIMER_CONFIG_LOG_ENABLED 0 +#endif +// TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TIMER_CONFIG_LOG_LEVEL +#define TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_INFO_COLOR +#define TIMER_CONFIG_INFO_COLOR 0 +#endif + +// TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TIMER_CONFIG_DEBUG_COLOR +#define TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// TWIS_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWIS_CONFIG_LOG_ENABLED +#define TWIS_CONFIG_LOG_ENABLED 0 +#endif +// TWIS_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWIS_CONFIG_LOG_LEVEL +#define TWIS_CONFIG_LOG_LEVEL 3 +#endif + +// TWIS_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_INFO_COLOR +#define TWIS_CONFIG_INFO_COLOR 0 +#endif + +// TWIS_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWIS_CONFIG_DEBUG_COLOR +#define TWIS_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// TWI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef TWI_CONFIG_LOG_ENABLED +#define TWI_CONFIG_LOG_ENABLED 0 +#endif +// TWI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef TWI_CONFIG_LOG_LEVEL +#define TWI_CONFIG_LOG_LEVEL 3 +#endif + +// TWI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_INFO_COLOR +#define TWI_CONFIG_INFO_COLOR 0 +#endif + +// TWI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef TWI_CONFIG_DEBUG_COLOR +#define TWI_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef UART_CONFIG_LOG_ENABLED +#define UART_CONFIG_LOG_ENABLED 0 +#endif +// UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef UART_CONFIG_LOG_LEVEL +#define UART_CONFIG_LOG_LEVEL 3 +#endif + +// UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_INFO_COLOR +#define UART_CONFIG_INFO_COLOR 0 +#endif + +// UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef UART_CONFIG_DEBUG_COLOR +#define UART_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// USBD_CONFIG_LOG_ENABLED - Enable logging in the module +//========================================================== +#ifndef USBD_CONFIG_LOG_ENABLED +#define USBD_CONFIG_LOG_ENABLED 0 +#endif +// USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef USBD_CONFIG_LOG_LEVEL +#define USBD_CONFIG_LOG_LEVEL 3 +#endif + +// USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_INFO_COLOR +#define USBD_CONFIG_INFO_COLOR 0 +#endif + +// USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef USBD_CONFIG_DEBUG_COLOR +#define USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// WDT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef WDT_CONFIG_LOG_ENABLED +#define WDT_CONFIG_LOG_ENABLED 0 +#endif +// WDT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef WDT_CONFIG_LOG_LEVEL +#define WDT_CONFIG_LOG_LEVEL 3 +#endif + +// WDT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_INFO_COLOR +#define WDT_CONFIG_INFO_COLOR 0 +#endif + +// WDT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef WDT_CONFIG_DEBUG_COLOR +#define WDT_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// +//========================================================== + +// nrf_log in nRF_Libraries + +//========================================================== +// APP_BUTTON_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_BUTTON_CONFIG_LOG_ENABLED +#define APP_BUTTON_CONFIG_LOG_ENABLED 0 +#endif +// APP_BUTTON_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_LOG_LEVEL +#define APP_BUTTON_CONFIG_LOG_LEVEL 3 +#endif + +// APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// If module generates a lot of logs, initial log level can +// be decreased to prevent flooding. Severity level can be +// increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL +#define APP_BUTTON_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// APP_BUTTON_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_INFO_COLOR +#define APP_BUTTON_CONFIG_INFO_COLOR 0 +#endif + +// APP_BUTTON_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_BUTTON_CONFIG_DEBUG_COLOR +#define APP_BUTTON_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_TIMER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_TIMER_CONFIG_LOG_ENABLED +#define APP_TIMER_CONFIG_LOG_ENABLED 0 +#endif +// APP_TIMER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_LOG_LEVEL +#define APP_TIMER_CONFIG_LOG_LEVEL 3 +#endif + +// APP_TIMER_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// If module generates a lot of logs, initial log level can +// be decreased to prevent flooding. Severity level can be +// increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_TIMER_CONFIG_INITIAL_LOG_LEVEL +#define APP_TIMER_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// APP_TIMER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_INFO_COLOR +#define APP_TIMER_CONFIG_INFO_COLOR 0 +#endif + +// APP_TIMER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_TIMER_CONFIG_DEBUG_COLOR +#define APP_TIMER_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED +#define APP_USBD_CDC_ACM_CONFIG_LOG_ENABLED 0 +#endif +// APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL +#define APP_USBD_CDC_ACM_CONFIG_LOG_LEVEL 3 +#endif + +// APP_USBD_CDC_ACM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_INFO_COLOR +#define APP_USBD_CDC_ACM_CONFIG_INFO_COLOR 0 +#endif + +// APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR +#define APP_USBD_CDC_ACM_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_USBD_CONFIG_LOG_ENABLED - Enable logging in the module. +//========================================================== +#ifndef APP_USBD_CONFIG_LOG_ENABLED +#define APP_USBD_CONFIG_LOG_ENABLED 0 +#endif +// APP_USBD_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_CONFIG_LOG_LEVEL +#define APP_USBD_CONFIG_LOG_LEVEL 3 +#endif + +// APP_USBD_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_INFO_COLOR +#define APP_USBD_CONFIG_INFO_COLOR 0 +#endif + +// APP_USBD_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_CONFIG_DEBUG_COLOR +#define APP_USBD_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_USBD_DUMMY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_DUMMY_CONFIG_LOG_ENABLED +#define APP_USBD_DUMMY_CONFIG_LOG_ENABLED 0 +#endif +// APP_USBD_DUMMY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_DUMMY_CONFIG_LOG_LEVEL +#define APP_USBD_DUMMY_CONFIG_LOG_LEVEL 3 +#endif + +// APP_USBD_DUMMY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_INFO_COLOR +#define APP_USBD_DUMMY_CONFIG_INFO_COLOR 0 +#endif + +// APP_USBD_DUMMY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_DUMMY_CONFIG_DEBUG_COLOR +#define APP_USBD_DUMMY_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_USBD_MSC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_MSC_CONFIG_LOG_ENABLED +#define APP_USBD_MSC_CONFIG_LOG_ENABLED 0 +#endif +// APP_USBD_MSC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_MSC_CONFIG_LOG_LEVEL +#define APP_USBD_MSC_CONFIG_LOG_LEVEL 3 +#endif + +// APP_USBD_MSC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_INFO_COLOR +#define APP_USBD_MSC_CONFIG_INFO_COLOR 0 +#endif + +// APP_USBD_MSC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_MSC_CONFIG_DEBUG_COLOR +#define APP_USBD_MSC_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_ENABLED 0 +#endif +// APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_LOG_LEVEL 3 +#endif + +// APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_INFO_COLOR 0 +#endif + +// APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR +#define APP_USBD_NRF_DFU_TRIGGER_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_ATFIFO_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_ATFIFO_CONFIG_LOG_ENABLED +#define NRF_ATFIFO_CONFIG_LOG_ENABLED 0 +#endif +// NRF_ATFIFO_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_ATFIFO_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// NRF_ATFIFO_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_INFO_COLOR +#define NRF_ATFIFO_CONFIG_INFO_COLOR 0 +#endif + +// NRF_ATFIFO_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_ATFIFO_CONFIG_DEBUG_COLOR +#define NRF_ATFIFO_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_BALLOC_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BALLOC_CONFIG_LOG_ENABLED +#define NRF_BALLOC_CONFIG_LOG_ENABLED 0 +#endif +// NRF_BALLOC_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_LOG_LEVEL +#define NRF_BALLOC_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL - Initial severity level if dynamic filtering is enabled. + + +// If module generates a lot of logs, initial log level can +// be decreased to prevent flooding. Severity level can be +// increased on instance basis. +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL +#define NRF_BALLOC_CONFIG_INITIAL_LOG_LEVEL 3 +#endif + +// NRF_BALLOC_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_INFO_COLOR +#define NRF_BALLOC_CONFIG_INFO_COLOR 0 +#endif + +// NRF_BALLOC_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BALLOC_CONFIG_DEBUG_COLOR +#define NRF_BALLOC_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_ENABLED 0 +#endif +// NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_EMPTY_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_INFO_COLOR 0 +#endif + +// NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_EMPTY_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_ENABLED 0 +#endif +// NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_QSPI_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_INFO_COLOR 0 +#endif + +// NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_QSPI_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_ENABLED 0 +#endif +// NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_BLOCK_DEV_RAM_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_INFO_COLOR 0 +#endif + +// NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR +#define NRF_BLOCK_DEV_RAM_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_BLE_UART_CONFIG_LOG_ENABLED 0 +#endif +// NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_BLE_UART_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_CLI_BLE_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_INFO_COLOR +#define NRF_CLI_BLE_UART_CONFIG_INFO_COLOR 0 +#endif + +// NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_BLE_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_CLI_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_CLI_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_CLI_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_CLI_UART_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_CLI_UART_CONFIG_LOG_ENABLED +#define NRF_CLI_UART_CONFIG_LOG_ENABLED 0 +#endif +// NRF_CLI_UART_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_CLI_UART_CONFIG_LOG_LEVEL +#define NRF_CLI_UART_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_CLI_UART_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_INFO_COLOR +#define NRF_CLI_UART_CONFIG_INFO_COLOR 0 +#endif + +// NRF_CLI_UART_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_CLI_UART_CONFIG_DEBUG_COLOR +#define NRF_CLI_UART_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_LIBUARTE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_LIBUARTE_CONFIG_LOG_ENABLED +#define NRF_LIBUARTE_CONFIG_LOG_ENABLED 0 +#endif +// NRF_LIBUARTE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_LIBUARTE_CONFIG_LOG_LEVEL +#define NRF_LIBUARTE_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_LIBUARTE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_INFO_COLOR +#define NRF_LIBUARTE_CONFIG_INFO_COLOR 0 +#endif + +// NRF_LIBUARTE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_LIBUARTE_CONFIG_DEBUG_COLOR +#define NRF_LIBUARTE_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_MEMOBJ_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_MEMOBJ_CONFIG_LOG_ENABLED +#define NRF_MEMOBJ_CONFIG_LOG_ENABLED 0 +#endif +// NRF_MEMOBJ_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_MEMOBJ_CONFIG_LOG_LEVEL +#define NRF_MEMOBJ_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_MEMOBJ_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_INFO_COLOR +#define NRF_MEMOBJ_CONFIG_INFO_COLOR 0 +#endif + +// NRF_MEMOBJ_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_MEMOBJ_CONFIG_DEBUG_COLOR +#define NRF_MEMOBJ_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_PWR_MGMT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_PWR_MGMT_CONFIG_LOG_ENABLED +#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED 0 +#endif +// NRF_PWR_MGMT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_PWR_MGMT_CONFIG_LOG_LEVEL +#define NRF_PWR_MGMT_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_PWR_MGMT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_INFO_COLOR +#define NRF_PWR_MGMT_CONFIG_INFO_COLOR 0 +#endif + +// NRF_PWR_MGMT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_PWR_MGMT_CONFIG_DEBUG_COLOR +#define NRF_PWR_MGMT_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_QUEUE_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_QUEUE_CONFIG_LOG_ENABLED +#define NRF_QUEUE_CONFIG_LOG_ENABLED 0 +#endif +// NRF_QUEUE_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_LEVEL +#define NRF_QUEUE_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL - Initial severity level if dynamic filtering is enabled + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL +#define NRF_QUEUE_CONFIG_LOG_INIT_FILTER_LEVEL 3 +#endif + +// NRF_QUEUE_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_INFO_COLOR +#define NRF_QUEUE_CONFIG_INFO_COLOR 0 +#endif + +// NRF_QUEUE_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_QUEUE_CONFIG_DEBUG_COLOR +#define NRF_QUEUE_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_SDH_ANT_LOG_ENABLED - Enable logging in SoftDevice handler (ANT) module. +//========================================================== +#ifndef NRF_SDH_ANT_LOG_ENABLED +#define NRF_SDH_ANT_LOG_ENABLED 0 +#endif +// NRF_SDH_ANT_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_ANT_LOG_LEVEL +#define NRF_SDH_ANT_LOG_LEVEL 3 +#endif + +// NRF_SDH_ANT_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_INFO_COLOR +#define NRF_SDH_ANT_INFO_COLOR 0 +#endif + +// NRF_SDH_ANT_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_ANT_DEBUG_COLOR +#define NRF_SDH_ANT_DEBUG_COLOR 0 +#endif + +// + +// NRF_SDH_BLE_LOG_ENABLED - Enable logging in SoftDevice handler (BLE) module. +//========================================================== +#ifndef NRF_SDH_BLE_LOG_ENABLED +#define NRF_SDH_BLE_LOG_ENABLED 1 +#endif +// NRF_SDH_BLE_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_BLE_LOG_LEVEL +#define NRF_SDH_BLE_LOG_LEVEL 3 +#endif + +// NRF_SDH_BLE_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_INFO_COLOR +#define NRF_SDH_BLE_INFO_COLOR 0 +#endif + +// NRF_SDH_BLE_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_BLE_DEBUG_COLOR +#define NRF_SDH_BLE_DEBUG_COLOR 0 +#endif + +// + +// NRF_SDH_LOG_ENABLED - Enable logging in SoftDevice handler module. +//========================================================== +#ifndef NRF_SDH_LOG_ENABLED +#define NRF_SDH_LOG_ENABLED 1 +#endif +// NRF_SDH_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_LOG_LEVEL +#define NRF_SDH_LOG_LEVEL 3 +#endif + +// NRF_SDH_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_INFO_COLOR +#define NRF_SDH_INFO_COLOR 0 +#endif + +// NRF_SDH_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_DEBUG_COLOR +#define NRF_SDH_DEBUG_COLOR 0 +#endif + +// + +// NRF_SDH_SOC_LOG_ENABLED - Enable logging in SoftDevice handler (SoC) module. +//========================================================== +#ifndef NRF_SDH_SOC_LOG_ENABLED +#define NRF_SDH_SOC_LOG_ENABLED 1 +#endif +// NRF_SDH_SOC_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SDH_SOC_LOG_LEVEL +#define NRF_SDH_SOC_LOG_LEVEL 3 +#endif + +// NRF_SDH_SOC_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_INFO_COLOR +#define NRF_SDH_SOC_INFO_COLOR 0 +#endif + +// NRF_SDH_SOC_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SDH_SOC_DEBUG_COLOR +#define NRF_SDH_SOC_DEBUG_COLOR 0 +#endif + +// + +// NRF_SORTLIST_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_SORTLIST_CONFIG_LOG_ENABLED +#define NRF_SORTLIST_CONFIG_LOG_ENABLED 0 +#endif +// NRF_SORTLIST_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_SORTLIST_CONFIG_LOG_LEVEL +#define NRF_SORTLIST_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_SORTLIST_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_INFO_COLOR +#define NRF_SORTLIST_CONFIG_INFO_COLOR 0 +#endif + +// NRF_SORTLIST_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_SORTLIST_CONFIG_DEBUG_COLOR +#define NRF_SORTLIST_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// NRF_TWI_SENSOR_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_ENABLED +#define NRF_TWI_SENSOR_CONFIG_LOG_ENABLED 0 +#endif +// NRF_TWI_SENSOR_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef NRF_TWI_SENSOR_CONFIG_LOG_LEVEL +#define NRF_TWI_SENSOR_CONFIG_LOG_LEVEL 3 +#endif + +// NRF_TWI_SENSOR_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_INFO_COLOR +#define NRF_TWI_SENSOR_CONFIG_INFO_COLOR 0 +#endif + +// NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR +#define NRF_TWI_SENSOR_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// PM_LOG_ENABLED - Enable logging in Peer Manager and its submodules. +//========================================================== +#ifndef PM_LOG_ENABLED +#define PM_LOG_ENABLED 1 +#endif +// PM_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef PM_LOG_LEVEL +#define PM_LOG_LEVEL 3 +#endif + +// PM_LOG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_INFO_COLOR +#define PM_LOG_INFO_COLOR 0 +#endif + +// PM_LOG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef PM_LOG_DEBUG_COLOR +#define PM_LOG_DEBUG_COLOR 0 +#endif + +// + +// +//========================================================== + +// nrf_log in nRF_Serialization + +//========================================================== +// SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED - Enables logging in the module. +//========================================================== +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED +#define SER_HAL_TRANSPORT_CONFIG_LOG_ENABLED 0 +#endif +// SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL - Default Severity level + +// <0=> Off +// <1=> Error +// <2=> Warning +// <3=> Info +// <4=> Debug + +#ifndef SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL +#define SER_HAL_TRANSPORT_CONFIG_LOG_LEVEL 3 +#endif + +// SER_HAL_TRANSPORT_CONFIG_INFO_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_INFO_COLOR +#define SER_HAL_TRANSPORT_CONFIG_INFO_COLOR 0 +#endif + +// SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR - ANSI escape code prefix. + +// <0=> Default +// <1=> Black +// <2=> Red +// <3=> Green +// <4=> Yellow +// <5=> Blue +// <6=> Magenta +// <7=> Cyan +// <8=> White + +#ifndef SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR +#define SER_HAL_TRANSPORT_CONFIG_DEBUG_COLOR 0 +#endif + +// + +// +//========================================================== + +// +//========================================================== + +// + +// NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED - nrf_log_str_formatter - Log string formatter + + +#ifndef NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED +#define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1 +#endif + +// +//========================================================== + +// nRF_Segger_RTT + +//========================================================== +// segger_rtt - SEGGER RTT + +//========================================================== +// SEGGER_RTT_CONFIG_BUFFER_SIZE_UP - Size of upstream buffer. +// Note that either @ref NRF_LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE +// or this value is actually used. It depends on which one is bigger. + +#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_UP +#define SEGGER_RTT_CONFIG_BUFFER_SIZE_UP 4096 +#endif + +// SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS - Maximum number of upstream buffers. +#ifndef SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS +#define SEGGER_RTT_CONFIG_MAX_NUM_UP_BUFFERS 2 +#endif + +// SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN - Size of downstream buffer. +#ifndef SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN +#define SEGGER_RTT_CONFIG_BUFFER_SIZE_DOWN 16 +#endif + +// SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS - Maximum number of downstream buffers. +#ifndef SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS +#define SEGGER_RTT_CONFIG_MAX_NUM_DOWN_BUFFERS 2 +#endif + +// SEGGER_RTT_CONFIG_DEFAULT_MODE - RTT behavior if the buffer is full. + + +// The following modes are supported: +// - SKIP - Do not block, output nothing. +// - TRIM - Do not block, output as much as fits. +// - BLOCK - Wait until there is space in the buffer. +// <0=> SKIP +// <1=> TRIM +// <2=> BLOCK_IF_FIFO_FULL + +#ifndef SEGGER_RTT_CONFIG_DEFAULT_MODE +#define SEGGER_RTT_CONFIG_DEFAULT_MODE 0 +#endif + +// +//========================================================== + +// +//========================================================== + +// nRF_SoftDevice + +//========================================================== +// NRF_SDH_BLE_ENABLED - nrf_sdh_ble - SoftDevice BLE event handler +//========================================================== +#ifndef NRF_SDH_BLE_ENABLED +#define NRF_SDH_BLE_ENABLED 1 +#endif +// BLE Stack configuration - Stack configuration parameters + +// The SoftDevice handler will configure the stack with these parameters when calling @ref nrf_sdh_ble_default_cfg_set. +// Other libraries might depend on these values; keep them up-to-date even if you are not explicitely calling @ref nrf_sdh_ble_default_cfg_set. +//========================================================== +// NRF_SDH_BLE_GAP_DATA_LENGTH <27-251> + + +// Requested BLE GAP data length to be negotiated. + +#ifndef NRF_SDH_BLE_GAP_DATA_LENGTH +#define NRF_SDH_BLE_GAP_DATA_LENGTH 27 +#endif + +// NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. +#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT +#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 1 +#endif + +// NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. +#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT +#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 0 +#endif + +// NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. +// Maximum number of total concurrent connections using the default configuration. + +#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT +#define NRF_SDH_BLE_TOTAL_LINK_COUNT 1 +#endif + +// NRF_SDH_BLE_GAP_EVENT_LENGTH - GAP event length. +// The time set aside for this connection on every connection interval in 1.25 ms units. + +#ifndef NRF_SDH_BLE_GAP_EVENT_LENGTH +#define NRF_SDH_BLE_GAP_EVENT_LENGTH 6 +#endif + +// NRF_SDH_BLE_GATT_MAX_MTU_SIZE - Static maximum MTU size. +#ifndef NRF_SDH_BLE_GATT_MAX_MTU_SIZE +#define NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247 +#endif + +// NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE - Attribute Table size in bytes. The size must be a multiple of 4. +#ifndef NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE +#define NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE 1408 +#endif + +// NRF_SDH_BLE_VS_UUID_COUNT - The number of vendor-specific UUIDs. +#ifndef NRF_SDH_BLE_VS_UUID_COUNT +#define NRF_SDH_BLE_VS_UUID_COUNT 1 +#endif + +// NRF_SDH_BLE_SERVICE_CHANGED - Include the Service Changed characteristic in the Attribute Table. + + +#ifndef NRF_SDH_BLE_SERVICE_CHANGED +#define NRF_SDH_BLE_SERVICE_CHANGED 0 + +#endif + +// +//========================================================== + +// BLE Observers - Observers and priority levels + +//========================================================== +// NRF_SDH_BLE_OBSERVER_PRIO_LEVELS - Total number of priority levels for BLE observers. +// This setting configures the number of priority levels available for BLE event handlers. +// The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_BLE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_BLE_OBSERVER_PRIO_LEVELS 4 +#endif + +// BLE Observers priorities - Invididual priorities + +//========================================================== +// BLE_ADV_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Advertising module. + +#ifndef BLE_ADV_BLE_OBSERVER_PRIO +#define BLE_ADV_BLE_OBSERVER_PRIO 1 +#endif + +// BLE_ANCS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Apple Notification Service Client. + +#ifndef BLE_ANCS_C_BLE_OBSERVER_PRIO +#define BLE_ANCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_ANS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Alert Notification Service Client. + +#ifndef BLE_ANS_C_BLE_OBSERVER_PRIO +#define BLE_ANS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_BAS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Battery Service. + +#ifndef BLE_BAS_BLE_OBSERVER_PRIO +#define BLE_BAS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_BAS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Battery Service Client. + +#ifndef BLE_BAS_C_BLE_OBSERVER_PRIO +#define BLE_BAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_BPS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Blood Pressure Service. + +#ifndef BLE_BPS_BLE_OBSERVER_PRIO +#define BLE_BPS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Connection parameters module. + +#ifndef BLE_CONN_PARAMS_BLE_OBSERVER_PRIO +#define BLE_CONN_PARAMS_BLE_OBSERVER_PRIO 1 +#endif + +// BLE_CONN_STATE_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Connection State module. + +#ifndef BLE_CONN_STATE_BLE_OBSERVER_PRIO +#define BLE_CONN_STATE_BLE_OBSERVER_PRIO 0 +#endif + +// BLE_CSCS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Cycling Speed and Cadence Service. + +#ifndef BLE_CSCS_BLE_OBSERVER_PRIO +#define BLE_CSCS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_CTS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Current Time Service Client. + +#ifndef BLE_CTS_C_BLE_OBSERVER_PRIO +#define BLE_CTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_DB_DISC_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Database Discovery module. + +#ifndef BLE_DB_DISC_BLE_OBSERVER_PRIO +#define BLE_DB_DISC_BLE_OBSERVER_PRIO 1 +#endif + +// BLE_DFU_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_BLE_OBSERVER_PRIO +#define BLE_DFU_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_DIS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Device Information Client. + +#ifndef BLE_DIS_C_BLE_OBSERVER_PRIO +#define BLE_DIS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_GLS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Glucose Service. + +#ifndef BLE_GLS_BLE_OBSERVER_PRIO +#define BLE_GLS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_HIDS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Human Interface Device Service. + +#ifndef BLE_HIDS_BLE_OBSERVER_PRIO +#define BLE_HIDS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_HRS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Heart Rate Service. + +#ifndef BLE_HRS_BLE_OBSERVER_PRIO +#define BLE_HRS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_HRS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Heart Rate Service Client. + +#ifndef BLE_HRS_C_BLE_OBSERVER_PRIO +#define BLE_HRS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_HTS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Health Thermometer Service. + +#ifndef BLE_HTS_BLE_OBSERVER_PRIO +#define BLE_HTS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_IAS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Immediate Alert Service. + +#ifndef BLE_IAS_BLE_OBSERVER_PRIO +#define BLE_IAS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_IAS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Immediate Alert Service Client. + +#ifndef BLE_IAS_C_BLE_OBSERVER_PRIO +#define BLE_IAS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_LBS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the LED Button Service. + +#ifndef BLE_LBS_BLE_OBSERVER_PRIO +#define BLE_LBS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_LBS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the LED Button Service Client. + +#ifndef BLE_LBS_C_BLE_OBSERVER_PRIO +#define BLE_LBS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_LLS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Link Loss Service. + +#ifndef BLE_LLS_BLE_OBSERVER_PRIO +#define BLE_LLS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_LNS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Location Navigation Service. + +#ifndef BLE_LNS_BLE_OBSERVER_PRIO +#define BLE_LNS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_NUS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the UART Service. + +#ifndef BLE_NUS_BLE_OBSERVER_PRIO +#define BLE_NUS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_NUS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the UART Central Service. + +#ifndef BLE_NUS_C_BLE_OBSERVER_PRIO +#define BLE_NUS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_OTS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Object transfer service. + +#ifndef BLE_OTS_BLE_OBSERVER_PRIO +#define BLE_OTS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_OTS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Object transfer service client. + +#ifndef BLE_OTS_C_BLE_OBSERVER_PRIO +#define BLE_OTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_RSCS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Running Speed and Cadence Service. + +#ifndef BLE_RSCS_BLE_OBSERVER_PRIO +#define BLE_RSCS_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_RSCS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Running Speed and Cadence Client. + +#ifndef BLE_RSCS_C_BLE_OBSERVER_PRIO +#define BLE_RSCS_C_BLE_OBSERVER_PRIO 2 +#endif + +// BLE_TPS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the TX Power Service. + +#ifndef BLE_TPS_BLE_OBSERVER_PRIO +#define BLE_TPS_BLE_OBSERVER_PRIO 2 +#endif + +// BSP_BTN_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Button Control module. + +#ifndef BSP_BTN_BLE_OBSERVER_PRIO +#define BSP_BTN_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the NFC pairing library. + +#ifndef NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO +#define NFC_BLE_PAIR_LIB_BLE_OBSERVER_PRIO 1 +#endif + +// NRF_BLE_BMS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Bond Management Service. + +#ifndef NRF_BLE_BMS_BLE_OBSERVER_PRIO +#define NRF_BLE_BMS_BLE_OBSERVER_PRIO 2 +#endif + +// NRF_BLE_CGMS_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Contiuon Glucose Monitoring Service. + +#ifndef NRF_BLE_CGMS_BLE_OBSERVER_PRIO +#define NRF_BLE_CGMS_BLE_OBSERVER_PRIO 2 +#endif + +// NRF_BLE_ES_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Eddystone module. + +#ifndef NRF_BLE_ES_BLE_OBSERVER_PRIO +#define NRF_BLE_ES_BLE_OBSERVER_PRIO 2 +#endif + +// NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the GATT Service Client. + +#ifndef NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO +#define NRF_BLE_GATTS_C_BLE_OBSERVER_PRIO 2 +#endif + +// NRF_BLE_GATT_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the GATT module. + +#ifndef NRF_BLE_GATT_BLE_OBSERVER_PRIO +#define NRF_BLE_GATT_BLE_OBSERVER_PRIO 1 +#endif + +// NRF_BLE_GQ_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the GATT Queue module. + +#ifndef NRF_BLE_GQ_BLE_OBSERVER_PRIO +#define NRF_BLE_GQ_BLE_OBSERVER_PRIO 1 +#endif + +// NRF_BLE_QWR_BLE_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the Queued writes module. + +#ifndef NRF_BLE_QWR_BLE_OBSERVER_PRIO +#define NRF_BLE_QWR_BLE_OBSERVER_PRIO 2 +#endif + +// NRF_BLE_SCAN_OBSERVER_PRIO +// Priority for dispatching the BLE events to the Scanning Module. + +#ifndef NRF_BLE_SCAN_OBSERVER_PRIO +#define NRF_BLE_SCAN_OBSERVER_PRIO 1 +#endif + +// PM_BLE_OBSERVER_PRIO - Priority with which BLE events are dispatched to the Peer Manager module. +#ifndef PM_BLE_OBSERVER_PRIO +#define PM_BLE_OBSERVER_PRIO 1 +#endif + +// +//========================================================== + +// +//========================================================== + + +// + +// NRF_SDH_ENABLED - nrf_sdh - SoftDevice handler +//========================================================== +#ifndef NRF_SDH_ENABLED +#define NRF_SDH_ENABLED 1 +#endif +// Dispatch model + +// This setting configures how Stack events are dispatched to the application. +//========================================================== +// NRF_SDH_DISPATCH_MODEL + + +// NRF_SDH_DISPATCH_MODEL_INTERRUPT: SoftDevice events are passed to the application from the interrupt context. +// NRF_SDH_DISPATCH_MODEL_APPSH: SoftDevice events are scheduled using @ref app_scheduler. +// NRF_SDH_DISPATCH_MODEL_POLLING: SoftDevice events are to be fetched manually. +// <0=> NRF_SDH_DISPATCH_MODEL_INTERRUPT +// <1=> NRF_SDH_DISPATCH_MODEL_APPSH +// <2=> NRF_SDH_DISPATCH_MODEL_POLLING + +#ifndef NRF_SDH_DISPATCH_MODEL +#define NRF_SDH_DISPATCH_MODEL 0 +#endif + +// +//========================================================== + +// Clock - SoftDevice clock configuration + +//========================================================== +// NRF_SDH_CLOCK_LF_SRC - SoftDevice clock source. + +// <0=> NRF_CLOCK_LF_SRC_RC +// <1=> NRF_CLOCK_LF_SRC_XTAL +// <2=> NRF_CLOCK_LF_SRC_SYNTH + +#ifndef NRF_SDH_CLOCK_LF_SRC +#define NRF_SDH_CLOCK_LF_SRC 1 +#endif + +// NRF_SDH_CLOCK_LF_RC_CTIV - SoftDevice calibration timer interval. +#ifndef NRF_SDH_CLOCK_LF_RC_CTIV +#define NRF_SDH_CLOCK_LF_RC_CTIV 0 +#endif + +// NRF_SDH_CLOCK_LF_RC_TEMP_CTIV - SoftDevice calibration timer interval under constant temperature. +// How often (in number of calibration intervals) the RC oscillator shall be calibrated +// if the temperature has not changed. + +#ifndef NRF_SDH_CLOCK_LF_RC_TEMP_CTIV +#define NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 0 +#endif + +// NRF_SDH_CLOCK_LF_ACCURACY - External clock accuracy used in the LL to compute timing. + +// <0=> NRF_CLOCK_LF_ACCURACY_250_PPM +// <1=> NRF_CLOCK_LF_ACCURACY_500_PPM +// <2=> NRF_CLOCK_LF_ACCURACY_150_PPM +// <3=> NRF_CLOCK_LF_ACCURACY_100_PPM +// <4=> NRF_CLOCK_LF_ACCURACY_75_PPM +// <5=> NRF_CLOCK_LF_ACCURACY_50_PPM +// <6=> NRF_CLOCK_LF_ACCURACY_30_PPM +// <7=> NRF_CLOCK_LF_ACCURACY_20_PPM +// <8=> NRF_CLOCK_LF_ACCURACY_10_PPM +// <9=> NRF_CLOCK_LF_ACCURACY_5_PPM +// <10=> NRF_CLOCK_LF_ACCURACY_2_PPM +// <11=> NRF_CLOCK_LF_ACCURACY_1_PPM + +#ifndef NRF_SDH_CLOCK_LF_ACCURACY +#define NRF_SDH_CLOCK_LF_ACCURACY 7 +#endif + +// +//========================================================== + +// SDH Observers - Observers and priority levels + +//========================================================== +// NRF_SDH_REQ_OBSERVER_PRIO_LEVELS - Total number of priority levels for request observers. +// This setting configures the number of priority levels available for the SoftDevice request event handlers. +// The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_REQ_OBSERVER_PRIO_LEVELS +#define NRF_SDH_REQ_OBSERVER_PRIO_LEVELS 2 +#endif + +// NRF_SDH_STATE_OBSERVER_PRIO_LEVELS - Total number of priority levels for state observers. +// This setting configures the number of priority levels available for the SoftDevice state event handlers. +// The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STATE_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STATE_OBSERVER_PRIO_LEVELS 2 +#endif + +// NRF_SDH_STACK_OBSERVER_PRIO_LEVELS - Total number of priority levels for stack event observers. +// This setting configures the number of priority levels available for the SoftDevice stack event handlers (ANT, BLE, SoC). +// The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_STACK_OBSERVER_PRIO_LEVELS +#define NRF_SDH_STACK_OBSERVER_PRIO_LEVELS 2 +#endif + + +// State Observers priorities - Invididual priorities + +//========================================================== +// CLOCK_CONFIG_STATE_OBSERVER_PRIO +// Priority with which state events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_STATE_OBSERVER_PRIO +#define CLOCK_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// POWER_CONFIG_STATE_OBSERVER_PRIO +// Priority with which state events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_STATE_OBSERVER_PRIO +#define POWER_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// RNG_CONFIG_STATE_OBSERVER_PRIO +// Priority with which state events are dispatched to this module. + +#ifndef RNG_CONFIG_STATE_OBSERVER_PRIO +#define RNG_CONFIG_STATE_OBSERVER_PRIO 0 +#endif + +// +//========================================================== + +// Stack Event Observers priorities - Invididual priorities + +//========================================================== +// NRF_SDH_ANT_STACK_OBSERVER_PRIO +// This setting configures the priority with which ANT events are processed with respect to other events coming from the stack. +// Modify this setting if you need to have ANT events dispatched before or after other stack events, such as BLE or SoC. +// Zero is the highest priority. + +#ifndef NRF_SDH_ANT_STACK_OBSERVER_PRIO +#define NRF_SDH_ANT_STACK_OBSERVER_PRIO 0 +#endif + +// NRF_SDH_BLE_STACK_OBSERVER_PRIO +// This setting configures the priority with which BLE events are processed with respect to other events coming from the stack. +// Modify this setting if you need to have BLE events dispatched before or after other stack events, such as ANT or SoC. +// Zero is the highest priority. + +#ifndef NRF_SDH_BLE_STACK_OBSERVER_PRIO +#define NRF_SDH_BLE_STACK_OBSERVER_PRIO 0 +#endif + +// NRF_SDH_SOC_STACK_OBSERVER_PRIO +// This setting configures the priority with which SoC events are processed with respect to other events coming from the stack. +// Modify this setting if you need to have SoC events dispatched before or after other stack events, such as ANT or BLE. +// Zero is the highest priority. + +#ifndef NRF_SDH_SOC_STACK_OBSERVER_PRIO +#define NRF_SDH_SOC_STACK_OBSERVER_PRIO 0 +#endif + +// +//========================================================== + +// +//========================================================== + + +// + +// NRF_SDH_SOC_ENABLED - nrf_sdh_soc - SoftDevice SoC event handler +//========================================================== +#ifndef NRF_SDH_SOC_ENABLED +#define NRF_SDH_SOC_ENABLED 1 +#endif +// SoC Observers - Observers and priority levels + +//========================================================== +// NRF_SDH_SOC_OBSERVER_PRIO_LEVELS - Total number of priority levels for SoC observers. +// This setting configures the number of priority levels available for the SoC event handlers. +// The priority level of a handler determines the order in which it receives events, with respect to other handlers. + +#ifndef NRF_SDH_SOC_OBSERVER_PRIO_LEVELS +#define NRF_SDH_SOC_OBSERVER_PRIO_LEVELS 2 +#endif + +// SoC Observers priorities - Invididual priorities + +//========================================================== +// BLE_DFU_SOC_OBSERVER_PRIO +// Priority with which BLE events are dispatched to the DFU Service. + +#ifndef BLE_DFU_SOC_OBSERVER_PRIO +#define BLE_DFU_SOC_OBSERVER_PRIO 1 +#endif + +// CLOCK_CONFIG_SOC_OBSERVER_PRIO +// Priority with which SoC events are dispatched to the Clock driver. + +#ifndef CLOCK_CONFIG_SOC_OBSERVER_PRIO +#define CLOCK_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// POWER_CONFIG_SOC_OBSERVER_PRIO +// Priority with which SoC events are dispatched to the Power driver. + +#ifndef POWER_CONFIG_SOC_OBSERVER_PRIO +#define POWER_CONFIG_SOC_OBSERVER_PRIO 0 +#endif + +// +//========================================================== + +// +//========================================================== + + +// + +// +//========================================================== + +// <<< end of configuration section >>> +#endif //SDK_CONFIG_H + diff --git a/secure_bootloader_gcc_nrf52.ld b/secure_bootloader_gcc_nrf52.ld new file mode 100644 index 0000000..7ba9a1f --- /dev/null +++ b/secure_bootloader_gcc_nrf52.ld @@ -0,0 +1,167 @@ +/* Linker script to configure memory regions. */ + +SEARCH_DIR(.) +GROUP(-lgcc -lc -lnosys) + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x000DE000, LENGTH = 0x00020000 + mbr_params_page (r) : ORIGIN = 0x000FE000, LENGTH = 0x00001000 + bootloader_settings_page (r) : ORIGIN = 0x000FF000, LENGTH = 0x00001000 + + uicr_bootloader_start_address (r) : ORIGIN = 0x10001014, LENGTH = 0x4 + uicr_mbr_params_page (r) : ORIGIN = 0x10001018, LENGTH = 0x4 + + RAM (rwx) : ORIGIN = 0x20010000, LENGTH = 0x0002F000 + RTT (rwx) : ORIGIN = 0x2003F000, LENGTH = 0x00001000 +} + +SECTIONS +{ + . = ALIGN(4); + .segger_rtt (NOLOAD) : + { + KEEP(*(.segger_rtt)) + } > RTT +} + +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 + + .uicr_mbr_params_page : + { + PROVIDE(__start_uicr_mbr_params_page = .); + KEEP(*(SORT(.uicr_mbr_params_page*))) + PROVIDE(__stop_uicr_mbr_params_page = .); + } > uicr_mbr_params_page + . = ALIGN(4); + .mbr_params_page : + { + PROVIDE(__start_mbr_params_page = .); + KEEP(*(SORT(.mbr_params_page*))) + PROVIDE(__stop_mbr_params_page = .); + } > mbr_params_page + . = ALIGN(4); + .bootloader_settings_page : + { + PROVIDE(__start_bootloader_settings_page = .); + KEEP(*(SORT(.bootloader_settings_page*))) + PROVIDE(__stop_bootloader_settings_page = .); + } > bootloader_settings_page +} + +SECTIONS +{ + . = ALIGN(4); + .mem_section_dummy_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 + .fs_data : + { + PROVIDE(__start_fs_data = .); + KEEP(*(.fs_data)) + PROVIDE(__stop_fs_data = .); + } > RAM + +} INSERT AFTER .data; + +SECTIONS +{ + .mem_section_dummy_rom : + { + } + .crypto_data : + { + PROVIDE(__start_crypto_data = .); + KEEP(*(SORT(.crypto_data*))) + PROVIDE(__stop_crypto_data = .); + } > FLASH + .nrf_queue : + { + PROVIDE(__start_nrf_queue = .); + KEEP(*(.nrf_queue)) + PROVIDE(__stop_nrf_queue = .); + } > FLASH + .dfu_trans : + { + PROVIDE(__start_dfu_trans = .); + KEEP(*(SORT(.dfu_trans*))) + PROVIDE(__stop_dfu_trans = .); + } > FLASH + .svc_data : + { + PROVIDE(__start_svc_data = .); + KEEP(*(.svc_data)) + PROVIDE(__stop_svc_data = .); + } > FLASH + .log_const_data : + { + PROVIDE(__start_log_const_data = .); + KEEP(*(SORT(.log_const_data*))) + PROVIDE(__stop_log_const_data = .); + } > FLASH + .nrf_balloc : + { + PROVIDE(__start_nrf_balloc = .); + KEEP(*(.nrf_balloc)) + PROVIDE(__stop_nrf_balloc = .); + } > FLASH + .log_backends : + { + PROVIDE(__start_log_backends = .); + KEEP(*(SORT(.log_backends*))) + PROVIDE(__stop_log_backends = .); + } > FLASH + .sdh_ble_observers : + { + PROVIDE(__start_sdh_ble_observers = .); + KEEP(*(SORT(.sdh_ble_observers*))) + PROVIDE(__stop_sdh_ble_observers = .); + } > 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 + .sdh_soc_observers : + { + PROVIDE(__start_sdh_soc_observers = .); + KEEP(*(SORT(.sdh_soc_observers*))) + PROVIDE(__stop_sdh_soc_observers = .); + } > FLASH + +} INSERT AFTER .text + +INCLUDE "nrf_common.ld" \ No newline at end of file