Hi:
I'm developing a project with nRF 58232 in ble_app_hrs_rscs_relay example ( s132 sdk:nRF5SDK160098a08e2 ). The device need to be central and peripheral,My device worked fine as peripheral with smart phone. After that I tried to make the device connect to the smart phone first, and then connect to other device as central. My device worked fine as central and peripheral at first. But I got [NRF_ERROR_RESOURCES] error after a while.
<info> app: Peer Temp.
<debug> ble_private_c: send data to peripheral
<debug> nrf_ble_gq: Adding item to the request queue
<debug> nrf_ble_gq: GATTC Write Request
<debug> nrf_ble_gq: SD GATT procedure (1) succeeded on connection handle: 0.
<debug> nrf_ble_gq: Processing the request queue...
<debug> nrf_ble_gq: Processing the request queue...
<debug> ble_private_c: Received HVX on link 0x16, hrm_handle 0x16
<debug> ble_private_c: Received HVX on link 0x16, hrm_handle 0x16
<info> app: Temp Respond.
<info> app: Peer Temp.
<debug> ble_private_c: send data to peripheral
<debug> nrf_ble_gq: Adding item to the request queue
<debug> nrf_ble_gq: GATTC Write Request
<debug> nrf_ble_gq: SD GATT procedure (1) succeeded on connection handle: 0.
<debug> nrf_ble_gq: Processing the request queue...
<debug> nrf_ble_gq: Processing the request queue...
<debug> ble_private_c: Received HVX on link 0x16, hrm_handle 0x16
<debug> ble_private_c: Received HVX on link 0x16, hrm_handle 0x16
<info> app: Temp Respond.
<error> app: ERROR 19 [NRF_ERROR_RESOURCES] at :0PC at: 0x00000000
<error> app: End of error report
I seeked the answer for NRF_ERROR_RESOURCES in DevZone.I found it might be caused by size of BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT or BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT. So I changed the size of both BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT and BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT to 3. Unfortunately I got an unknown error after my device conneted to peripheral.
<info> app: Peripheral connected
<info> app: Central connected<info> app: Attempt to find Peripheral on conn_handle 0x0
<debug> nrf_ble_gq: Registering connection handle: 0x0000
<debug> ble_db_disc: Starting discovery of service with UUID 0xFF00 on connection handle 0x0.
<debug> nrf_ble_gq: Adding item to the request queue
<debug> nrf_ble_gq: GATTC Primary Services Discovery Request
<debug> nrf_ble_gq: SD GATT procedure (2) succeeded on connection handle: 0.
<info> app: Peer Connect.
<debug> nrf_ble_gq: Processing the request queue...
<debug> ble_db_disc: Found service UUID 0xFF00.<debug> nrf_ble_gq: Adding item to the request queue
<debug> nrf_ble_gq: GATTC Characteristic Discovery Request
<debug> nrf_ble_gq: SD GATT procedure (3) succeeded on connection handle: 0.
<error> app: ERROR 13313 [Unknown error code] at :0PC at: 0x00000000
<error> app: End of error report
And I haven't changed the ram setting after BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT and BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT were modified.If it needed to modify the ram,how much ram I need to increase in MDK setting If I increase 1 in BLE_GATTC_WRITE_CMD_TX_QUEUE_SIZE_DEFAULT or
BLE_GATTS_HVN_TX_QUEUE_SIZE_DEFAULT .
Maybe I get a wrong way to fix NRF_ERROR_RESOURCES. Please tell me what do I miss.
My second problem is about the Ram setting for __HEAP_SIZE. I had changed NRF_BLE_GQ_GATTS_HVX_MAX_DATA_LEN and NRF_BLE_GQ_GATTC_WRITE_MAX_DATA_LEN to 20.And I found gattc_write_alloc and gatts_hvx_alloc had called nrf_balloc_alloc.But __HEAP_SIZE is zero in ble_app_hrs_rscs_relay example. Did I need to change __HEAP_SIZE. If __HEAP_SIZE need to be changed, I need to change ram setting, right?My ram setting is default in ble_app_hrs_rscs_relay example.