Lock DMA stuff to prevent deadlock

tinySA
erikkaashoek 6 years ago
parent 85e17da3bf
commit 6a4daa8c94

@ -452,6 +452,7 @@ void ili9341_read_memory(int x, int y, int w, int h, int len, uint16_t *out)
// Skip SPI rx buffer
while (SPI_RX_IS_NOT_EMPTY) (void)SPI_READ_DATA;
// Init Rx DMA buffer, size, mode (spi and mem data size is 8 bit)
chSysLock();
dmaStreamSetMemory0(dmarx, rgbbuf);
dmaStreamSetTransactionSize(dmarx, data_size);
dmaStreamSetMode(dmarx, rxdmamode | STM32_DMA_CR_PSIZE_BYTE | STM32_DMA_CR_MSIZE_BYTE |
@ -467,6 +468,7 @@ void ili9341_read_memory(int x, int y, int w, int h, int len, uint16_t *out)
// Wait DMA completion
dmaWaitCompletion(dmatx);
dmaWaitCompletion(dmarx);
chSysUnlock();
CS_HIGH;
// Parce recived data

Loading…
Cancel
Save

Powered by TurnKey Linux.