Hi, I am using KL46Z SPI with DMA, and I do receive a block using the following code (which works flawlessly):
SPIMasterLDD_1_ReceiveBlock(SPIMasterLDD_1_TDD_Ptr,reg_data,cnt);
SPIMasterLDD_1_SendBlock(SPIMasterLDD_1_TDD_Ptr,reg_data,cnt);
while(SPIMasterLDD_1_GetBlockReceivedStatus(SPIMasterLDD_1_TDD_Ptr)==FALSE);
I use slow clock in order to save battery (core=8MHz).
I noticed a long delay (120us) before rx/tx, and I finally figured it out the delay is due to SetDestinationAddress/SetSourceAddress:
LDD_TError DMA1_SetSourceAddress(DMA1_TChanDeviceData *ChanDeviceDataPtr, LDD_DMA_TData *Address)
{
/* This test can be disabled by setting the "Ignore state checking"
property to the "yes" value in the "Configuration inspector" */
if (((uint32_t)Address % GetTransactionUnitSize(((DMA1_TChnDevData *)ChanDeviceDataPtr)->TCDPtr)) != 0U) {
return ERR_PARAM_ADDRESS;
}
DMA1__SetSrcAddress(((DMA1_TChnDevData *)ChanDeviceDataPtr)->TCDPtr, (uint32_t)Address);
return ERR_OK;
}
they both perform a 32 bit modulo operation for preliminary address alignment checking. I would like to disable this test. Comment on the function states:
This test can be disabled by setting the "Ignore state checking" property to the "yes" value in the "Configuration inspector"
But such option does not exist on KDS3.0.0:

Does anybody know how to disable DMA Address Alignment checking?
Thank you in advance.
Best Regards.
Vito.