2016年12月16日

SW4STM32を使ったmbedオフラインコンパイル

最近何かと話題のmbedを使ってみました。
今回買ったのはnucleoボード!!
一枚1~2千円で買えるしコスパ最高です。

image

早速2枚買いです。取り合えずF401とF446を買っておきました。

mbedと言ってもmbedはオンライン開発環境であり僕的にはあまり好ましいとは思っていませんでした。 

じゃあなんかのIDEでstmが配布してるHALを使ってプログラムを書けば?という意見もあるかもしれませんが
あれはヤバいです。使えるようになるには相当な時間が必要だと思われます。 

1600ページある公式解説文もかなり簡素なものでゼロコンマニ秒で読む気が失せます。
素人意見ですがHALはどうしても必要な時だけ利用するのが良いと思われます。
取り敢えず今は全てを包容してくれるmbedの恩恵を受けておきましょう。 

そんなこんなで神々しい開発ツールmbedですが
ちょっと手間をかければオフラインでも開発できてしまいます。 

ようはARM開発環境さえあればいいってわけよ。
というか僕まだオンライン環境で開発してないし草も生えない
 
今回はIDEにeclipseベースの無料開発環境であるSW4STM32を使いました。
なんといっても無料なのにコンパイル時のフラッシュ容量制限が無いところが強みかな?

開発環境の構築法はネットで漁ると先人の方々が懇切丁寧に解説されているためそちらを参照してください。 

役に立つかどうかはわかりませんがオフラインコンパイルの手順を記しておきます。

まずmbedCompilerから適当にプロジェクトを制作してエクスポートします。
今回はプロジェクト名をtestとしました。

bandicam 2016-12-25 02-33-32-222
bandicam 2016-12-25 02-33-48-749
Export Targetを自分の使用するマイコンに、Exportt TollchainをSW4STM32にしExportします。
するとzip形式のファイルがダウンロードされると思います。 

どうやらダウロードされるファイルはプロジェクト名の後にマイコンボード名が付くようですね。

次にSW4STM32を起動し、右上のFileをクリックし
Import>Exsing Projects int Workspace
まで進みましょう

そこでSelect archive fileをチェックし、先ほどダウンロードしたzipファイルを参照しFinishをクリックします。

bandicam 2016-12-25 02-44-21-534

するとproject explorerにインポートしたtestが追加されてると思います。 

これでプロジェクトのインポートをは完了です。


次にプロジェクトをビルドします。ビルドはツールバーにあるハンマーのマークをクリックするかCtrl+Bです。
するとエラーが出ると思います。 (現状ではエラーが出ると勝手に結論付けてる)
  bandicam 2016-12-25 02-52-30-567

どうやらMBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATEがtest/mbed/drivers内のRawSerial.hとSerial.h内で定義されていないようです。 

MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATEはmbed_config.h内で定義されており定義内容は9600です。これはデフォルトのシリアル通信の通信速度の値です。

対応としてはmbed_config.hをインクルードするかMBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATEを9600(任意の値で可)に書き換えることで解決します。

書き換えるとビルドができるようになるので適当にプログラムを書いてみましょう 。 

書くもクソも最初からテンプレートが書かれていました。 

bandicam 2016-12-25 03-12-42-172

途中でエラーが出ていなかったらとりあえず書き込んでみます。

書き込み方法はいくつかります。
一つ目はツールバーの再生マークのrunをクリックもしくはCtrl+F11で書き込みます。

bandicam 2016-12-25 03-11-56-434

複数出てくることもありますが、自分の書き込みたいものを選んでOKを押しましょう 

するとマイコンボードのST-Link側のLEDが点滅してプログラムが書き込まれます。

別の方法はプロジェクトを右クリックして
Target>program chipをクリックして書き込みます。 
bandicam 2016-12-25 03-22-56-851

OKを押せば先ほどと同様にLEDが点滅して書き込まれます。

もう一つの方法はプロジェクト内のDebugファイル内にできたbinファイルをいつも通りの方法で書き込む方法です。

これはmbed本来の書き込み方法と同じなので説明の必要はありませんね


以上で解説は終わりなのですが。注意というかやった方が言いことを書いときます。 

ビルドしたときに.elfファイルが作れないとか、書き込むときにそんなファイルねぇよと警告文が出てきたときはファイルパスを短くするか、プロジェクトのcleanをやってみてください。大抵解決します。
ちなみにcleanはツールバーのprojectのところにあります。


いろんな意味で残念な解説になりましたがこれで終わりです。 

次回は外部コンパイラを使った際の問題について書きたいと思います。




追記 : 最近外部コンパイラ用にプロジェクトを出力するとファイルが全く足りないよね。。。object.hとかそこら近辺のヘッダーファイルが。。。どうしたんでしょうねぇmbedさん。。。コンパイルできへんがな(ㆀ˘・з・˘)

まあ要するにしばらくは新プロジェクトのオフラインでのコンパイルは諦めましょう。自分でヘッダーファイルフランケンしても良いかもだけど


drttx at 01:20│Comments(0)弱電 | mbed

コメントする

名前
URL
 
  絵文字