This is an old revision of the document!
Table of Contents
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 https://launchpad.net/gcc-arm-embedded/+milestone/4.9-2014-q4-major ).
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
PATH="$HOME/toolchains/gcc-arm-none-eabi-4_9-2014q4/bin:$PATH"
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 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
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 : http://www.st.com/web/en/catalog/tools/PF260219
ST/Link Utility: STSW-LINK004 : http://www.st.com/web/en/catalog/tools/PF258168
GDB server for emIDE: http://emide.org/files/stlinkgdbserver.7z
Use CANUSB module
To use the CANUSB module :
- Connect CAN_L (pin2), CAN_H (pin7) and CAN_GND (pin3) (see http://www.can232.com/?page_id=16)
- Follow this step-by-step guide to install the Lawicel CANUSB adapter on Linux (mainly step 1 to 6) : http://pascal-walter.blogspot.com/2015/08/installing-lawicel-canusb-on-linux.html
In brief :
- To 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
- To 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>