added comment regarding FGPIO
added a fancy ring buffer implementation
added data synchronization barrier before wait for interrupt