Why is the code for UART callbacks being optimized out with optimization set to -O (none)
Nucleo STM32H723ZG
CubeMX 6.3.0
Cube IDE 1.7.0
Package 1.9.0
Using CubeMX the UART2 is set up for DMA on transmit and receive. The code is working for transmit and I see data on the scope that matches what is being setup in the buffer. The transmit pin has been connected to the receive pin to loop back the data. The receive buffer after transmitting is not populating with the data. I tried to break point in the receive callback and the code is breaking in the HAL_TIMPeriodElapsedCallback which is just after the UART_DMA callbacks. Inspection of the Listing output reveals that the there is no DMA Callback code for HAL_UART_RXFifoFullCallback and HAL_UART_TxFifoEmptyCallback which explains why the breakpoint is falling through the timer callback fucntion. The optimization is set to -O (none) and I have code in the callbacks. These functions are supposed to overload the _weak function of the same name in the HAL UART code created from CubeMX.
What is the deal?
