Hello,
I need to have a nrf52932 working as central and peripheral. So I started from the ble_app_hrs_rscs_relay example. It works fine, I can connect to my iPhone and get te data from another board program with the ble_app_hrs example.
As next step, I would like to have a custom service for peripheral side instead of the hrs and rscs services (and still scanning and being central for hrs and rscs external peripheral devices). I have start to implement the ble_cus (I was able to make it working on another project). when the function services_init() is called:
static void services_init(void) { ret_code_t err_code; nrf_ble_qwr_init_t qwr_init = {0}; ble_cus_init_t cus_init = {0}; // Initialize Queued Write Module. qwr_init.error_handler = nrf_qwr_error_handler; for (uint32_t i = 0; i < NRF_SDH_BLE_TOTAL_LINK_COUNT; i++) { err_code = nrf_ble_qwr_init(&m_qwr[i], &qwr_init); APP_ERROR_CHECK(err_code); } // err_code = nrf_ble_qwr_init(&m_qwr, &qwr_init); // APP_ERROR_CHECK(err_code); //memset(&cus_init, 0, sizeof(cus_init)); // Initialize CUS Service init structure to zero. cus_init.evt_handler = on_cus_evt; BLE_GAP_CONN_SEC_MODE_SET_OPEN(&cus_init.custom_value_char_attr_md.cccd_write_perm); BLE_GAP_CONN_SEC_MODE_SET_OPEN(&cus_init.custom_value_char_attr_md.read_perm); BLE_GAP_CONN_SEC_MODE_SET_OPEN(&cus_init.custom_value_char_attr_md.write_perm); //NRF_LOG_INFO("test 0x%x.", rien); err_code = ble_cus_init(&m_cus, &cus_init); NRF_LOG_INFO("error 5 0x%x.", err_code); APP_ERROR_CHECK(err_code); }
I get the error 0x000000004 which is for memory allocation.
but I don't get any warning or error in the nrf_sdh_ble_enable(uint32_t * const p_app_ram_start) function. I have modify the function to have:
uint32_t const app_ram_start_link = *p_app_ram_start; ret_code_t ret_code = sd_ble_enable(p_app_ram_start); NRF_LOG_WARNING("Change the RAM start location from 0x%x to 0x%x.", app_ram_start_link, *p_app_ram_start); NRF_LOG_WARNING("Maximum RAM size for application is 0x%x.", ram_end_address_get() - (*p_app_ram_start));
the value I get for the RAM start is 0x20002D50 (instead of 0x20002D58 originally) and RAM size 0xD2B0 (instead of 0xD2A8). If I use this new value, I still get the error 4.
could it come from another part of the memory?
thank you
best regards