The processors in the Pi, Pi 2 and Pi 3 have different base addresses for their peripherals.

The C programs for driving the Gertboard worked on the earlier versions of the Pi, but not on the Pi 2 B. I found that line 39 of gb_common.c stating #define BCM2708_PERI_BASE 0x20000000 was the source of the problem. That line tells the C compiler where in the address space of the program to find the driver hooks for the hardware. The Raspberry Pi 2 B has double the memory and this line needed to be changed to #define BCM2708_PERI_BASE 0x3F000000. After making that change and recompiling the programs by doing make all in that directory. The programs then worked on the Pi 2 B.

The fm transmitter program mentioned at the bottom of our workshop notes home page needed more addressing changes to make it work on the Raspberry Pi 2. See that page for details.

The changes that made it work for the Pi 2 also worked for the Pi 3.


Last updated: June 25, 2016

Valid CSS! Valid XHTML 1.0 Strict

Support Wikipedia

Contact Craig Van Degrift if you have problems or questions with this web site.