RaspberryPi:Programming

From UCT EE Wiki
Jump to navigation Jump to search

Overview[edit]

The Raspberry Pi can run a Linux based operating system, and can therefore use almost any programming language. For the sake of interfacing with the GPIOs, Python and C/C++ are usually considered the simplest, and you will find the most resources.

For programming in Python, please visit RaspberryPi:ProgrammingInPython.

For programming in C or C++, please visit RaspberryPi:ProgrammingInC.

Programming Environments[edit]

Options for programming environments include:

  1. PyCharm for Python
  2. CLion for C and C++
  3. Visual Studio Code for just about anything, so long as you can find a plug in
  4. Using one of the many standard Text Editors

Cross Compilation[edit]

For more information on cross compilation, please see Toolchains, Compilers And Makefiles.

Requirements[edit]

On Windows, download and install the cross compilation framework: http://gnutoolchains.com/raspberry/ When installing, make sure you select “Add to Path”.

On a Linux/Ubuntu-based system, run

$ sudo apt-get install libc6-armel-cross libc6-dev-armel-cross 
$ sudo apt-get install binutils-arm-linux-gnueabi libncurses5-dev lib32z1
$ sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

Using cross compilation[edit]

Cross compilation is as simple as setting a different compiler in your make file or compilation script. For example, instead of

$ g++  <file>.cpp -o <compiled_file_name>

You would run

$ arm-linux-gnueabihf-g++ <file>.cpp -o <compiled_file_name>

Moving the files to the Pi[edit]

To move the compiled files to the Pi, SCP (See Network Protocols) is quick and painless solution. Once the compiled file has been copied across, add the execution flag and run the file by running the following commands on the Raspberry Pi:

$ chmod +x <compiled_file_name>
$ ./<compiled_file_name>