Other Parts Discussed in Thread: CC2640R2F
Tool/software:
Hello,
My customer faces an issue in a production system and want to understand how the system should recover from the error messages. This issue is very rare and could not be reproduced in the lab. The SDK is 3_40_00_10.
The issue is that the BLE advertisement stops unexpectedly. The master controller directs the BLE device by always enabling the advertisement (even after a BLE connection when the advertisement is stopped inherently by the protocol, the advertisement is requested to be resumed).
The error codes are HCI_BLE_HARDWARE_ERROR_EVENT_CODE and HCI_DATA_BUFFER_OVERFLOW_EVENT but customer is not certain that one of them happens linked to the above issue, since the issue cannot be reproduced in the lab.
Questions:
- If there is an advertisement ongoing, can one of those 2 error codes actually stop the advertisement?
- Is the BLE stack the only source of these error codes, or could they be generated by e.g. the OS...?
- Are these 2 events are also GAP events? (with ICALL_SERVICE_CLASS_BLE as source and HCI_GAP_EVENT_EVENT as event type)
- What are the ways to reduce the likelihood of their occurrence? This post makes a couple of suggestions; are there others?
- If one of those 2 errors occurs, is the OS still working, scheduling tasks and refreshing the watchdog? (They ask because they tested the watchdog and it resets correctly an assert/fault and the host controller is able to detect the BLE reset and re-start the advertisement. But if the OS is still running and only the BLE stack is stuck, the watchdog will not reset, correct?)
- If these errors occur, can the BLE stack recover by itself, or should the host controller catch the error codes and order a reset of the BLE device?
Thank you.
Best regards,
François.