xStreamBufferReceive(…, portMAX_DELAY) Task Moved to Suspended and Never Wakes on Data

The CPU I’m running FreeRTOS has some special registers (some are RISC-V standard, some manufacturer-specific) which clearly indicating that this is an interrupt execution, also indicating a preemption level (if any) and indicating the request number. Together I can say for sure that bad execution of StreamBufferReceive(), more precisely the execution of xTaskGenericNotifyWait() was preformed inside of a SysTick ISR.
Today I’ve conducted some more tests. There were not much results.
All what I saw, were normal, explainable and expected. But I was unable to step through the code instruction-by-instruction due to bad things of CPU and debugger combination:

  • When a debugger breaks the execution, the SysTick continues to run at full speed. At next debug instruction step, an ISR of SysTick is pended. Each time I entering breakpoint the SysTick ISR is pended momentary and makes further debugging almost impossible.
  • When a debugger is stepping by assembly instructions with no debug “Run” command but with debug “Step” command, an interrupt currently pended is not going by its vector. The code continues to step through like an interrupts are disabled. But when I hit “Run”, the ISR is executing.

So with such bad debug behavior I get none valuable results today.