Skip to content
spiralray edited this page Jun 22, 2017 · 6 revisions

stm32f4_templateとは

Andy Brown氏によって作成されたSTM32用非公式C++ライブラリstm32plusを用いた、STM32F4シリーズ用のC++テンプレートプロジェクトです。

注意

stm32plusにはSTMicroelectronics純正のライブラリSTM32F4 DSP and standard peripherals libraryが使用されていますが、このライブラリのサポートは既に切れています。

そのため、Standard Peripherals Libraryサポート終了後に発売されたSTM32F7, STM32H7等及びSTM32L0,STM32L4等の低消費電力版シリーズとのコードの互換性はありません。

新規の開発ではHAL(STM32CubeF4)の使用が推奨されていることを考慮した上で、導入の検討を行ってください。

対応ボード

その他のSTM32F4ボードに関してもmakefileに設定を加えることで使用可能です。

使用方法

Ubuntu

GCCクロスコンパイラのインストール

GNU ARM Embedded Toolchain

sudo tar xvf gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2 -C /usr/local
sudo ln -snf /usr/local/gcc-arm-none-eabi-6-2017-q1-update /usr/local/arm-cs-tools
export PATH=$PATH:/usr/local/arm-cs-tools/bin
source ~/.bashrc

stm32plusのビルド

ライブラリのビルド手順です。Gistsのこのプロジェクトで管理しています。 独自のHSEクロック周波数で使用したい場合はシェルスクリプトの内容を適宜書き換えてください。

git clone https://gist.github.com/0dfe899d1230ff1a5522.git install_stm32plus
cd install_stm32plus
sh install_stm32plus.sh

スクリプトを実行すると~/workspace/stm32plusにライブラリがビルドされた状態で配置される。

Stlink Toolsのインストール

ST-LINK V2でプログラムの書き込みをするためにインストールします。

sudo apt-get update
sudo apt-get -y install dh-autoreconf
sudo apt-get -y install libusb-1.0-0-dev

cd /tmp
git clone "https://github.com/texane/stlink.git"
cd /tmp/stlink
./autogen.sh
./configure
make
sudo make install

ついでにdfu-utilのインストールもします

sudo apt-get -y install dfu-util

また、ST-LINKへのアクセス権限を変更するために/etc/udev/rules.d/50-udev.rulesを作成し、以下の内容を記載してください。

SUBSYSTEM=="usb", KERNEL=="ttyUSB*", MODE="0666"
SUBSYSTEM=="usb", KERNEL=="ttyACM*", MODE="0666"

SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", MODE="0666"

書き換え後は再起動かudevadm control --reloadあたりで設定が反映されるはずです。

stm32f4_templateのClone

cd ~/workspace
git clone https://github.com/spiralray/stm32f4_template.git

stm32plusライブラリは相対パスで参照されるため、stm32f4_templateとstm32plusは必ず同じディレクトリに配置すること。

home
└ [username]
     └ workspace
          ├ stm32plus
          │ ├ include
          │ └ build
          └ stm32f4_template
               ├ inc
               ├ lib
               ├ src
               └ makefile