The Raspberry Pi is an awesome $35 dollar Linux board containing a Broadcom system on chip that integrates a 700MHz ARM11 CPU core, a very powerful GPU capable of running 1080p graphics as well as 512MBs of RAM. The Board provides two USB ports, an Ethernet port, an HDMI port as well as a 2×13 0.1″ header providing access to GPIO/I2C and SPI peripherals! for more on the Raspberry Pi board please visit: http://www.raspberrypi.org/
I will be writing a series of tutorials on developing for the Raspberry Pi in C++. In order to follow through with these tutorials you will need to have good familiarity with C/C++ and to also be somewhat familiar with Linux. The tutorial series will include the following topics:
- Development Environment for the Raspberry Pi using a Cross Compiling Toolchain (Updated July 15 2013!)
- Remote debugging of your application while its running on the RaspberryPi (GDBServer) (Updated July 15 2013!)
- Cross Compiling GTK applications For the Raspberry Pi
- Cross Compiling QT4 Applications for the Raspberry Pi
This section lists blog entries that demonstrates how to use C++ to access the various peripherals e.g. I2C/SPI/GPIO/UART on the Raspberry Pi. I must warn you that this code is not necessarily hardened and may not be ideal for use as a “plug & play” API. I highly recommend WiringPi for those that simply want an API to call and use in their projects.
The main objective of these examples is to demonstrate how C++ classes can be used in a simple but effective way to control the Pi’s hardware. It is also a diary of sorts for me as it gives me the opportunity to practice, develop and keep track of my “mad” C++ skills and knowledge of the hardware interfaces.
- Introduction to accessing the Raspberry Pi’s GPIO in C++ (Linux Way!)
- Controlling the Raspberry Pi’s GPIOs using Direct Register Access in C++
- Interfacing an I2C GPIO expander (MCP23017) to the Raspberry Pi using C++
- Interfacing an SPI ADC (MCP3008) chip to the Raspberry Pi using C++ (spidev)
- Accessing The Hardware PWM Peripheral on the Raspberry Pi in C++