I am using Rel24_rc2.
I have managed to interface an SD card using the SPI function of the eTPU on a MOD5234. It works, but while waiting for an SPI transfer to complete, the eTPUEventPoll() function does not block and so prevents lower priority tasks from running. I tried to use the interrupt of the eTPU, getting the interrupt routine to post to a semaphore and replacing the eTPUEventPoll() with a OSSemPend(). But when I do this the OSSemPend() never returns. Has anyone had experience with using interrupts from the eTPU. I based my code on the eTPUAppNote examples, eTPU_IRQ & eTPU_SPI.
I have been able to write my own version of eTPUEventPoll() which does block, by adding OSTimeDly(1) at the end of the while loop, but this slows down the SD card accesses, which are already slow because of the limited bitrate supported by eTPU_SPI.
The eTPU example eTPU_SPI is fine for gettting the SD card to work via eTPU_SPI, all my problems start when I tried to use the eTPU interrupts.
Even a cursory examination of the eTPU_IRQ example makes me think it has not been tested as the declarations:
DWORD ChannelEdgeCount[15];
DWORD LastTick[15];
should be declared with [16] not [15] to support the 16 channels!!