Skip to content

Getting Started with HydraBus and STM32CubeIDE

Benjamin Vernoux edited this page Jul 26, 2020 · 18 revisions

Getting Started with HydraBus and STM32CubeIDE

The aim of this page is to explain How to Build / Flash and Debug HydraBus firmware with STM32CubeIDE on Windows & Linux.

1) Hardware requirements

  • HydraBus v1
  • HydraNFC Shield v2
  • STLINK-V3SET (Programmer/Debugger)
  • 10x high quality Dupont Wire 2.54mm female to female with min length 8cm (do not exceed 10cm if possible especially to reach maximum speed with SWD 24MHz...)
    • Only 9x "Dupont Wire 2.54mm female to female" are required but it is always better to have more/spare ...

2) Connect STLINK-V3SET (Programmer/Debugger) to HydraBus v1 / HydraNFC Shield v2

Connect STLINK-V3SET SWD to HydraBus v1 SWD like on picture: Connect STLINK-V3SET SWD to HydraBus v1 SWD

3) Software requirements

3-1) Install STM32CubeIDE v1.4 or more

3-2) Install developer tools and clone project repository

  • Official compiler for hydrafw v0.8beta release is GCC ARM 4.9 2015q3(GNU_ARM_4_9_2015q3)

  • WARNING: GCC ARM 4.8.x & GCC ARM 5.0/5-2016-q1 shall be avoided as they crash during link of chibios ...

  • Since 8600bd92a5ed083174e0867355f65a743dcfb9df, it is possible to use GCC 8.1 and newer to compile hydrafw

    3-2-1) For Windows

    3-2-1-1) Prerequisites for Windows
    git clone https://github.com/hydrabus/hydrafw_hydranfc_shield_v2.git hydrafw_hydranfc_shield_v2
    cd hydrafw_hydranfc_shield_v2/
    git submodule init
    git submodule update
    cd ./scripts
    python get-pip.py
    python -m pip install GitPython --upgrade
    python -m pip install intelhex --upgrade
    
    Note: 
    For get-pip.py if you need a proxy for internet access set following variables before to launch
    python get-pip.py:
    set http_proxy=http://proxy.myproxy.com
    set https_proxy=https://proxy.myproxy.com
    

    3-2-1) For Linux

    3-2-1-1) Prerequisites for Linux
    cd ~
    sudo apt-get install git dfu-util python putty
    wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
    tar xjf gcc-arm-none-eabi-4_9-2015q3-20150921-linux.tar.bz2
    echo 'PATH=$PATH:~/gcc-arm-none-eabi-4_9-2015q3/bin' >> ~/.bashrc
    source ~/.bashrc
    git clone https://github.com/hydrabus/hydrafw_hydranfc_shield_v2.git hydrafw_hydranfc_shield_v2
    cd ~/hydrafw_hydranfc_shield_v2
    git submodule init
    git submodule update
    cd ./scripts
    sudo python get-pip.py
    sudo python -m pip install GitPython --upgrade
    sudo python -m pip install intelhex --allow-external intelhex --allow-unverified intelhex
    cd ..
    
    • For Debian / Ubuntu on 64bits/amd64 system see https://wiki.debian.org/Multiarch/HOWTO in order to enable multi architecture for i386 support.
    • When multiarch is enabled you shall also install libc6-i686:i386 (Debian) or libc6:i386 (Ubuntu)
    Note: 
    For get-pip.py if you need a proxy for internet access set following variables before to launch
    python get-pip.py:
    export http_proxy=http://proxy.myproxy.com
    export https_proxy=https://proxy.myproxy.com
    sudo -E python get-pip.py
    

4) Start STM32CubeIDE v1.4 and Import project

4-1) Start STM32CubeIDE v1.4

Start STM32CubeIDE

4-2) Import the project

  • Select menu File -> Import...
    • Select General -> Existing Projects into Workspace

    • Click on Next Import ExistingProjects

    • Click on Deselet All

    • Select only hydrafw_hydranfc_shield_v2 project

    • Click on Finish Import Project hydrafw_hydranfc_shield_v2

5) Clean the project

  • Select hydrafw_hydranfc_shield_v2 project (click on project with right mouse button)
    • A contextual menu appears, select Clean Project Clean Project Contextual Menu

    • Clean shall display in Console Build Finished. 0 errors, 0 warnings. Clean Project OK

6) Build the project

  • Select hydrafw_hydranfc_shield_v2 project (click on project with right mouse button)
    • A contextual menu appears, select Build Project
    • Build shall display in Console Build Finished. 0 errors Build Project OK

7) Flash & Debug the project

  • Select hydrafw_hydranfc_shield_v2 project (click on project with right mouse button)
    • A contextual menu appears, select Debug As -> Debug Configurations... Debug As Debug Configurations Contextual Menu
    • Debug Configuration view appears, double click on STM32 Cortex-M C/C++ Application Debug As Debug Configurations Contextual Menu
      • The entry hydrafw_hydranfc_shield_v2 Debug is automatically created Debug hydrafw_hydranfc_shield_v2 entry
  • Select Debugger Tab and configure it like in picture
    • When all is configured click on Debug button Debug hydrafw_hydranfc_shield_v2 Debugger
  • Debug session is started and program is stopped in start of main() code Debug hydrafw_hydranfc_shield_v2 start session