5 コンパイルと書き込み

続き(6 プログラムの内容)を見る

設定変更
まずはマイコンボードと書き込み方法に合わせた設定変更を行います。
まずは左のstm32という名前から始まっているツリーを展開して下さい。画面左側のこのタブ付きウィンドウは、プロジェクトエクスプローラといって、アプリケーションを構成するソースコードを管理するためのツールです。ソースコードをツリーの形式で確認できるものだと思って下さい。
ちなみにEclipseをコピーする形でインストールした場合のお約束なのですが、プロジェクトエクスプローラの画面上の各プロジェクト、ここでいうと
Samples
STM32
なんですが、それぞれをクリックしてからF5キーを押してください。これでEclipseがフォルダの最新の内容を把握するようになります。
次にSTM32を展開してください。STM32を展開すると、makefileという名前が見えると思います。これはプログラムのビルドのための設定をするためのファイルですが、本書の開発環境では、ボードや書き込み方法の設定も、このファイルの中で行います。
この名前をダブルクリックすると、真ん中のスペースにコードが表示されます。閉じるときは、ファイル名が出ている上のタブの部分のバッテンをクリックして下さい。
makefileを開いて、下の方にスクロールしていくと、
# select board name
という部分が見つかると思います。
マイコンボードの選択
このなかで、画面のように、
STM32_VLD = 1
と書かれている行の先頭部分の#(シャープ)記号だけ消して、他の行の行頭には#が付くようにしてください。
書き込み方法の選択
次はその下の部分の
# select way to write flash
という部分まで進んでください。
この部分では、画面のように、STLINK_SWD_STVPの行だけシャープを消して、他の行にはシャープを付けるようにして下さい。
サンプルプログラムのコピー
次に今回使用するサンプルプログラムをプロジェクト内にコピーします。
画面左側のProject ExplorerビューにあるSamplesプロジェクトを開いて、更にその中のmiqnnetを開くと
et_ob_led_toggle
という名前のフォルダが現れます。これを展開すると、3つのコード
main.c
stm32f10x_it.c
stm32f10x_it.h
が現れます。
これを複数選択してコピーします。それから、同じくProject ExplorerのSTM32プロジェクトの名前の上でペーストしてください。
初期状態でSTM32プロジェクトに入っているコードは動作するものかどうかわかりませんので、上書きして消して下さい。
コンパイル
それではコンパイルをしてみましょう。
右側にある、タブの部分にmake targetsという名前が付いているウインドウを見つけて下さい。eclipseではこの小さなウィンドウをビューと呼んでいます。このmake  targetsビューの中のstm32という名前から始まるツリーを展開して下さい。で、緑の二重丸のアイコンがあると思うんですが、この中のall_cleanをダブルクリックして下さい。これでプロジェクト内に元々入っているコンパイル済みのバイナリコードが削除されます。
次にallをダブルクリックしてください。そうするとコンパイルが始まります。左下にConsoleという名前が付いているビューが見えるはずです。隠れていたらクリックして前に出して下さい。
コンパイルが始まるとここにテキストのメッセージがたくさん表示されます。STM32のファームウェアライブラリもコンパイルしているので、結構時間がかかると思います。
最後に、画面のような感じでメッセージが表示されていればコンパイル完了です。マイコンに書き込むためのファイルができあがりました。マイコンに書き込むファイルは、STM32プロジェクトのbinフォルダの中にできています。main.hexというファイルです。このファイルをあとあと書き込むことになります。
Value Line Discoveryの動作確認
で、これを書き込むということになるんですが、ここで一呼吸置いて、Value Line Discoveryがちゃんと動くかどうか確認しておきましょう。
Value Line DiscoveryにのっかているSTM32マイコンには、最初から、サンプルプログラムが書き込まれています。電源を入れれば、サンプルプログラムが作動します。サンプルプログラムの内容は、単純ですけど、ボード上のLEDが点滅するという内容です。USBでパソコンにつなぐと、パソコンから電力が供給されて、マイコンボードが動き始めます。動作はこんな感じです。
それではUSB mini ケーブルを使って、Value Line Discoveryをパソコンに接続してください。つないだときにパソコン上で「新しいハードウェアが見つかりました」のバルーンが出ますけど、ほおっておいて下さい。動画の通り動いたでしょうか。左側の青いボタンを押すと、点滅速度が変わります。青いボタンを押したときには、右側の青色のLEDが光るようになっています。
次にST-LINKがOSに認識されているかどうかを確認します。マイコンピュータか、エクスプローラを開いて、ディスクドライブとして、「リムーバルディスク」が増えているかどうかを見て下さい。中身を見ると、インターネットへのショートカットが3つ入っているはずです。こんな感じです。
ST-LINKはパソコンとはちょっと変わった形で通信するようになっています。この類の書き込みツールだと、普通は、専用のドライバをインストールして、デバイスマネージャ上でも、書き込みツールとして認識されます。一方ですが、ST-LINKは、本来はリムーバルディスクではないんですけれども、リムーバルディスクとして認識されます。先ほどの書き込みツールからこのリムーバルディスクにアクセスすると、内部的には、マイコンへの、書き込みとか読み込みとかのアクセスをするという動作をします。ちょっと変わっているんですが、そのかわり特別なドライバのインストールは不要です。OS標準のドライバで動作しますから、失敗が少ないので、こういったセミナーもそうなんですが、多くの人に使ってもらう環境、学校での利用なんかにも良いと思います。
書き込み
さあそれでは、先ほどコンパイルしたプログラムを書き込んでみましょう。value line discovery が繋がった状態で、makeビューの、stm32のですよ、makeビューのflashをダブルクリックして下さい。コンソールにメッセージが表示されると思います。ここでしばらく待って下さい。だいたい10秒から15秒ぐらいで書き込みが終わると思います。
コンソールに
<<< Verifying PROGRAM MEMORY succeeds
と表示されたら書き込み終了です。
ここでちょっと面倒くさいんですが、この書き込みプログラムを使っていると、書き込みプログラムからはマイコンをリセットできません。リセットボタンも効かない状態になってしまうので、いったんValue Line DiscoveryのUSBケーブルを抜いて、もう一度指し直して下さい。抜くのはValue Line Discoveryの側の所のコネクタでも、パソコンのコネクタでも構いません。あと本来想定されている使い方ではないんですが、ボード上のジャンパ、小さい方のSTM32チップの横に付いている方です、を抜き差ししてもリセットできます。
ちなみになんですが、本格的にValue Line Discoveryを使って開発する際に構築する環境だと、いちいち抜き差しする必要はありません。その環境も無償で構築できるんですが、構築するのに時間がかかりますので、今回はこのやり方でプログラムしてもらいます。そのやり方の実行方法は、ホームページに掲載していますので、そちらを御覧になって下さい。