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

"Stopped by vector catch" when debugging SES 52840 project modified for 52833

I have a BL654-DVK (nRF52840) and BL653-DVK (nRF52833).  I have a custom program modified from an example that runs and debugs properly on the nRF52840, and am trying to port it to the nRF52833.  The same issue arises on my program and example programs, so I'll just refer to and example for simplicity.

SDK v17.0.2

Softdevice S140

I'm running the SES project in .\examples\ble_central_and_peripheral\experimental\ble_app_multirole_lesc\pca10056\s140\ses\.  According to other support posts, to accommodate the external crystal on the dev board, in sdk_config.h I've set:

NRF_SDH_CLOCK_LF_SRC 0
NRF_SDH_CLOCK_LF_RC_CTIV 16
NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2

At this point, the program runs properly on the BL654 (nRF52840). 

Now to run it on the BL653 (nRF52833) I've set the project common preprocessor definitions to BOARD_PCA10100 and NRF52833_XXAA, and ses_startup_nrf52833.s and system_nrf52833.c in the project folder "None".  

The project builds successfully, but does not run or debug.  Debugging fails before beginning main, with "Stopped by vector catch".

What else do I need to do to get this (and my custom) project to run?

  • Hi

    There are a few more steps required, here are all of the required steps to transfer a project to nRF52833 HW:

    • In the project settings, change to device "NordicSemiconductor->nRF52833_xxaa".
    • Add the preprocessor define "NRF52833_XXAA"
    • In the preprocessor settings, remove the defines "NRF52" and "NRF52840_XXAA".
    • In the linker script settings, adjust the linker script to match the maximum RAM and Flash Memory of the nRF52833.
    • Remove the startup and system files of the current project and add the startup_nrf52833.s and system_nrf52811.c files.

    Best regards,

    Simon

  • Hi Simon --

    Thank you for the reply.

    I left the start address the same as previously, as I'm still using s140 (please correct me if there's more to it than that).  I realized I had not set flash and memory size.  These are now configured to fill 512/128KB Flash/RAM:

    FLASH_START=0x27000
    FLASH_SIZE=0x56000
    RAM_START=0x200028d8
    RAM_SIZE=0x1cb28

    Except for one, I have done the remainder of your steps

    • Add the preprocessor define "NRF52833_XXAA"
    • In the preprocessor settings, remove the defines "NRF52" and "NRF52840_XXAA".
    • In the linker script settings, adjust the linker script to match the maximum RAM and Flash Memory of the nRF52833.
    • Remove the startup and system files of the current project and add the startup_nrf52833.s and system_nrf52833.c files.

    Your step "In the project settings, change to device "NordicSemiconductor->nRF52833_xxaa" is giving me a hard time, I can't find this setting.  Can you unpack this for me?

  • Hi

    Sorry, this step seems to be exclusive to the Keil uVision projects. In SES though, please make sure that the Section Placement File use the correct board names and device names after you've made these other changes.

    Best regards,

    Simon

Related