Greetings,
I just found another bug on NXP's SDK 2.3.0 (maybe on older versions as well, haven't tested it), this time on the driver for SPI over DMA (master) when using SPI instance 1 on a Kinetis microcontroller model MK22FN512VLH12.
My environment:
* Win 10 Pro 1709
* KDS 3.2
* SDK 2.3.0 for FRDM-K22F
* Dev Board FRDM-K22F
Using the demo application under SDK folder\boards\frdmk22f\driver_examples\dspi\edma_b2b_transfer\master\
First test: Original application (SPI0):
* Transfer Size: 64 Bytes (original)

* Transfer Size: 32 Bytes

* Transfer Size: 4 Bytes

Second Test: Application changed to SPI1:
pin_mux.c:
void BOARD_InitPins(void)
{
CLOCK_EnableClock(kCLOCK_PortC);
CLOCK_EnableClock(kCLOCK_PortD);
CLOCK_EnableClock(kCLOCK_PortE);
PORT_SetPinMux(PORTC, 4U, kPORT_MuxAlt2);
PORT_SetPinMux(PORTD, 4U, kPORT_MuxAlt7);
PORT_SetPinMux(PORTC, 5U, kPORT_MuxAlt2);
PORT_SetPinMux(PORTD, 5U, kPORT_MuxAlt7);
PORT_SetPinMux(PORTC, 6U, kPORT_MuxAlt2);
PORT_SetPinMux(PORTD, 6U, kPORT_MuxAlt7);
PORT_SetPinMux(PORTC, 7U, kPORT_MuxAlt2);
PORT_SetPinMux(PORTD, 7U, kPORT_MuxAlt7);
PORT_SetPinMux(PORTE, 0U, kPORT_MuxAlt3);
PORT_SetPinMux(PORTE, 1U, kPORT_MuxAlt3);
SIM->SOPT5 = ((SIM->SOPT5 &
(~(SIM_SOPT5_UART1TXSRC_MASK)))
| SIM_SOPT5_UART1TXSRC(SOPT5_UART1TXSRC_UART_TX));
}
dspi_edma_b2b_transfer_master.c:
#define EXAMPLE_DSPI_MASTER_BASEADDR SPI1
#define EXAMPLE_DSPI_MASTER_DMA_MUX_BASEADDR DMAMUX
#define EXAMPLE_DSPI_MASTER_DMA_BASEADDR DMA0
#define EXAMPLE_DSPI_MASTER_DMA_RX_REQUEST_SOURCE kDmaRequestMux0SPI1
#define EXAMPLE_DSPI_MASTER_DMA_TX_REQUEST_SOURCE kDmaRequestMux0SPI1
#define DSPI_MASTER_CLK_SRC DSPI1_CLK_SRC
#define DSPI_MASTER_CLK_FREQ CLOCK_GetFreq(DSPI1_CLK_SRC)
#define EXAMPLE_DSPI_MASTER_PCS_FOR_INIT kDSPI_Pcs0
#define EXAMPLE_DSPI_MASTER_PCS_FOR_TRANSFER kDSPI_MasterPcs0
#define EXAMPLE_DSPI_DEALY_COUNT 0xfffffU
#define TRANSFER_SIZE 64U
#define TRANSFER_BAUDRATE 500000U
* Transfer Size: 64 Bytes (original)

* Transfer Size: 32 Bytes

* Transfer Size: 4 Bytes

As can be seen, not only the amount of data to transfer is not transferred, the first 2 Bytes are wrong (instead of send '1' and '2', it sends '1' then '0').
Has any one had this problem and solved it? Anything that I'm doing wrong?
Best regards,
Bruno