User Tools

Site Tools


Development tools

ARM GNU C/C++ toolchain for bare-metal devices

Download the arm-none-eabi-gcc-4.9 toolchain from the GNU ARM Embedded Toolchain project (currently tested with the 14.07 release ).

Extract the archive (e.g. to ~/toolchains ).

Update your PATH to find the newly installed toolchain. In your ~/.profile (for bash) or your ~/.zshrc (for zsh) , add


Restart your session so that is sourced again, and verify that you are running the correct arm-none-eabi-gcc version:

$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20141119 (release) [ARM/embedded-4_9-branch revision 218278]
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO

Add compiler to Code::Blocks

If you want to use an IDE like Code::Blocks, you can configure it to use the newly installed toolchain.

  • Settings > Compiler
  • Copy “GNU GCC Compiler”, call the new compiler “Quimesis ARM Linux Compiler”
  • Toolchain executables:
    • Compiler's installation directory: $HOME/toolchain/usr/bin
    • C compiler: arm-linux-gcc
    • C++ compiler: arm-linux-g++
    • Linker for dynamic libs: arm-linux-g++
    • Linker for static libs: arm-linux-ar

When you create your project in Code::Blocks, be sure to select the “Quimesis ARM Linux Compiler”.

Libraries for host developments

  • libfuse-dev

Run a 32-bit toolchain on a 64-bit Ubuntu

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

Windows tools

ST/Link v2 windows driver: STSW-LINK009 :

ST/Link Utility: STSW-LINK004 :

GDB server for emIDE:

CANUSB module

To use the CANUSB module :

  1. Connect CAN_L (pin2), CAN_H (pin7) and CAN_GND (pin3) (see
  2. Follow this step-by-step guide to install the Lawicel CANUSB adapter on Linux (mainly step 1 to 6) :

In brief :

  • Install can-utils package :
sudo apt-get install can-utils
  • Check if the kernel modules “can”, “can_raw” and “slcan” are already loaded using lsmod. If not
sudo modprobe can
sudo modprobe can_raw
sudo modprobe slcan

Make them load automatically :

sudo nano /etc/modules

Add the three modules “can”, “can_raw” and “slcan” to the list (each goes in one line).

  • Bind the CANUSB device (on port /dev/ttyUSB0) to the slcan interface (slcan0) and set up baud rate to 1Mbit/s (-s8) :
sudo slcand -o -c -f -s8 /dev/ttyUSB0 slcan0
  • Bring the slcan interface up :
sudo ifconfig slcan0 up
  • To intercept CAN messages (sended and received) :
candump slcan0
  • To send a CAN message (for CAN 2.0 frames, max 8 bytes separated by '.' and given in hex format) :
cansend slcan0 <ID>#<byte1>.<byte2>.<...>.<byte8>

USB-I2C (USB-ISS) module


To be used with i2c-devantech-iss kernel module, to access a dedicated /dev/i2c-x device on one's Linux desktop.

Then you can use the /dev/i2c-x device directly, or request another kernel module to use it:

echo <your_module> <device_address> > /sys/bus/i2c/devices/i2c-<x>/new_device

When using zsh, the latest command may result into failure zsh: file exists: /sys/bus/i2c/devices/i2c-<x>/new_device; in that case, just switch to bash, and the same command will succeed.

FLIR cameras

PureThermal2 USB module


Normally foressen to work with Android.

But can be used on Linux using flir-gtk1).

See also

on Ubuntu < 20.04, this requires the amnual install of
tools.txt · Last modified: 2021/07/30 10:56 by damien