This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| 
                    projects:crazyflie:devenv:index [2012-03-11 10:06] arnaud  | 
                
                    projects:crazyflie:devenv:index [2021-06-24 16:47] (current) kimberly  | 
            ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | <WRAP center round important 60%> | ||
| + | This page has deprecated and will be archived. Please go to [[https:// | ||
| + | </ | ||
| ====== Development environment ====== | ====== Development environment ====== | ||
| ===== Software Tools ===== | ===== Software Tools ===== | ||
| ==== Software used ==== | ==== Software used ==== | ||
| - | The following software  | + | The following software  | 
| - |   * [[http://www.mentor.com/embedded-software/ | + | * [[https://launchpad.net/gcc-arm-embedded/+download| | 
| - |   * [[http://http:// | + | GNU Tools for ARM Embedded Processors]] | 
| + |   * [[http:// | ||
| These are available for both Windows and Linux. | These are available for both Windows and Linux. | ||
| ==== Setup on Fedora 16 ==== | ==== Setup on Fedora 16 ==== | ||
| === Installing === | === Installing === | ||
| - | |||
| - | === Fix permissions === | ||
| In order to fix the permissions so it's possible to use the JTAG and USB Radio without being root do the following steps. | In order to fix the permissions so it's possible to use the JTAG and USB Radio without being root do the following steps. | ||
| < | < | ||
| Line 25: | Line 27: | ||
| </ | </ | ||
| - | Create a file named / | + | Create a file named /etc/udev/ | 
| < | < | ||
| SUBSYSTEM==" | SUBSYSTEM==" | ||
| + | SUBSYSTEM==" | ||
| + | </ | ||
| + | |||
| + | ==== Setup on Ubuntu 13.04 ==== | ||
| + | Most of the software that you will need is now available from the repositories so just run the following command to install it: | ||
| + | < | ||
| + | sudo apt-get -y install mercurial python2.7 python-usb python-pygame python-qt4 qt4-designer openocd build-essential | ||
| + | </ | ||
| + | |||
| + | Run the following to download, unpack and copy the ARM Embedded toolchain: | ||
| + | < | ||
| + | wget https:// | ||
| + | tar xjf gcc-arm-none-eabi-4_7-2013q1-20130313-linux.tar.bz2 | ||
| + | mkdir ~/bin | ||
| + | mv gcc-arm-none-eabi-4_7-2013q1 ~/ | ||
| + | </ | ||
| + | |||
| + | And then also add the binaries to your path: | ||
| + | In order for the build system to find the toolchain when building the firmware it has to be added to the path: | ||
| + | < | ||
| + | echo -e " | ||
| + | source ~/.bashrc | ||
| </ | </ | ||
| ==== Setup on Windows ==== | ==== Setup on Windows ==== | ||
| + | |||
| + | TBD | ||
| + | |||
| + | ==== Setup on Mac OS X ==== | ||
| + | |||
| + | Development environment setup is relatively easy on Mac OS X. | ||
| + | |||
| + | [[http:// | ||
| ===== Compiling the copter code ===== | ===== Compiling the copter code ===== | ||
| Line 36: | Line 68: | ||
| The Crazyflie project is based on a Makefile. A couple of target are useful: | The Crazyflie project is based on a Makefile. A couple of target are useful: | ||
| <code bash> | <code bash> | ||
| - | $ make # Make copter firmware | + | crazyflie-fimrware$ make # Make copter firmware | 
| - | $ make V=1 # Make copter firmware and shows the full compilation commands | + | crazyflie-fimrware$ make V=1 # Make copter firmware and shows the full compilation commands | 
| - | $ make CLOAD=1 # make copter firmware to be used with the bootloader | + | crazyflie-fimrware$ make CLOAD=1 # Make copter firmware to be used with the bootloader | 
| - | $ make flash # Flash firmware using openOCD and the jtagKey | + | crazyflie-fimrware$  | 
| - | $ make reset # Reset the copter using openOCD | + | crazyflie-fimrware$ make cload # Flash the firmware using the radio bootloader | 
| - | $ make openocd # Launch openOCD and connect it to the copter (can then be used via the telnet interface and/or GDB) | + | crazyflie-fimrware$ make flash # Flash firmware using openOCD and the jtagKey | 
| + | crazyflie-fimrware$ make reset # Reset the copter using openOCD | ||
| + | crazyflie-fimrware$ make openocd # Launch openOCD and connect it to the copter (can then be used via the telnet interface and/or GDB) | ||
| </ | </ | ||
| - | It must be noted that the openOCD targets do not make the copter code, hence the compilation must be called first with '' | + | A couple of variables can be set on the command line or shell environment to configure  | 
| + | ^ Variable ^ Default value ^ Usage ^ | ||
| + | |  CLOAD |      1        | If at 1 the firmware is liked to be used with the bootloader.  | ||
| + | |  DEBUG |      0        | If at 1 the firmware will be build without optimization  | ||
| + | |  CROSS_COMPILE |    | ||
| + | |  OPENOCD_INTERFACE |    | ||
| + | | V | 0 | Verbose mode. If V=1 the compilers command lines will be displayed. If V=0 only the tool type and target file are displayed. | | ||
| + | |  PYTHON2 |  python  | ||
| + | |  USE_ESKYLINK|  | ||
| + | It is possible to create a file // | ||
| + | |||
| + | The openOCD targets do not make the copter code, hence the compilation must be called first with '' | ||
| + | |||
| + | It is possible to flash with openOCD/ | ||
| + | |||
| + | It is also possible to work with the copter code from within Eclipse. | ||
| + | ===== Compiling and flashing the bootloader ===== | ||
| + | |||
| + | The copter can be loaded with a radio bootloader contained in the crazyloader folder. The dev environment is very similar to the copter one: | ||
| + | <code bash> | ||
| + | crazyflie-bootloader$ make # Make the bootoader | ||
| + | crazyflie-bootloader$ make flash # Flash the bootloader with openOCD | ||
| + | </ | ||