void testIsrFifoFromTask(void) { void *pGetData; /* pointer to FIFO object get from the queue */ void *pPutData; /* pointer to FIFO object put to queue */ int count = 0; /* counter */ TC_PRINT("Test ISR FIFO (invoked from Task)\n\n"); /* This is data pushed by function testIsrFifoFromFiber * Get all FIFOs */ _trigger_nano_isr_fifo_get(); pGetData = isrFifoInfo.data; while (pGetData != NULL) { TC_PRINT("Get from queue1: count = %d, ptr is %p\n", count, pGetData); if ((count >= NUM_FIFO_ELEMENT) || (pGetData != pPutList1[count])) { TCERR1(count); retCode = TC_FAIL; return; } /* Get the next element */ _trigger_nano_isr_fifo_get(); pGetData = isrFifoInfo.data; count++; } /* while */ /* Put data into queue and get it again */ pPutData = pPutList2[3]; isrFifoInfo.data = pPutData; _trigger_nano_isr_fifo_put(); isrFifoInfo.data = NULL; /* force data to a new value */ /* Get data from queue */ _trigger_nano_isr_fifo_get(); pGetData = isrFifoInfo.data; /* Verify data */ if (pGetData != pPutData) { retCode = TC_FAIL; TCERR2; return; } else { TC_PRINT("\nTest ISR FIFO (invoked from Task) - put %p and get back %p\n", pPutData, pGetData); } TC_END_RESULT(retCode); } /* testIsrFifoFromTask */
void testIsrFifoFromFiber(void) { void *pGetData; /* pointer to FIFO object get from the queue */ TC_PRINT("Test ISR FIFO (invoked from Fiber)\n\n"); /* This is data pushed by function testFiberFifoGetW */ _trigger_nano_isr_fifo_get(); pGetData = isrFifoInfo.data; TC_PRINT("ISR FIFO Get from queue1: %p\n", pGetData); if (isrFifoInfo.data != pMyFifoData4) { retCode = TC_FAIL; TCERR2; return; } /* Verify that the queue is empty */ _trigger_nano_isr_fifo_get(); pGetData = isrFifoInfo.data; if (pGetData != NULL) { TC_PRINT("Get from queue1: %p\n", pGetData); retCode = TC_FAIL; TCERR3; return; } /* Put more item into queue */ TC_PRINT("\nISR FIFO (running in fiber) Put Order:\n"); for (int i = 0; i < NUM_FIFO_ELEMENT; i++) { isrFifoInfo.data = pPutList1[i]; TC_PRINT(" %p,", pPutList1[i]); _trigger_nano_isr_fifo_put(); } TC_PRINT("\n"); TC_END_RESULT(retCode); } /* testIsrFifoFromFiber */