There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
AT91_SPI_Driver::nWrite8_nRead8 and AT91_SPI_Driver::nWrite16_nRead16 are not thread safe and interrupts during SPI write/read operations will force the system into a HARD_BREAKPOINT(). This can be fixed this calling GLOBAL_LOCK() right after entering those functions.
Overall, the SPI Driver is painfully slow. Writing 8 bit with 10MHz SCLK induces up to 80% overhead. Setting every GPIO Pin to Input -> Alternate Mode -> Output might be a good idea if the pins are multiplexed. But using SPI controlled displays or other performance dependent devices reveals some major drawbacks.