I've fixed the memory issue by setting the RX packet size to the same as my TX packet size. That works for me as long as the max RX is just an allocation and the true RX used in the connection is smaller. My device doesn't receive much data, but needs to send notifies.
What's interesting about this to me is that I this causes CY_BLE_STACK_RAM_SIZE to grow, but that doesn't affect the memory allocation failure. I can shrink it by disabling features in BLE widget in the schematic, and a 93-byte TX / 27-byte RX will still fail even though the claimed RAM size is less than the size it was using in the case that works 92-byte TX / 27-byte RX.
I have a stack trace. The failure occurs somewhere inside <mint_buf_mgmt_create_pool>, which I've added on top of the call stack by hand:
The exact addresses aren't quite right, but I'm sure that <le_initialize_buffers> is what's failing. The stackInitParam looks like:
Hello NiLe_4630071 ,
Please update the PDL to latest version in the PSoC Creator. Please refer the below link for downloading the Latest version of PDL.
In PSoC Creator, Right click on the Project -> Goto 'Build settings' -> 'Peripheral Driver Library' and add the path of newer version in custom tab as shown in attached image.
PDL V3.1.1.PNG 158.4 K