I am developing a GUI to control custom gear using a Bone Black. I have gotten a
contiguous byte of GPIO output pins working on GPIO1, bits 0-7 coming out on
P8. I am using mmap to map a region at 0x4804c000 + offsets of 0x134 for output-enable,
and 0x190 for clear data out and 194 for set data out. This all works fine.
But, I need one more output pin. Since the rest of GPIO1 is tied up with hdmi,
I thought I’d use GPIO2 bit 2. So, I used the exact same scheme as for
GPIO1, but using a base address for the region of 0x481ac000, as shown in
the spruh73i.pdf manual, in the memory map section. But, I get a
“Bus error” message when the program tries to do a write to the
offset of any of the GPIO2 regs. Even reading offset 0x138 (the data
in reg) gives a bus error.
So, is the offset to the GPIO2 register bank correct at 0x481ac000?
Or, can anyone explain why I get a bus error on the GPIO2 addr
but the GPIO1 works?