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

Porting s140 from nRF52840 to nRF52833

Hi,

I have been working with a nRF52840 DK up until now, but I need to change and move to a nRF52833 DK. I wanted to adapt my code as they can both use the softdevice I am using, s140.

Unfortunately, the HRS example I am using on pca10056 is not available with pca10100. I followed what was specified on this page. However I still get a hardfault (stopped by vector catch). Working with SEGGER,  I changed the .emProject  to this:

      arm_target_device_name="nRF52833_xxAA"
      arm_target_interface_type="SWD"
      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10100;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;INITIALIZE_USER_SECTIONS;MBEDTLS_CONFIG_FILE="nrf_crypto_mbedtls_config.h";NO_VTOR_CONFIG;NRF52833_XXAA;NRF_CRYPTO_MAX_INSTANCE_COUNT=1;NRF_SD_BLE_API_VERSION=7;S140;SOFTDEVICE_PRESENT"
      c_user_include_directories="../../../config;../../../../components;../../../../components/ble/ble_advertising;../../../../components/ble/ble_dtm;../../../../components/ble/ble_link_ctx_manager;../../../../components/ble/ble_racp;../../../../components/ble/ble_services/ble_ancs_c;../../../../components/ble/ble_services/ble_ans_c;../../../../components/ble/ble_services/ble_bas;../../../../components/ble/ble_services/ble_bas_c;../../../../components/ble/ble_services/ble_cscs;../../../../components/ble/ble_services/ble_cts_c;../../../../components/ble/ble_services/ble_dfu;../../../../components/ble/ble_services/ble_dis;../../../../components/ble/ble_services/ble_gls;../../../../components/ble/ble_services/ble_hids;../../../../components/ble/ble_services/ble_hrs;../../../../components/ble/ble_services/ble_hrs_c;../../../../components/ble/ble_services/ble_hts;../../../../components/ble/ble_services/ble_ias;../../../../components/ble/ble_services/ble_ias_c;../../../../components/ble/ble_services/ble_lbs;../../../../components/ble/ble_services/ble_lbs_c;../../../../components/ble/ble_services/ble_lls;../../../../components/ble/ble_services/ble_nus;../../../../components/ble/ble_services/ble_nus_c;../../../../components/ble/ble_services/ble_rscs;../../../../components/ble/ble_services/ble_rscs_c;../../../../components/ble/ble_services/ble_tps;../../../../components/ble/common;../../../../components/ble/nrf_ble_gatt;../../../../components/ble/nrf_ble_qwr;../../../../components/ble/peer_manager;../../../../components/boards;../../../../components/libraries/atomic;../../../../components/libraries/atomic_fifo;../../../../components/libraries/atomic_flags;../../../../components/libraries/balloc;../../../../components/libraries/bootloader/ble_dfu;../../../../components/libraries/bsp;../../../../components/libraries/button;../../../../components/libraries/cli;../../../../components/libraries/crc16;../../../../components/libraries/crc32;../../../../components/libraries/crypto;../../../../components/libraries/crypto/backend/cc310;../../../../components/libraries/crypto/backend/cc310_bl;../../../../components/libraries/crypto/backend/cifra;../../../../components/libraries/crypto/backend/mbedtls;../../../../components/libraries/crypto/backend/micro_ecc;../../../../components/libraries/crypto/backend/nrf_hw;../../../../components/libraries/crypto/backend/nrf_sw;../../../../components/libraries/crypto/backend/oberon;../../../../components/libraries/crypto/backend/optiga;../../../../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/sensorsim;../../../../components/libraries/slip;../../../../components/libraries/sortlist;../../../../components/libraries/spi_mngr;../../../../components/libraries/stack_guard;../../../../components/libraries/stack_info;../../../../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/mbedtls/include;../../../../external/nrf_cc310/include;../../../../external/nrf_oberon;../../../../external/nrf_oberon/include;../../../../external/nrf_tls/mbedtls/nrf_crypto/config;../../../../external/segger_rtt;../../../../external/utf_converter;../../../../integration/nrfx;../../../../integration/nrfx/legacy;../../../../modules/nrfx;../../../../modules/nrfx/drivers/include;../../../../modules/nrfx/hal;../../../../modules/nrfx/mdk;../config"
      debug_additional_load_file="../../../../components/softdevice/s140/hex/s140_nrf52_7.2.0_softdevice.hex"
      debug_additional_load_file1="C:/Users/fmarzio/Documents/Tekin/Endotact/Code/Endotact Project/hex/ble_app_hrs_pca10056_s140.hex"
      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52833.svd"https://devzone.nordicsemi.com/tinymce//apis/embeddables/configure?typeId=dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2&id=undefined#

Instead of this:

      arm_target_device_name="nRF52840_xxAA"
      arm_target_interface_type="SWD"
      c_preprocessor_definitions="APP_TIMER_V2;APP_TIMER_V2_RTC1_ENABLED;BLE_STACK_SUPPORT_REQD;BOARD_PCA10056;CONFIG_GPIO_AS_PINRESET;FLOAT_ABI_HARD;INITIALIZE_USER_SECTIONS;MBEDTLS_CONFIG_FILE="nrf_crypto_mbedtls_config.h";NO_VTOR_CONFIG;NRF52840_XXAA;NRF_CRYPTO_MAX_INSTANCE_COUNT=1;NRF_SD_BLE_API_VERSION=7;S140;SOFTDEVICE_PRESENT"
      c_user_include_directories="../../../config;../../../../components;../../../../components/ble/ble_advertising;../../../../components/ble/ble_dtm;../../../../components/ble/ble_link_ctx_manager;../../../../components/ble/ble_racp;../../../../components/ble/ble_services/ble_ancs_c;../../../../components/ble/ble_services/ble_ans_c;../../../../components/ble/ble_services/ble_bas;../../../../components/ble/ble_services/ble_bas_c;../../../../components/ble/ble_services/ble_cscs;../../../../components/ble/ble_services/ble_cts_c;../../../../components/ble/ble_services/ble_dfu;../../../../components/ble/ble_services/ble_dis;../../../../components/ble/ble_services/ble_gls;../../../../components/ble/ble_services/ble_hids;../../../../components/ble/ble_services/ble_hrs;../../../../components/ble/ble_services/ble_hrs_c;../../../../components/ble/ble_services/ble_hts;../../../../components/ble/ble_services/ble_ias;../../../../components/ble/ble_services/ble_ias_c;../../../../components/ble/ble_services/ble_lbs;../../../../components/ble/ble_services/ble_lbs_c;../../../../components/ble/ble_services/ble_lls;../../../../components/ble/ble_services/ble_nus;../../../../components/ble/ble_services/ble_nus_c;../../../../components/ble/ble_services/ble_rscs;../../../../components/ble/ble_services/ble_rscs_c;../../../../components/ble/ble_services/ble_tps;../../../../components/ble/common;../../../../components/ble/nrf_ble_gatt;../../../../components/ble/nrf_ble_qwr;../../../../components/ble/peer_manager;../../../../components/boards;../../../../components/libraries/atomic;../../../../components/libraries/atomic_fifo;../../../../components/libraries/atomic_flags;../../../../components/libraries/balloc;../../../../components/libraries/bootloader/ble_dfu;../../../../components/libraries/bsp;../../../../components/libraries/button;../../../../components/libraries/cli;../../../../components/libraries/crc16;../../../../components/libraries/crc32;../../../../components/libraries/crypto;../../../../components/libraries/crypto/backend/cc310;../../../../components/libraries/crypto/backend/cc310_bl;../../../../components/libraries/crypto/backend/cifra;../../../../components/libraries/crypto/backend/mbedtls;../../../../components/libraries/crypto/backend/micro_ecc;../../../../components/libraries/crypto/backend/nrf_hw;../../../../components/libraries/crypto/backend/nrf_sw;../../../../components/libraries/crypto/backend/oberon;../../../../components/libraries/crypto/backend/optiga;../../../../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/sensorsim;../../../../components/libraries/slip;../../../../components/libraries/sortlist;../../../../components/libraries/spi_mngr;../../../../components/libraries/stack_guard;../../../../components/libraries/stack_info;../../../../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/mbedtls/include;../../../../external/nrf_cc310/include;../../../../external/nrf_oberon;../../../../external/nrf_oberon/include;../../../../external/nrf_tls/mbedtls/nrf_crypto/config;../../../../external/segger_rtt;../../../../external/utf_converter;../../../../integration/nrfx;../../../../integration/nrfx/legacy;../../../../modules/nrfx;../../../../modules/nrfx/drivers/include;../../../../modules/nrfx/hal;../../../../modules/nrfx/mdk;../config"
      debug_additional_load_file="../../../../components/softdevice/s140/hex/s140_nrf52_7.2.0_softdevice.hex"
      debug_additional_load_file1="C:/Users/fmarzio/Documents/Tekin/Endotact/Code/Endotact Project/hex/ble_app_hrs_pca10056_s140.hex"
      debug_register_definition_file="../../../../../../modules/nrfx/mdk/nrf52840.svd"

I also replaced the ses_startup_nrf52840.s and system_nrf52840.c files by ses_startup_nrf52833.s and system_nrf52833.c . I did not change my RAM and FLASH parameters as I did not change the softdevice, but it might come from that as it is a different chip. I saw that nothing needed to be changed on the boards.c file.

I obviously missed something in trying to adapt my code. Does anyone have an idea about what I missed ?

Thanks,

FM

Related