hi,
im using nrf52811 customised board,for long range purpose im using softdevice s140
so i need to port secure boot loader pca10056 to pca10056e
can you please me reagarding this.
best reagrds,
siva.
hi,
im using nrf52811 customised board,for long range purpose im using softdevice s140
so i need to port secure boot loader pca10056 to pca10056e
can you please me reagarding this.
best reagrds,
siva.
Hi
Please check out the "Creating your own emulated project" section of the nRF52811 development user guide here. Please note that I'm not sure that you'll be able to fit both the S140 SoftDevice, an application, as well as a bootloader in the limited RAM and Flash memory that the nRF52811 can offer, and you might need to move your project to a larger device, like the nRF52833.
Best regards,
Simon
hi simonr,
my application code is working fine.
using soft device "s140" and beacon app blinky using pca10056 ,i can able to flash and run the code ,all the functionalities working fine.i done few changes using below mentioned document please check it.
so for that i need to update code through ota using secure bootloader,can u please help me regarding this.
diff --git a/pca10056e/s140/config/sdk_config.h b/pca10056e/s140/config/sdk_config.h
index 0d7d106..62dbdcd 100644
--- a/pca10056e/s140/config/sdk_config.h
+++ b/pca10056e/s140/config/sdk_config.h
@@ -2788,7 +2788,7 @@
// <e> NRFX_PRS_ENABLED - nrfx_prs - Peripheral Resource Sharing module
//==========================================================
#ifndef NRFX_PRS_ENABLED
-#define NRFX_PRS_ENABLED 1
+#define NRFX_PRS_ENABLED 0
#endif
// <q> NRFX_PRS_BOX_0_ENABLED - Enables box 0 in the module.
@@ -6124,7 +6124,7 @@
#ifndef UART_LEGACY_SUPPORT
-#define UART_LEGACY_SUPPORT 1
+#define UART_LEGACY_SUPPORT 0
#endif
// <e> UART0_ENABLED - Enable UART0 instance
@@ -6138,14 +6138,6 @@
#ifndef UART0_CONFIG_USE_EASY_DMA
#define UART0_CONFIG_USE_EASY_DMA 1
#endif
-
-// </e>
-
-// <e> UART1_ENABLED - Enable UART1 instance
-//==========================================================
-#ifndef UART1_ENABLED
-#define UART1_ENABLED 0
-#endif
// </e>
// </e>
diff --git a/pca10056e/s140/ses/ble_app_uart_c_pca10056e_s140.emProject b/pca10056e/s140/ses/ble_app_uart_c_pca10056e_s140.emProject
index f24198e..62b0392 100644
--- a/pca10056e/s140/ses/ble_app_uart_c_pca10056e_s140.emProject
+++ b/pca10056e/s140/ses/ble_app_uart_c_pca10056e_s140.emProject
@@ -1,41 +1,41 @@
<!DOCTYPE CrossStudio_Project_File>
-<solution Name="ble_app_uart_c_pca10056_s140" target="8" version="2">
- <project Name="ble_app_uart_c_pca10056_s140">
+<solution Name="ble_app_uart_c_pca10056e_s140" target="8" version="2">
+ <project Name="ble_app_uart_c_pca10056e_s140">
<configuration
Name="Common"
arm_architecture="v7EM"
arm_core_type="Cortex-M4"
arm_endian="Little"
- arm_fp_abi="Hard"
- arm_fpu_type="FPv4-SP-D16"
- arm_linker_heap_size="8192"
+ arm_fp_abi="Soft"
+ arm_fpu_type="Soft"
+ arm_linker_heap_size="2048"
arm_linker_process_stack_size="0"
- arm_linker_stack_size="8192"
+ arm_linker_stack_size="2048"
arm_linker_treat_warnings_as_errors="No"
arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
- arm_target_device_name="nRF52840_xxAA"
+ arm_target_device_name="nRF52811_xxAA"
arm_target_interface_type="SWD"
+ c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BOARD_PCA10056;DEVELOP_IN_NRF52840;NRFX_COREDEP_DELAY_US_LOOP_CYCLES=3;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_SOFT;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52811_XXAA;NRF_SD_BLE_API_VERSION=7;S140;SOFTDEVICE_PRESENT;"
c_user_include_directories="../../../config;../../../../../../components;../../../../../../components/ble/ble_advertising;../../../../../../components/ble/ble_db_discovery;../../../../../../components/ble/ble_dtm;../../../../../../components/ble/ble_racp;../../../../../../components/ble/ble_services/ble_ancs_c;../../../../../../components/ble/ble_services/ble_ans_c;../../../../../../components/ble/ble_services/ble_bas;../../../../../../components/ble/ble_services/ble_bas_c;../../../../../../components/ble/ble_services/ble_cscs;../../../../../../components/ble/ble_services/ble_cts_c;../../../../../../components/ble/ble_services/ble_dfu;../../../../../../components/ble/ble_services/ble_dis;../../../../../../components/ble/ble_services/ble_gls;../../../../../../components/ble/ble_services/ble_hids;../../../../../../components/ble/ble_services/ble_hrs;../../../../../../components/ble/ble_services/ble_hrs_c;../../../../../../components/ble/ble_services/ble_hts;../../../../../../components/ble/ble_services/ble_ias;../../../../../../components/ble/ble_services/ble_ias_c;../../../../../../components/ble/ble_services/ble_lbs;../../../../../../components/ble/ble_services/ble_lbs_c;../../../../../../components/ble/ble_services/ble_lls;../../../../../../components/ble/ble_services/ble_nus;../../../../../../components/ble/ble_services/ble_nus_c;../../../../../../components/ble/ble_services/ble_rscs;../../../../../../components/ble/ble_services/ble_rscs_c;../../../../../../components/ble/ble_services/ble_tps;../../../../../../components/ble/common;../../../../../../components/ble/nrf_ble_gatt;../../../../../../components/ble/nrf_ble_gq;../../../../../../components/ble/nrf_ble_qwr;../../../../../../components/ble/nrf_ble_scan;../../../../../../components/ble/peer_manager;../../../../../../components/boards;../../../../../../components/libraries/atomic;../../../../../../components/libraries/atomic_fifo;../../../../../../components/libraries/balloc;../../../../../../components/libraries/bootloader/ble_dfu;../../../../../../components/libraries/bsp;../../../../../../components/libraries/button;../../../../../../components/libraries/cli;../../../../../../components/libraries/crc16;../../../../../../components/libraries/crc32;../../../../../../components/libraries/crypto;../../../../../../components/libraries/csense;../../../../../../components/libraries/csense_drv;../../../../../../components/libraries/delay;../../../../../../components/libraries/ecc;../../../../../../components/libraries/experimental_section_vars;../../../../../../components/libraries/experimental_task_manager;../../../../../../components/libraries/fds;../../../../../../components/libraries/fifo;../../../../../../components/libraries/fstorage;../../../../../../components/libraries/gfx;../../../../../../components/libraries/gpiote;../../../../../../components/libraries/hardfault;../../../../../../components/libraries/hci;../../../../../../components/libraries/led_softblink;../../../../../../components/libraries/log;../../../../../../components/libraries/log/src;../../../../../../components/libraries/low_power_pwm;../../../../../../components/libraries/mem_manager;../../../../../../components/libraries/memobj;../../../../../../components/libraries/mpu;../../../../../../components/libraries/mutex;../../../../../../components/libraries/pwm;../../../../../../components/libraries/pwr_mgmt;../../../../../../components/libraries/queue;../../../../../../components/libraries/ringbuf;../../../../../../components/libraries/scheduler;../../../../../../components/libraries/sdcard;../../../../../../components/libraries/slip;../../../../../../components/libraries/sortlist;../../../../../../components/libraries/spi_mngr;../../../../../../components/libraries/stack_guard;../../../../../../components/libraries/strerror;../../../../../../components/libraries/svc;../../../../../../components/libraries/timer;../../../../../../components/libraries/twi_mngr;../../../../../../components/libraries/twi_sensor;../../../../../../components/libraries/uart;../../../../../../components/libraries/usbd;../../../../../../components/libraries/usbd/class/audio;../../../../../../components/libraries/usbd/class/cdc;../../../../../../components/libraries/usbd/class/cdc/acm;../../../../../../components/libraries/usbd/class/hid;../../../../../../components/libraries/usbd/class/hid/generic;../../../../../../components/libraries/usbd/class/hid/kbd;../../../../../../components/libraries/usbd/class/hid/mouse;../../../../../../components/libraries/usbd/class/msc;../../../../../../components/libraries/util;../../../../../../components/nfc/ndef/conn_hand_parser;../../../../../../components/nfc/ndef/conn_hand_parser/ac_rec_parser;../../../../../../components/nfc/ndef/conn_hand_parser/ble_oob_advdata_parser;../../../../../../components/nfc/ndef/conn_hand_parser/le_oob_rec_parser;../../../../../../components/nfc/ndef/connection_handover/ac_rec;../../../../../../components/nfc/ndef/connection_handover/ble_oob_advdata;../../../../../../components/nfc/ndef/connection_handover/ble_pair_lib;../../../../../../components/nfc/ndef/connection_handover/ble_pair_msg;../../../../../../components/nfc/ndef/connection_handover/common;../../../../../../components/nfc/ndef/connection_handover/ep_oob_rec;../../../../../../components/nfc/ndef/connection_handover/hs_rec;../../../../../../components/nfc/ndef/connection_handover/le_oob_rec;../../../../../../components/nfc/ndef/generic/message;../../../../../../components/nfc/ndef/generic/record;../../../../../../components/nfc/ndef/launchapp;../../../../../../components/nfc/ndef/parser/message;../../../../../../components/nfc/ndef/parser/record;../../../../../../components/nfc/ndef/text;../../../../../../components/nfc/ndef/uri;../../../../../../components/nfc/platform;../../../../../../components/nfc/t2t_lib;../../../../../../components/nfc/t2t_parser;../../../../../../components/nfc/t4t_lib;../../../../../../components/nfc/t4t_parser/apdu;../../../../../../components/nfc/t4t_parser/cc_file;../../../../../../components/nfc/t4t_parser/hl_detection_procedure;../../../../../../components/nfc/t4t_parser/tlv;../../../../../../components/softdevice/common;../../../../../../components/softdevice/s140/headers;../../../../../../components/softdevice/s140/headers/nrf52;../../../../../../components/toolchain/cmsis/include;../../../../../../external/fprintf;../../../../../../external/segger_rtt;../../../../../../external/utf_converter;../../../../../../integration/nrfx;../../../../../../integration/nrfx/legacy;../../../../../../modules/nrfx;../../../../../../modules/nrfx/drivers/include;../../../../../../modules/nrfx/hal;../../../../../../modules/nrfx/mdk;../config;"
- c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BOARD_PCA10056;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;INITIALIZE_USER_SECTIONS;NO_VTOR_CONFIG;NRF52840_XXAA;NRF_SD_BLE_API_VERSION=7;S140;SOFTDEVICE_PRESENT;"
- debug_target_connection="J-Link"
- gcc_entry_point="Reset_Handler"
- macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
- debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52840.svd"
debug_additional_load_file="../../../../../../components/softdevice/s140/hex/s140_nrf52_7.2.0_softdevice.hex"
+ debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52811.svd"
debug_start_from_entry_point_symbol="No"
- gcc_debugging_level="Level 3" linker_output_format="hex"
- linker_printf_width_precision_supported="Yes"
+ debug_target_connection="J-Link"
+ gcc_debugging_level="Level 3"
+ gcc_entry_point="Reset_Handler"
+ linker_output_format="hex"
linker_printf_fmt_level="long"
+ linker_printf_width_precision_supported="Yes"
linker_scanf_fmt_level="long"
linker_section_placement_file="flash_placement.xml"
- linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x100000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x40000;FLASH_START=0x27000;FLASH_SIZE=0xd9000;RAM_START=0x20002a38;RAM_SIZE=0x3d5c8"
-
- linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM1 RWX 0x20000000 0x40000"
+ linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x30000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x6000;FLASH_START=0x27000;FLASH_SIZE=0x9000;RAM_START=0x20002a38;RAM_SIZE=0x35c8"
+ linker_section_placements_segments="FLASH RX 0x0 0x30000;RAM1 RWX 0x20000000 0x6000"
+ macros="CMSIS_CONFIG_TOOL=../../../../../../external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"
project_directory=""
project_type="Executable" />
- <folder Name="Segger Startup Files">
- <file file_name="$(StudioDir)/source/thumb_crt0.s" />
- </folder>
+ <folder Name="Segger Startup Files">
+ <file file_name="$(StudioDir)/source/thumb_crt0.s" />
+ </folder>
<folder Name="nRF_Log">
<file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_rtt.c" />
<file file_name="../../../../../../components/libraries/log/src/nrf_log_backend_serial.c" />
@@ -71,9 +71,9 @@
<file file_name="../../../../../../components/libraries/uart/retarget.c" />
</folder>
<folder Name="None">
- <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52840.s" />
+ <file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf52811.s" />
<file file_name="../../../../../../modules/nrfx/mdk/ses_startup_nrf_common.s" />
- <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52840.c" />
+ <file file_name="../../../../../../modules/nrfx/mdk/system_nrf52811.c" />
</folder>
<folder Name="Board Definition">
<file file_name="../../../../../../components/boards/boards.c" />
@@ -84,7 +84,6 @@
<file file_name="../../../../../../modules/nrfx/soc/nrfx_atomic.c" />
<file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_clock.c" />
<file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_gpiote.c" />
- <file file_name="../../../../../../modules/nrfx/drivers/src/prs/nrfx_prs.c" />
<file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uart.c" />
<file file_name="../../../../../../modules/nrfx/drivers/src/nrfx_uarte.c" />
</folder>
@@ -121,11 +120,13 @@
<file file_name="../../../../../../components/softdevice/common/nrf_sdh_soc.c" />
</folder>
</project>
- <configuration Name="Release"
+ <configuration
+ Name="Release"
c_preprocessor_definitions="NDEBUG"
- link_time_optimization="No" gcc_optimization_level="Optimize For Size" />
- <configuration Name="Debug"
+ gcc_optimization_level="Optimize For Size"
+ link_time_optimization="No" />
+ <configuration
+ Name="Debug"
c_preprocessor_definitions="DEBUG; DEBUG_NRF"
- gcc_optimization_level="None"/>
-
+ gcc_optimization_level="None" />
</solution>
Do you have a bootloader already flashed onto your custom device? If not, I would suggest taking a look at the pca10056_s140_ble bootloader example, compare it to pca10056e_s112_ble and make the necessary changes to run it on an nRF52811 from there.
Please note though, that I don't think a bootloader, SoftDevice S140, and your application will all fit onto an nRF52811s RAM/Flash memory, so I wouldn't recommend it.
Best regards,
Simon
Are you sure about it.
Hi
I did the math, and yes, I'm sure. The nRF52811 has 192kB of available Flash memory. The S140 SoftDevice takes up ~150kB of Flash, the bootloader binary is 24kB, and it requires at least 4kB for the bootloader settings page at least. Bringing us up to 178kB for just the SoftDevice and bootloader. Our simplest BLE application (ble_app_beacon) needs 20kB, which brings us up to a total of 198kB minimum. I also assume you'd like your application to do more than just advertise as a beacon as well, so you will need a SoC with more memory to have the S140 SoftDevice, an application, and a secure bootloader.
Best regards,
Simon