Hello Paul,
thank you for looking at this.
But I still think that in both of the "getStatus"-Routines SPI_InterruptGetStatus() and SPI_DMAGetStatus() the stat.busy flag returns just the opposite: The code says
"if either TX is in progress OR RX is in progress the SPI is not busy" (stat.busy is set to 0)
according to your explanation and my understanding it should be:
"if either TX is in progress OR RX is in progress the SPI is busy" (stat.busy should be set to 1)
(This is not a question about how to clear the flags in the registers of the processor)