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

issue about Ram setting and NRF_ERROR_RESOURCES:

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.

Parents Reply Children
No Data
Related