@@ -350,10 +350,10 @@ void SPIClass::write(uint16 data, uint32 n)
350350 while ( (regs->SR & SPI_SR_BSY) != 0 ); // wait until BSY=0 before returning
351351}
352352
353- void SPIClass::write (void *data, uint32 length)
353+ void SPIClass::write (const void *data, uint32 length)
354354{
355355 spi_dev * spi_d = _currentSetting->spi_d ;
356- spi_tx (spi_d, ( void *) data, length); // data can be array of bytes or words
356+ spi_tx (spi_d, data, length); // data can be array of bytes or words
357357 while (spi_is_tx_empty (spi_d) == 0 ); // "5. Wait until TXE=1 ..."
358358 while (spi_is_busy (spi_d) != 0 ); // "... and then wait until BSY=0 before disabling the SPI."
359359}
@@ -391,7 +391,7 @@ uint16_t SPIClass::transfer16(uint16_t data) const
391391* On exit TX buffer is not modified, and RX buffer cotains the received data.
392392* Still in progress.
393393*/
394- void SPIClass::dmaTransferSet (void *transmitBuf, void *receiveBuf) {
394+ void SPIClass::dmaTransferSet (const void *transmitBuf, void *receiveBuf) {
395395 dma_init (_currentSetting->spiDmaDev );
396396 // spi_rx_dma_enable(_currentSetting->spi_d);
397397 // spi_tx_dma_enable(_currentSetting->spi_d);
@@ -401,11 +401,11 @@ void SPIClass::dmaTransferSet(void *transmitBuf, void *receiveBuf) {
401401 if (!transmitBuf) {
402402 transmitBuf = &ff;
403403 dma_setup_transfer (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , &_currentSetting->spi_d ->regs ->DR , dma_bit_size,
404- transmitBuf, dma_bit_size, (DMA_FROM_MEM));// Transmit FF repeatedly
404+ ( volatile void *) transmitBuf, dma_bit_size, (DMA_FROM_MEM));// Transmit FF repeatedly
405405 }
406406 else {
407407 dma_setup_transfer (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , &_currentSetting->spi_d ->regs ->DR , dma_bit_size,
408- transmitBuf, dma_bit_size, (DMA_MINC_MODE | DMA_FROM_MEM ));// Transmit buffer DMA
408+ ( volatile void *) transmitBuf, dma_bit_size, (DMA_MINC_MODE | DMA_FROM_MEM ));// Transmit buffer DMA
409409 }
410410 dma_set_priority (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , DMA_PRIORITY_LOW);
411411 dma_set_priority (_currentSetting->spiDmaDev , _currentSetting->spiRxDmaChannel , DMA_PRIORITY_VERY_HIGH);
@@ -451,7 +451,7 @@ uint8 SPIClass::dmaTransferRepeat(uint16 length) {
451451* Still in progress.
452452*/
453453
454- uint8 SPIClass::dmaTransfer (void *transmitBuf, void *receiveBuf, uint16 length) {
454+ uint8 SPIClass::dmaTransfer (const void *transmitBuf, void *receiveBuf, uint16 length) {
455455 dmaTransferSet (transmitBuf, receiveBuf);
456456 return dmaTransferRepeat (length);
457457}
@@ -463,12 +463,12 @@ uint8 SPIClass::dmaTransfer(void *transmitBuf, void *receiveBuf, uint16 length)
463463* 2016 - stevstrong - reworked to automatically detect bit size from SPI setting
464464*/
465465
466- void SPIClass::dmaSendSet (void * transmitBuf, bool minc) {
466+ void SPIClass::dmaSendSet (const void * transmitBuf, bool minc) {
467467 uint32 flags = ( (DMA_MINC_MODE*minc) | DMA_FROM_MEM | DMA_TRNS_CMPLT);
468468 dma_init (_currentSetting->spiDmaDev );
469469 dma_xfer_size dma_bit_size = (_currentSetting->dataSize ==DATA_SIZE_16BIT) ? DMA_SIZE_16BITS : DMA_SIZE_8BITS;
470470 dma_setup_transfer (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , &_currentSetting->spi_d ->regs ->DR , dma_bit_size,
471- transmitBuf, dma_bit_size, flags);// Transmit buffer DMA
471+ ( volatile void *) transmitBuf, dma_bit_size, flags);// Transmit buffer DMA
472472 dma_set_priority (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , DMA_PRIORITY_LOW);
473473}
474474
@@ -498,12 +498,12 @@ uint8 SPIClass::dmaSendRepeat(uint16 length) {
498498 return b;
499499}
500500
501- uint8 SPIClass::dmaSend (void * transmitBuf, uint16 length, bool minc) {
501+ uint8 SPIClass::dmaSend (const void * transmitBuf, uint16 length, bool minc) {
502502 dmaSendSet (transmitBuf, minc);
503503 return dmaSendRepeat (length);
504504}
505505
506- uint8 SPIClass::dmaSendAsync (void * transmitBuf, uint16 length, bool minc) {
506+ uint8 SPIClass::dmaSendAsync (const void * transmitBuf, uint16 length, bool minc) {
507507 uint8 b = 0 ;
508508
509509 if (_currentSetting->state != SPI_STATE_READY)
@@ -529,7 +529,7 @@ uint8 SPIClass::dmaSendAsync(void * transmitBuf, uint16 length, bool minc) {
529529 // TX
530530 dma_xfer_size dma_bit_size = (_currentSetting->dataSize ==DATA_SIZE_16BIT) ? DMA_SIZE_16BITS : DMA_SIZE_8BITS;
531531 dma_setup_transfer (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , &_currentSetting->spi_d ->regs ->DR , dma_bit_size,
532- transmitBuf, dma_bit_size, flags);// Transmit buffer DMA
532+ ( volatile void *) transmitBuf, dma_bit_size, flags);// Transmit buffer DMA
533533 dma_set_num_transfers (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel , length);
534534 dma_clear_isr_bits (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel );
535535 dma_enable (_currentSetting->spiDmaDev , _currentSetting->spiTxDmaChannel );// enable transmit
0 commit comments