windowsでSTM32F4シリーズの開発環境を整える

先日後輩がうちのサークルには珍しくARMマイコンでマイクロマウス作りたいって言っていたし、
僕も先日パソコンを研究所に返却してしまい、開発環境を失ったので、窓マシンで開発環境
整えないとなぁと思っていたところだったので、書き込みまでできたらブログかなんかに
窓でのARMマイコン環境の整え方とかメモ的に書いとくか。。。。

とか思いながら、コンパイルまで行ったので、書いときます。
(引っ越しですぐ書き込めるボードがどっか行ってしまったので、見つけたら書き込んでみます)

もしかしたら、ちょいちょい修正入れていくかも。


あと、あくまでも私の開発環境ということで、もっと簡単に環境を整えられるかもしれません。
そこはご愛嬌ということで。。。


それでは。


基本的に、エディタ、コンパイラ、ライターの三つを用意します。


本当は統合開発環境入れて一発OKみたいな流れがいいんですが、
フリーで良い開発環境が無いため別々にインストールします。
コード制限とか、煩わしいユーザー登録とかたくさんです。
前Ride7のフリーのものがいきなり有料になったりしたしね(突然使えなくなって大変困りました)。


エディタは今までlinuxvimでやってたため、windowsでもvim系の
gvimを使おうと思いますが、なんでも良いと思います。
(サクラエディタ、notepad++、秀丸エディタeclipse、etc…)


gvimのインストール
http://www.kaoriya.net/software/vim/


gvimの使い方はここでは説明しません。
使いやすいようにvimrcを書き換えておくといいと思います。


次にコンパイラのインストール
https://launchpad.net/gcc-arm-embedded


windows向けのコンパイラを選択。
インストールの最後に環境変数にパスを入れるチェックを入れて完了する。
(Add path to environment variable)


最後にライターをインストール。
これはマイクロマウス業界で有名な方がPythonで作ったライターを使います。
http://www.ktechinfowell.net/micromouse/index.html


ライターと言いつつも、ただのpythonスクリプトです。
(これがあるから割とどんな環境でもSTMマイコンの開発ができるという超優れもの
今のところ、Ubuntu,Vine,windowsで動作確認済みです)


STM32 Writerがありますが、STM32_Programの中にも書き込みスクリプトが入っているので、
ライターのインストールついでにサンプルプログラムもありがたく貰っときましょう。
このサンプルプログラムがあれば、ロボット作るのが非常に楽になります。


STM32_Writerにライタースクリプトの使い方は書いてありますが、念のため、
pythonとpyserialがインストールされていない場合はインストールします。
2.7系でそろえておくのがいいと思います。


STMicroの提供するライブラリを使うため、ライブラリインストールしますが、
STM32_programに書いてあるリンクはもうすでにありません。
(STMicroのwebページは書き換わりが非常に多く、情報を集めるのに一苦労します。
良いマイコン作ってるのにこの部分は本当に残念です。分かりずらい。)


ライブラリは
STM32 ARM Coretex 32bit マイクロコントローラ > リソース、ソフトウェアタブのSTM32 Standard Peripheral Libraries の中にあります(2015/07/03現在)


STM32F4の場合はSTSW-STM32062のリンク先にある。(version1.5.1)
100Mを超えているので、ちょっと重い。


解凍したライブラリをSTM43_programでゲットしたサンプルディレクトリに入れます。
入れ方はfiles_required.txtに従ってください。


プログラムは整ったので、次にコンパイルの手順を踏むが、windowsにmakeコマンドが
デフォルトで入っていないので、インストールする。
http://gnuwin32.sourceforge.net/packages/make.htm
バイナリバージョンをダウンロードして展開。


これだけだとmakeしてもライブラリ足りんぞ。と怒られるので、追加のライブラリをダ
ウンロード。
先ほどのリンク先の下のほうにdependencies zip fileがあるので、ダウンロードして展開。


スペース、2バイト文字が入っていると上手くいかないみたいなので、
私は
C:\make
に展開した。


それではどこでもmakeコマンドが通るように、C:\make\binに環境変数にパスを通す。(windowsにパ
スを通すやり方はここでは書きません。)


これでほぼ整ったが、STMicroからのライブラリのバージョン違いでこのままだとコン
パイルが通らない。そこで3点修正を加えます。


1.使用するデバイスの指定
ProgramDir\Libraries\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h


の最初のほうに


#define STM32F40_41xxx


と書く


2.コンパイルエラーになるCファイルの削除
ProgramDir\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fmc.c


注:)RAMとかNANDメモリとかのライブラリらしく、消していいファイルかどうかはわからないので自己責任で。


3.makefile書き換え
スタートアップファイルと書かれている部分を修正


STARTUPFILE := startup_stm32f4xx.s -> STARTUPFILE := startup_stm32f40_41xxx.s


これすべて書き終えたら、プログラムのあるディレクト
(mainディレクトリの一個上)でコマンドプロンプトを開いて、
makeと入力すればコンパイルが通る。

コンパイル通るとこんな感じに


gvimの開発はこんな感じでしょうか。

左のファイラっぽい何かは、
: 30 vs ./
とか打てば出ます。今はなんもプラグイン入れてません(入れられなかった)。


通らなければ適宜エラーメッセージを見て対処。


プログラムの書き込みは書き込みピンをハイにした状態で起動し、
シリアルケーブルでPCと繋ぎ、write_main_xxx.pyを実行

シリアルターミナルはwindowsだったらteratermがいいんじゃないかな。

以上。


デバッガとかほしい人は以下の詳しいサイトを参考にしてください。
http://nemuisan.blog.bai.ne.jp/?eid=188089