I have a callback within which I am using xQueueSendToBackFromISR() to send to a receiving thread that is not a callback or interrupt service routine. In the receiving thread should I use xQueueReceive() or xQueueReceiveFromISR()?
In other words should only xQueueReceiveFromISR() by used to receive from xQueueSendToBackFromISR()? Or if not in a callback or interrupt service routine should xQueueReceive() be used instead?
You only need to use the FromISR API inside an ISR, so in your case only in the callback. The ISR uses xQueueSendFromISR() and the task uses xQueueReceive(), that is fine.