Part Number: TDA2PXEVM
Tool/software: TI-RTOS
I am developing MCSPI slave & interrupt mode on TDA2PX with external master device.
if ((MCSPI_COMMMODE_SLAVE ==
instHandle->spiHWconfig.masterOrSlave) &&
(instHandle->opMode ==
MCSPI_OPMODE_INTERRUPT))
{
if ((Bool) TRUE ==
Queue_empty(Queue_handle(&(chanHandle->
queuePendingList))))
{
/* This is the first buffer just prime
*this */
tempCastIoPtr = (Void *) ioPacket;
Queue_put(Queue_handle(
&(chanHandle->
queuePendingList)),
(Queue_Elem *) tempCastIoPtr);
ioPacketProcess = NULL;
status = IOM_PENDING;
Hwi_restore(hwiKey);
}
else
{
/* This is the not the first buffer.
* Put current packet in queue. */
tempCastIoPtr = (Void *) ioPacket;
Queue_put(Queue_handle(
&(chanHandle->
queuePendingList)),
(Queue_Elem *) tempCastIoPtr);
/* Get the top element in queue. */
ioPacketProcess =
(IOM_Packet *) Queue_get(
Queue_handle(&(
chanHandle
->
queuePendingList)));
instHandle->currentActiveChannel =
(Mcspi_ChanObj *) chanHandle;
Hwi_restore(hwiKey);
status = mcspiSlaveTransferStart(
instHandle, chanHandle,
ioPacketProcess);
}
}
......