Hello,
I am using the UBLOX EVK-NINA-B406, which has the nrf52833. I have attempted to use Softdevice S140 and S113 (using the nrfConnect programmer. Soft device versions 7.0.1). Below is a minimal self contained example to demonstrate my issue, using the Softdevice S113
If the main method in NRF5SDK (version 16) /examples/ble_peripheral/ble_app_uart/pca10100/s113/ses/main.c. I have added the necessary includes and the fault handler.
#include "assert.h"
#include "nrf_sdm.h"
static void sd_fault_handler(uint32_t id, uint32_t pc, uint32_t info)
{
while (1){};
}
/**@brief Application main function.
*/
int main(void)
{
SystemCoreClockUpdate();
uint32_t err_code = 0;
const nrf_clock_lf_cfg_t clk_cfg = {
.source = NRF_CLOCK_LF_SRC_RC,
.rc_ctiv = 16, // Interval in 0.25 s, 16 * 0.25 = 4 sec
.rc_temp_ctiv = 2, // Check temperature every .rc_ctiv, but calibrate every .rc_temp_ctiv
.accuracy = 0,
};
err_code = sd_softdevice_enable(&clk_cfg, sd_fault_handler);
assert(err_code == NRF_SUCCESS);
// register for interrupts
sd_nvic_EnableIRQ(SD_EVT_IRQn);
uint32_t ram_base = 0x20000000;
err_code = sd_ble_enable(&ram_base);
assert(err_code == NRF_SUCCESS);
// Enter main loop.
for (;;)
{
idle_state_handle();
}
}
Line 29 - sd_ble_enable, returns NRF_ERROR_NO_MEM and sets ram_base to some hex number (0x20001058). I changed to project configuration to use that number as RAM_START, and updated RAM_SIZE accordingly (0x1efa8). I run the example again and get the same error. What could be the problem and how to fix it?
I have attached my linker section data from the .emProject file for reference
linker_section_placement_file="flash_placement.xml" linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x80000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x20000;FLASH_START=0x1c000;FLASH_SIZE=0x64000;RAM_START=0x20001058;RAM_SIZE=0x1efa8" linker_section_placements_segments="FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x20000"