GNU MCU Eclipseのプロジェクト作成手順を画像を多めに使ってわかりやすく解説します。
目次
0.ゴールの確認
まずはゴールを確認しておきましょう。
今回は、LEDを点滅させるプログラムのプロジェクトを作成し、パソコン上でマイコンボードSTM32F4DISCOVERYをエミュレートして、そのボード上で動かすところまでやります。

必要なものはGNU MCU Eclipseだけです。インストールがまだの方は、下記の記事を参照してください。
GNU MCU Eclipseのインストール方法を丁寧に解説
1.CMSIS Packのインストール
使用するマイコンのCMSIS Packをインストールしておくと、3つのメリットがあります。ぜひやっておきましょう。
- デバッグのコンフィグレーション時に、各種設定が自動挿入され、作業が簡単になる
- プロジェクトにCMSIS Packを適用する必要あり(後述)
- デバッグ時に周辺装置のレジスタの内容を見ることができる
- マイコンの各種ドキュメントを参照できるようになる
STM32F4DISCOVERYに乗っているマイコンはSTM32F407VGです。このマイコンのCMSIS Packを入手しましょう。
1-1.CMSIS Packs managerの初期化
CMSIS Packを入手するには一度CMSIS Packs managerの初期化をしておく必要があります。
Eclipseを立ち上げたら、下記の手順で初期化を行ってください。
- CMSIS Packsパースペクティブを開く
- 初期化を実行

初期化は非常に時間がかかるのでコーヒーでも飲みながらゆっくり待ちましょう。
私の場合は10分以上かかりました。

初期化が終わると、空っぽだった画面に色々と追加されています。

1-2.STM32F407VGのCMSIS Packをインストール
STM32F497VGのCMSIS Packをインストールしましょう。
画面中央から『STM32F4xx_DFP』を探して、右クリックのメニューから『Install』をクリックしてください。

左メニューの『Devices』や『Boards』タブを使うと、マイコンやボードで画面中央の表示をフィルターすることができて便利です。
上記画像でも、『Devicesタブ』を使って、STMicroelectronics → STM32F4 Seriesを選択して、画面中央をフィルター表示しています。
『STM32F4xx_DFP』から『STM32F4xx_DFP(installed)』に表記が変われば入手成功です。

2.Eclipseのプロジェクトを作成
2-1.新しいプロジェクトの作成
Eclipseの画面上部メニューの『File』→『New』→『Project…』をクリックしてください。
プロジェクト作成用のダイアログが表示されるので『C Project』を選択して『Next >』ボタンをクリックしてください。

次のダイアログでは、プロジェクト名の入力と、プロジェクトのタイプ、ツールチェインの選択を要求されます。
今回は下記の設定とします。入力・選択が終わったら『Next >』ボタンをクリックしてください。
| 画面の表示 | 入力・選択 |
| Project name | stm32f4discover-demo |
| Project type | STM32f4xx C/C++ Project |
| Toolchains | ARM Cross GCC |

次の画面ではマイコンの各種設定の入力を要求されます。
下記の設定を入力して『Next >』ボタンをクリックしてください。
| 設定 | 入力/選択 |
| Chip family | STM32F4xx |
| Flash size (kB) | 1024 |
| External clock (Hz) | 8000000 |
| Content | Blinky (blink a led) |
| Use system calls | Semihosting (POSIX sysmte calls via host) |
| Trace output | Semihosting STDOUT stream |
| Check some warnings | チェックを入れる |
| Check most warnings | チェックなし |
| Enable-Werror | チェックなし |
| Use -0g on debug | チェックを入れる |
| Use newlib nano | チェックを入れる |
| Exclude unused | チェックを入れる |
| use link optimizations | チェックなし |

これ以降の画面は設定を変えず、ひたすら『Next >』ボタンをクリックしてください。


最後のツールチェインの設定画面で『Finish』ボタンを押せばプロジェクトが生成されます。

プロジェクトが正しく作られているか、ビルドして確かめてみましょう。
画面上部の『トンカチ』ボタンをクリックして、画面下部の『Console』に『Build Finished.』の表示がされればOKです。

プロジェクトの中身にはすでにLEDを点滅させるコードが入っています。興味があれば確認してみてください。
2-2.プロジェクトにCMSIS Packを設定
先ほどインストールしたSTM32F407VGのCMSIS Packをプロジェクトに適用しておきましょう。
画面左の『Project Explorer』内の『stm32f4descovery-demo』を右クリックして、『Properties』を選択して、プロジェクトのプロパティウィンドウを開きましょう。
次に、開いたプロパティウィンドウの左側の『C/C++ Build』→『Settings』をクリックして、Settings画面を開きます。
Settings画面の『Devices』タブの中で、『STMicroelectronics』→『STM32F4-Discovery』→『STM32F407VG』を選択し、『Apply and Close』ボタンをクリックしてください。

これでプロジェクトにSTM32F407VGのCMSIS Packが適用されます。
3.QEMUでエミュレート
プロジェクトが出来上がったので、QEMUでボードをエミュレートし、そのボード上で実際にプログラムを動かしてみましょう。
3-1.QEMUのデバッグを設定
QEMUでデバッグする設定を作ります。
Eclipseの画面上部のメニューから『Run』→『Debug Configurations…』をクリックして、デバッグ設定の画面を開いてください。
デバッグ設定画面を開いたら、左側にある『GDB QEMU Debugging』をダブルクリックしてください。
QEMUでデバッグするための設定画面が右側に作られます。

2か所だけ設定変更してください。
1か所目は、『Debugger』タブを開き、下記の設定に変更してください。
| 設定 | 入力 |
| Board name | STM32F4-Discovery |
| Device name | STM32F407VG |
| Extra verbose | チェックを入れる |

2か所目は、『Common』タブを開き、『Display in favorite menu』の中の『Debug』にチェックを入れてください。

2か所の変更が終わったら、画面下部の『Close』ボタンを押して閉じてください。
3-2.デバッグの実行
ついにプログラムを動かす時が来ましたね。
Eclipseの画面上部にある『虫の絵の』ボタン→『stm32f4sidsovery-demo Debug』をクリックしてください。デバッグが開始されます。

一瞬、下記のウィンドウが開いてすぐにEclipseの画面に戻ります。

開いたウィンドウはQEMUでエミュレートしているSTM32F4DISCOVERYです。もうエミュレートは開始されているわけですね。
ただ、デバッグの実行はmain関数の頭で停止するようになっているので、停止したタイミングでEclipseの画面が全面に出てきたわけです。
なので、停止しているデバッグを再開させてあげましょう。
Eclipseの画面上部にある再開ボタンをクリックしてください。

そうすると、STM32F4DISCOVERYの緑色のLEDが点滅します!

以上です。お疲れ様でした!