- SoutheastCon paper
- BCM2385
ARM Peripherals
- Address Map (pp 5)
- Chapter 3 (pp 28–37), BSC (Broadcom Serial Controller) or I2C
- Chapter 6 (pp 89–108), General Purpose I/O
- Chapter 9 (pp 138–147), Pulse Width Modulation
- I2C
- The pinout — Physical vs GPIO
- How about Ground (9), BCM 17 (11), BCM 27 (13), 3v3 Power (17)
- RPi Low-level peripherals
- How about Ground (9), BCM 17 (11), BCM 27 (13), 3v3 Power (17)
- GPIO on Linux — a tale of many kernel interfaces
- The sysfs interface
- Deprecated ABI documentation
- No input with pullup?
- /sys/class/gpio
- ls -i /sys/class
- mount | grep sysfs
- Deprecated ABI documentation
- The dangerous /dev/mem hack
- The safer /dev/gpiomem solution
- Kernel source for the entire driver
mmap
system call
- Character device with
ioctl
/dev/gpiochipN
- Character device documentation
ioctl
based ABI
- Writing a device driver — Yikes!
- The ultimate quide
- The sysfs interface
- GPIO on Linux — a tale of many programming interfaces
sysfs
and the shell- The dangerous /dev/mem hack
- There is no excuse for doing this...
- The safer /dev/gpiomem solution
- pigpio library
- dpkg --listfiles pigpio
- RPi.GPIO interface
- pigpio library
- Character device with
ioctl
- Raspberry gPIo tutorial by sparkfun
- Adafruit’s GPIO Setup lesson part of Adafruit’s guides
- MagPi Essentials GPIOZer
Things to do
Try having the button toggle the LED off and on. You may need to do a little switch debouncing. (Sleeping for 0.1 seconds should be OK.)