I am using ST's BlueNRG-MS SDK on an RTOS and when I try to send aci commands I get timeout status in return for some of them. For example in one application I am getting timeout after calling aci_gatt_add_char(), and in another example I am getting timeout for aci_hal_write_config_data().
Please find attached hci.c file for the discussion below:
1. In the hci_send_req() function of attached hci.c file, if I suspend the current task for very small time after calling hci_send_cmd() at line 227 by calling nu_sleep() in case of my OS, there is no timeout and command completes successfully.
2. Similarly, instead of suspending the task as stated above, if I remove Disable_SPI_IRQ() call at line 271 in attached hci.c file, there is no timeout and aci command completes successfully.
It is requested to please suggest a suitable and reliable solution for this problem as the above two workarounds are not reliable.
PS: I have tested the applications on firmware versions 7.1e, 7.2a and 7.2c of BlueNRG-MS but the results are same.