So thinking about how I would make my own hardware/drivers I'm using the GPIO and I know the GPIO uses specific memory banks in a certain range for all hardware in fact, but how would I go about reading and writing them to these memory banks?
Does the USB work in a similar manner?
P.S I'm using a Raspberry Pi.