Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #define RINGFIFO_SIZE (1024) /* serial buffer in bytes (power 2) */
  2. #define RINGFIFO_MASK (RINGFIFO_SIZE-1ul) /* buffer size mask */
  3.  
  4. /* Buffer read / write macros */
  5. #define RINGFIFO_RESET(ringFifo) {ringFifo.rdIdx = ringFifo.wrIdx = 0;}
  6. #define RINGFIFO_WR(ringFifo, dataIn) {ringFifo.data[RINGFIFO_MASK & ringFifo.wrIdx++] = (dataIn);}
  7. #define RINGFIFO_RD(ringFifo, dataOut){ringFifo.rdIdx++; dataOut = ringFifo.data[RINGFIFO_MASK & (ringFifo.rdIdx-1)];}
  8. #define RINGFIFO_EMPTY(ringFifo) (ringFifo.rdIdx == ringFifo.wrIdx)
  9. #define RINGFIFO_FULL(ringFifo) ((RINGFIFO_MASK & ringFifo.rdIdx) == (RINGFIFO_MASK & (ringFifo.wrIdx+1)))
  10. #define RINGFIFO_COUNT(ringFifo) (RINGFIFO_MASK & (ringFifo.wrIdx - ringFifo.rdIdx))
  11.  
  12. /* buffer type */
  13. typedef struct{
  14. uint32_t size;
  15. uint32_t wrIdx;
  16. uint32_t rdIdx;
  17. uint8_t data[RINGFIFO_SIZE];
  18. } RingFifo_t;
  19. RingFifo_t gUartFifo;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement