Skip to content

Commit 32446a5

Browse files
committed
- removed transfer(buf, rxbuf, t count) to comply with the requirement that no new functions shall be added that are not defined in the standard Arduino API
1 parent 33d8348 commit 32446a5

File tree

2 files changed

+0
-82
lines changed

2 files changed

+0
-82
lines changed

libraries/SPI/SPI.cpp

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -300,87 +300,6 @@ void ArduinoSPI::transfer(void *buf, size_t count)
300300
}
301301
}
302302

303-
void ArduinoSPI::transfer(void *buf, void *rxbuf, size_t count)
304-
{
305-
if (_is_sci) {
306-
_spi_cb_event[_cb_event_idx] = SPI_EVENT_TRANSFER_ABORTED;
307-
308-
_write_then_read(&_spi_sci_ctrl, buf, rxbuf, count, SPI_BIT_WIDTH_8_BITS);
309-
310-
for (auto const start = millis();
311-
(SPI_EVENT_TRANSFER_COMPLETE != _spi_cb_event[_cb_event_idx]) && (millis() - start < 1000); )
312-
{
313-
__NOP();
314-
}
315-
if (SPI_EVENT_TRANSFER_ABORTED == _spi_cb_event[_cb_event_idx])
316-
{
317-
end();
318-
}
319-
}
320-
else {
321-
size_t n32 = count / 4U;
322-
if (n32 != 0U) {
323-
_spi_ctrl.p_regs->SPCR_b.SPE = 0; /* disable SPI unit */
324-
_spi_ctrl.p_regs->SPDCR = R_SPI0_SPDCR_SPLW_Msk; /* SPI word access */
325-
_spi_ctrl.p_regs->SPCMD_b[0].SPB = 2; /* spi bit width = 32 */
326-
_spi_ctrl.p_regs->SPCR_b.SPE = 1; /* enable SPI unit */
327-
328-
const uint32_t* tx32 = (const uint32_t *) buf;
329-
uint32_t* rx32 = (uint32_t *) rxbuf;
330-
size_t index_rx = 0;
331-
size_t index_tx = 0;
332-
333-
while ((index_tx < 2U) && (index_tx < n32)) {
334-
if (_spi_ctrl.p_regs->SPSR_b.SPTEF) {
335-
_spi_ctrl.p_regs->SPDR = (buf != NULL) ? tx32[index_tx] : 0xFFFFFFFF;
336-
index_tx++;
337-
}
338-
}
339-
340-
while (index_tx < n32) {
341-
if (_spi_ctrl.p_regs->SPSR_b.SPRF) {
342-
uint32_t tmp = _spi_ctrl.p_regs->SPDR;
343-
_spi_ctrl.p_regs->SPDR = (buf != NULL) ? tx32[index_tx] : 0xFFFFFFFF;
344-
if (rxbuf != NULL) {
345-
rx32[index_rx] = tmp;
346-
}
347-
index_rx++;
348-
index_tx++;
349-
}
350-
}
351-
352-
while (index_rx < n32) { /* collect the last word received */
353-
if (_spi_ctrl.p_regs->SPSR_b.SPRF) {
354-
uint32_t tmp = _spi_ctrl.p_regs->SPDR;
355-
if (rxbuf != NULL) {
356-
rx32[index_rx] = tmp;
357-
}
358-
index_rx++;
359-
}
360-
}
361-
362-
_spi_ctrl.p_regs->SPCR_b.SPE = 0; /* disable SPI unit */
363-
_spi_ctrl.p_regs->SPDCR = R_SPI0_SPDCR_SPBYT_Msk; /* SPI byte access */
364-
_spi_ctrl.p_regs->SPCMD_b[0].SPB = 7; /* spi bit width = 8 */
365-
_spi_ctrl.p_regs->SPCR_b.SPE = 1; /* enable SPI unit */
366-
}
367-
368-
/* send the remaining bytes with 8-bit transfers */
369-
if (count != (4U * n32)) {
370-
uint8_t *rx = (uint8_t *) rxbuf;
371-
const uint8_t* tx = (const uint8_t *) buf;
372-
for (size_t i = 4U * n32; i < count; i++) {
373-
_spi_ctrl.p_regs->SPDR_BY = (buf != NULL) ? tx[i] : 0xFF;
374-
while (0U == _spi_ctrl.p_regs->SPSR_b.SPRF) {}
375-
uint8_t tmp = _spi_ctrl.p_regs->SPDR_BY;
376-
if (rxbuf != NULL) {
377-
rx[i] = tmp;
378-
}
379-
}
380-
}
381-
}
382-
}
383-
384303
void ArduinoSPI::beginTransaction(arduino::SPISettings settings)
385304
{
386305
if (!_is_initialized)

libraries/SPI/SPI.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ class ArduinoSPI : public SPIClass
7171
virtual uint8_t transfer(uint8_t data);
7272
virtual uint16_t transfer16(uint16_t data);
7373
virtual void transfer(void *buf, size_t count);
74-
virtual void transfer(void *buf, void *rxbuf, size_t count);
7574

7675
// Transaction Functions
7776
virtual void usingInterrupt(int __attribute__((unused)) interruptNumber) { }

0 commit comments

Comments
 (0)