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

What's the preferred way to get an SDK example running on a non-devkit radio?

Hi,

I have been using the PCA10040 and PCA10056 development boards to do some evaluation/testing of the Nordic BTLE radio functionality.  We now have purchased standalone nrf52811 radio modules and I'd like to test my same code on these non-devkit radios. I have confirmed if I create a simple "hello world" app targeting the nrf52811 I can program the radio and use the SWD interface in Segger Embedded Studio.  However, if I try to program the nrf52811 using my devkit-based project it appears the memory layout is based on the PCA10040 and the code immediately crashes in the debugger with "Stopped by vector catch".

Is there a simple way to convert an existing project that was built for the devkit to the instead target the nrf52811 or am I better off starting from scratch and creating a brand new project that targets the nrf52811 and add the appropriate Nordic libraries for BTLE and UART support?   

Thanks,

Brian

Parents
  • I think I found part of the answer here in the SDK documentation:    Transferring the project to nRF52811 hardware  however, as I describe in more detail in a reply, the documentation is a bit ambiguous and needs some clarification in regards to what to change for Segger Embedded Studio.

  • However, from reading this section of the documentation it is not exactly clear where to find these settings in Segger Embedded Studio.  The documentation says:

    * In the project settings, change to device "NordicSemiconductor->nRF52811_xxaa".

    However I can not find this defined in the project "Options" in Segger Studio.

    Also, it says:

    In the linker script settings, adjust the linker script to match the maximum RAM and flash size of nRF52811.

    • ROM END: 0x2FFFF
    • RAM END: 0x20005FFF

    However in Segger, the options for Linker are:

    FLASH_PH_START=0x0
    FLASH_PH_SIZE=0x80000
    RAM_PH_START=0x20000000
    RAM_PH_SIZE=0x10000
    FLASH_START=0x19000
    FLASH_SIZE=0x67000
    RAM_START=0x20002500
    RAM_SIZE=0xdb00

    I'm assuming I would need to change the sizes since there is no ROM END nor RAM END definition, but I don't know what the difference between FLASH_PH and FLASH and RAM_PH vs RAM.  Should I change the PH and non-PH values?

    Thanks,

    Brian

Reply
  • However, from reading this section of the documentation it is not exactly clear where to find these settings in Segger Embedded Studio.  The documentation says:

    * In the project settings, change to device "NordicSemiconductor->nRF52811_xxaa".

    However I can not find this defined in the project "Options" in Segger Studio.

    Also, it says:

    In the linker script settings, adjust the linker script to match the maximum RAM and flash size of nRF52811.

    • ROM END: 0x2FFFF
    • RAM END: 0x20005FFF

    However in Segger, the options for Linker are:

    FLASH_PH_START=0x0
    FLASH_PH_SIZE=0x80000
    RAM_PH_START=0x20000000
    RAM_PH_SIZE=0x10000
    FLASH_START=0x19000
    FLASH_SIZE=0x67000
    RAM_START=0x20002500
    RAM_SIZE=0xdb00

    I'm assuming I would need to change the sizes since there is no ROM END nor RAM END definition, but I don't know what the difference between FLASH_PH and FLASH and RAM_PH vs RAM.  Should I change the PH and non-PH values?

    Thanks,

    Brian

Children
Related