AtomでSTM32の開発環境をたてる(CubeMX、nucleoオフラインビルド対応) 【Windows版】

1. はじめに

デバッグできません。すいません。

今回はCubeMXやmbedコンパイラから環境をエクスポートし、makeでビルドします。Atomを使ってビルド、書き込みを行って、GUIでぽちぽちやることをAtomで簡略化します。

あといろいろn番煎じですが、たまにはがっつりまとめ記事書かないといけないなーって思って書きます。

 

2. 準備

2.1 ソースコード
2.1.1 CubeMXでHAL

CubeMXをダウンロードインストールして起動します。STM公式からのダウンロードなのでアカウント登録(無料)が必要になります。

※初回起動だと様々なタイミングでファームウェアのダウンロードがいろいろと来るので全部yesで入れてください。

 

New Projectを押すとチップ&ボードの選択画面が出てきますので、使うマイコンまたは評価基板を選びます。今回はボードからNucleo-F446を選びます。

設定画面がでます。今回はすでに設定されているLEDでLチカするので追加で設定はしません。

赤丸の歯車を押すと環境をエクスポートしてくれます。今回は初回なのでプロジェクト設定の画面が出ます。そこで名前やToolchainをmakefileに設定します。

 

その他、コードの出力設定が出てきます。今回は画像のようにします。

これでOKを押せば、環境が出力されます。

 

次にmakefileを環境に合わせます。

後に出てきますが、今回はコンパイラにパスを通すので、makefile内のパス指定を消す必要があります。(そっちのほうがたぶん楽?)

makefileをエディタで開き、画像のようにします。具体的には「$(BINPATH)/」を消します。

 

2.1.2 nucleoオフラインビルド

mbedオンラインコンパイラにログインし、プロジェクトを右クリック、プログラムをエクスポートします。

ダウンロードしたZIPを展開して終わりです。makefileは書き変えなくても大丈夫です。

 

2.2 ビルド(make)

以下の3つをインストールし、すべてに環境変数のバスを通します。すべてexeでダウンロードすることができます。

GNU Arm Embedded Toolchain

Make for Windows

GNU MCU Eclipse Windows Build Tools

これで、makefileがあればmakeできるようになります。

CubeMXまたはmbedでエクスポートしたフォルダでmakeを実行すればバイナリが生成されます。ここまで導入がうまくいっているか確かめるために必ずこの段階でmakeしてみてください。

 

2.3 書き込みソフト

SWDを使ったSTM32の書き込みには2種類あります。最低どちらか一方をインストールし、make同様にパスを通します。もちろん両方入れて好きな方選んでもらって構いません。

STM32 ST-LINK Utility (昔からある)

STM32CubeProgrammer  (今月出た)

makeしたときと同様のCMDで書き込みのコマンドを実行します。ここまで導入がうまくいっているか確かめるために必ずこの段階で実行してみてください。

ST-LINK_CLI -C SWD -P build/F446_LED_Blink.hex -rst

STM32_Programmer_CLI -c port=SWD -w build/F446_LED_Blink.hex -s

 

2.4 Atom

ここからダウンロード、インストールしてください。

また、追加でパッケージを2つ入れます。

build

make-runner

パッケージはAtom上から入れられます。

また、新規ファイルで「.atom-build.yml」を作成します。ここには書き込みのコマンドを入れます。

cmd : ST-LINK_CLI -C SWD -P build/F446_LED_Blink.hex -rst

cmd : STM32_Programmer_CLI -c port=SWD -w build/F446_LED_Blink.hex -s

 

3. Atom上でコンパイル書き込みする

Atom上で「Crtl+r」をすると、makeが実行されます。(make-runnerより)

また「Ctrl+Alt+b」で書き込めます。(buildと.atom-build.ymlより)

 

4. まとめ

Atom上だけでさくさく開発できる環境ができました。(デバッグできないけど・・・)

 

5. 参考文献

STM32の開発環境を見直したメモ

STM32を久しぶりにいじったときに、デバッグできないぞってなったので開発環境を見直しました。忘れそうなので備忘録として残します。

正直ここらへんは弱者なので不安です。指摘していただけるとうれしいです。

(???「弱者じゃない分野あるんですか?」とツイートされること間違いなし✌)

もっと見る

pythonでMATLAB互換のmatファイルを保存する

はじめに

pythonで処理したデータを保存するときにどの形式で保存しようってなります.

numpyの機能でも保存できるけど独自規格だし種類もいっぱいあっていまいちです・・・

csvとかだとテキストデータになるので容量がめちゃくちゃ大きくなります.

そこで選んだのがMATLABでおなじみのmatファイルです.

pythonからmatで保存すればMATLABでも使えますし容量も小さくいい感じです.

この記事ではpythonのどの変数型がmatlabのどの変数に対応するかを説明します.

もっと見る

MAXONのPWM周波数を考える

この記事のコメントにて

「VNH+ArduinoMEGAだとなぜマクソンが台無しになるのでしょうか?
よかったら教えてください。」

と指摘されたので,これと関連付けてMAXONのPWM周波数どうしようかいま悩んでいることを書きます.

もっと見る