STM32用のビルド環境を構築するにあたり、必要なツール類がすべて入ったお任せパッケージを使うと何がどうなっているのか全く分からないので、、適当にGCCのツールを集めてコマンドラインベースの開発環境を作ってみることにした。最終的には、Interface誌で特集していたドローンキット(STEVAL-DRONE01)をベースに姿勢制御ソフトを開発したい(そもそも制御工学よく分かっておらず。さらにクオータニオンなんてさらに意味不明)。
ARMのビルド環境の詳細がよくわかっていないが、、以下のドキュメントを見ながら入れるようである。
The xPack GNU Arm Embedded GCC | The xPack Project
十分に調べてないけど、、どうやらDocker環境を作ってその中でビルド環境を構築するようである。うーん、Dockerか。。素のCygwinに入れるようなものではないということか。。
もう少し調べると、win32用にビルドされた、gcc-arm-none-eabiパッケージもあるようだ。
以下からgcc-arm-none-eabiを落とせという記事もある。
4.8-2013-q4-major : Series 4.8 : GNU Arm Embedded Toolchain
Windows版のgccパッケージを落としてみる
gcc-arm-none-eabi-4_8-2013q4-20131204-win32.exe (md5)
Cygwinの/usr/local/配下に展開してみた
$ ls /usr/local/GNUToolsARMEmbedded/4.8_2013q4/bin/ arm-none-eabi-addr2line.exe arm-none-eabi-gdb.exe arm-none-eabi-ar.exe arm-none-eabi-gprof.exe arm-none-eabi-as.exe arm-none-eabi-ld.bfd.exe arm-none-eabi-c++.exe arm-none-eabi-ld.exe arm-none-eabi-c++filt.exe arm-none-eabi-nm.exe arm-none-eabi-cpp.exe arm-none-eabi-objcopy.exe arm-none-eabi-elfedit.exe arm-none-eabi-objdump.exe arm-none-eabi-g++.exe arm-none-eabi-ranlib.exe arm-none-eabi-gcc.exe arm-none-eabi-readelf.exe arm-none-eabi-gcc-4.8.3.exe arm-none-eabi-size.exe arm-none-eabi-gcc-ar.exe arm-none-eabi-strings.exe arm-none-eabi-gcc-nm.exe arm-none-eabi-strip.exe arm-none-eabi-gcc-ranlib.exe gccvar.bat arm-none-eabi-gcov.exe
vオプションで詳細を確認。デフォルトのパスは、/home/build/work/GCC-4-8-buildなのか。。? まぁそれはなんとかなるとして。。
$ /usr/local/GNUToolsARMEmbedded/4.8_2013q4/bin/arm-none-eabi-gcc -v Using built-in specs. COLLECT_GCC=C:\cygwin64\usr\local\GNUToolsARMEmbedded\4.8_2013q4\bin\arm-none-ea bi-gcc.exe COLLECT_LTO_WRAPPER=c:/cygwin64/usr/local/gnutoolsarmembedded/4.8_2013q4/bin/../ lib/gcc/arm-none-eabi/4.8.3/lto-wrapper.exe Target: arm-none-eabi Configured with: /home/build/work/GCC-4-8-build/src/gcc/configure --build=i686-l inux-gnu --host=i586-mingw32 --target=arm-none-eabi --prefix=/home/build/work/GC C-4-8-build/install-mingw
STM32用にLチカ作るとして、startupルーチンとか、メモリマップに基づくビルド情報も必要なのだが、、それはどこから手に入れればいいのやら。。
ディレクトリを掘ると、startupルーチンはサンプルに置かれていた。
GNUToolsARMEmbedded/4.8_2013q4/share/gcc-arm-none-eabi/samples/startup/startup_ARMCM4.S
cygwin環境にmakeを入れてから、、以下でお試しソースのビルドはできた。
export PATH=/usr/local/GNUToolsARMEmbedded/4.8_2013q4/bin/:$PATH make clean make CORTEX_M=4
サンプルソースはコンパイルできたので、、次はST Link経由でのバイナリ転送とデバッグか。。
安いST Link互換品をHiLetgo様に注文済みなので、ST Link互換品が届いたら繋いでみる予定
ご参考URL
マイコン徹底入門 | STM32で組み込みシステム開発
マイコン徹底入門:導入編:オープンソースでCortex-M3/STM32の開発環境を無償構築
OpenOCD + ST-LinkでFirmware書き込み - ryochack.blog
ST-Link v2 を Windows10 上の OpenOCD で利用できるようにする
買ってみたSTM32解説本(安い)
ST LINKを使っておられる記事
YES! STM32 einchip mikrokontroller!