In this document we will describe the installation of tools for working with firmware - the firmware toolchain. The toolchain is designed to allow the firmware operations on all the supported operating systems using a command line in a uniform manner.

The firmware toolchain consists of several fundamental components:

  • Compiler GCC ARM Embedded

  • Version control system Git

  • Interpret for scripting language Python 3

  • DFU upload utility dfu-util

  • Program BigClown Firmware Tool

At the end of the article, we'll show how to develop and compile firmware with popular editors like Atom or Visual Studio Code.

To install, go to one of the supported platforms:

To upgrade an existing installation, go to one of the supported platforms:

Setup on Windows

  1. Download the current version of the BigClown Toolchain Windows installer:

    Download from GitHub
  2. Launch the downloaded installer and choose the destination directory:

  3. Now you can adjust the desired Path environment variable (we recommend to leave the default settings if in doubt) and proceed with the installation:

  4. The FTDI driver setup will launch automatically during the installation - install it:

  5. After finishing the installation, lauch the BigClown Toolchain using one these 3 ways:

    • From the Desktop

    • From the Start menu

    • From the context menu on the selected directory (using a right click)

  6. Continue on the document Toolchain Guide. You may also try:

Update on Windows

  1. Download and install the new version according to the chapter Setup on Windows.

Uninstall on Windows

  1. Uninstall Apps & features:

Setup on macOS

  1. Open the Terminal application.

  2. Install Homebrew (unless you already have it).

  3. Install GCC ARM Embedded:

    brew install caskroom/cask/gcc-arm-embedded
    
  4. Install Git:

    brew install git
    
  5. Install dfu-util:

    brew install dfu-util
    
  6. Install Python 3:

    brew install python3
    
  7. Update pip (Python Package Manager) to the latest version:

    sudo pip3 install --upgrade --no-cache-dir pip
    
  8. Install BigClown Firmware Tool:

    sudo pip3 install --upgrade --no-cache-dir bcf
    
  9. Continue on the document Toolchain Guide. You may also try:

Update on macOS

  • Update of packages:

    brew update && brew upgrade
    
  • BigClown Firmware tool update:

    sudo pip3 install --upgrade --no-cache-dir bcf
    

Setup on Ubuntu

  1. Open the Terminal application.

  2. Add the following PPA to the list of available repositories:

    sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
    
  3. Update the index of the available packages:

    sudo apt update
    
  4. Install GCC ARM Embedded:

    sudo apt install gcc-arm-embedded
    
  5. Install Git:

    sudo apt install git
    
  6. Install dfu-util:

    sudo apt install dfu-util
    
  7. Install Python 3 (required by the BigClown Firmware Tool):

    sudo apt install python3.5 python3-pip
    
  8. Update pip (Python Package Manager) to the latest version:

    sudo pip3 install --upgrade --no-cache-dir pip
    
  9. Install BigClown Firmware Tool:

    sudo pip3 install --upgrade --no-cache-dir bcf
    
  10. Continue on the document Toolchain Guide. You may also try:

Update on Ubuntu

  • Update of packages:

    sudo apt update && sudo apt upgrade
    
  • BigClown Firmware tool update:

    sudo pip3 install --upgrade --no-cache-dir bcf
    

Setup on Generic Linux

If you have other Linux distribution or unsupported Ubuntu version, we recommend to use official GNU Embedded Toolchain for ARM from developer.arm.com pages. This package is validated by ARM and tested by us.

  1. Go to https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads and download Linux 64-bit package.

  2. Extract package to filesystem, e.g. into /opt folder (available for all users, you will need root privileges) or into ~/.local/opt folder (available only for you)

    1. /opt version

      cd <folder with package> # go to folder with downloaded file
      sudo cp gcc-arm-none-eabi-6-*-update-linux.tar.bz2 /opt  # copy to destination folder
      cd /opt  # go there
      sudo tar xjf gcc-arm-none-eabi-6-*-update-linux.tar.bz2  # unpack file
    2. ~/.local/opt version

      mkdir -p ~/.local/opt  # create folder
      cd <folder with package> # go to folder with downloaded file
      cp gcc-arm-none-eabi-6-*-update-linux.tar.bz2 ~/.local/opt  # copy to destination folder
      cd ~/.local/opt  # go there
      tar xjf gcc-arm-none-eabi-6-*-update-linux.tar.bz2  # unpack file
  3. Create a symbolic link gcc-arm-none-eabi-6

    sudo ln -s gcc-arm-none-eabi-6-<version>-update gcc-arm-none-eabi-6  # where <version> could be: 2017-q2
  4. Update PATH variable so you can use arm-none-eabi-* binaries directly

    cd  # go to user home folder
    # use your favorite editor and edit ".profile" file
    # find line with PATH variable. e.g.:
    
        export PATH="$PATH:/…"
    # and add to your path to the end (/opt version):
    
    export PATH="$PATH:/…:/opt/gcc-arm-none-eabi-6/bin"
    
    # or (~/.local/opt version)
    
    export PATH="$PATH:/…:~/.local/opt/gcc-arm-none-eabi-6/bin"
    
    # if there is no PATH line, add it
    
    export PATH="$PATH:/opt/gcc-arm-none-eabi-6/bin"
    
    # or
    
    export PATH="$PATH:~/.local/opt/gcc-arm-none-eabi-6/bin"
  5. Use your distribution package manager and install

    • Git
    • Python 3
    • dfu-util
  6. Install BigClown Firmware Tool:

    sudo pip3 install --upgrade --no-cache-dir bcf
    
  7. Continue on the document Toolchain Guide. You may also try:

Update on Generic Linux

  • Update Toolchain

    • Download updated Linux 64-bit package from https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
    • Extract it into proper folder (/opt, ~/.local/opt or other)
    • Update symbolic link

      sudo ln -sf gcc-arm-none-eabi-6-<version>-update gcc-arm-none-eabi-6  # where <version> could be: 2017-q2

      or

      ln -sf gcc-arm-none-eabi-6-<version>-update gcc-arm-none-eabi-6  # where <version> could be: 2017-q2
  • Update packages

    • Use your distribution package manager
  • BigClown Firmware tool update:

    sudo pip3 install --upgrade bcf
    

Integration with Atom

TODO

Integration with Visual Studio Code

TODO

Integration with KDevelop

TODO