2014年3月8日土曜日

ST Nucleo STM32F103 お試し

 今日のガラクタは ST Nucleo STM32F103 です。mbedの開発環境に対応していて、Arduinoとピン互換(ただし、I/Oは3.3V)だそうです。スイッチサイエンスさんで入手しました。このST Nucleoのシリーズは値段が一緒でCortex M0、M3、M4のCoreの物があり、F103はM3でFlash128kBです。M3でもFlashの容量が512kBと大きいL152というのもあるんですが、Visual GDBのコンパイラがサポートするSTM32デバイスにF103はあったんですが、L152はなかったので、あえてF103の方を選びました。まずは、mbedでのお試しですが、そのうち、mbedではなく素で使って見るときにVisual GDBでビルド・デバッグが試せたらいいなと思ったので。



 さて、例によって、使い道があるわけではありません。ただ単に、新しいものが好きで、ちょっとだけいじってみたいだけです。今回はmbedのクラウド開発環境からLチカサンプルのプロジェクトをダウンロードして、ローカルでデバッグ(ステップ実行)を試してみます・

 まずは、開封して、外観はこんな感じでArduino配置のピンの外側に独自のピン配置が用意されていて、基盤表裏両側にピンヘッダが突き出た形になっています。



  mbed のオンラインコンパイラで「ST Nucleo F103RB」というデバイスが選択できるので、サンプルのLチカ(blink_led)をテンプレートで作成しました。

 クラウドでビルドしてダウンロードされたバイナリをUSBストレージとして見えるNucleoのフォルダにおいてリセットして、LEDが点滅するのをまずは確認。



 続いて、プロジェクトツリーの当該プロジェクトを右クリックして表示されるメニューから「Export Program」を選択。


 すると、「Keil uVision4」というToolchain形式でダウンロードできるようなので、これをダウンロード。


 ダウンロードしたzipファイルを解凍すると、Keil uVision形式のプロジェクトファイルが展開されます。そこで、このKeil uVisionについて調べてみたところ、「MDK-ARM」というARM本家の開発環境のIDEらしいです。無料のお試し版をダウンロードして、試してみました。

 ダウンロードしたMDK-ARM(Ver.5でした)のお試し版をインストールして、先ほど解凍したプロジェクトファイルを開いてビルドしたところ、ビルドに成功。

 そこで、デバッグボタン(Start/Stop Debug Session)を押したんですが、「フラッシュ書き込みエラー・・」っぽいニュアンスのエラーメッセージ。そこで、「Flash」 → 「Configure flash tools」というメニューを開いてみると、「Debug]設定なるタブがあります。


 「Debug」タブ → 「Flash Download」タブ と進むと、書き込みアドレスを設定するような画面がありました。といっても、このチップのアドレスマッチングは全然わかりません。とりあえず、「Add」ボタンを押すと、リストの中に「STM32F103」があった(これは、MDK-ARMをインストールした時に使用するデバイスのライブラリをダウンロードする画面が表示されたので、そこで選んでダウンロードしてあったために表示されているんだと思います。この表示がない場合は、デバイスファイルのダウンロートで該当するデバイスファイルをダウンロードすればよいのだと思います。)ので、選択。


 再度、ビルド&デバッグボタンを押すと、ダウンロードが始まり・・・・



 おっ。動きました。Lチカとメッセージ出力をブレーク、ステップ実行出来ました。やた。

 あいかわらず、使い道もないのに、ボードのコレクションが増えていきますが、まあ、色々なボードを集めて、Lチカ程度に動かすこと自体が趣味ってことで・・・。