CoIDEのプロジェクトを作る(2) 手動作成編

CubeMX2CoIDEで対応していないMCUについては手動でCoIDEプロジェクトへコードを追加します。


CoIDEを立ち上げます。


メニューからProject->New Projectを選ぶとRepositoryタブが開きます。


Boardをクリックします。
STを選びます。
STM32F401を選びます。
Downloadボタンを押します。


CoIDEがボード情報のダウンロードをはじめます。ダウンロードには数分かかります。


ダウンロードが終了したらCreate Projectボタンを押してプロジェクト作ります。


プロジェクトの名前を入力してFinishボタンを押します。


ここまでの作業でCoIDEのワークスーペスフォルダに新しいプロジェクトフォルダが出来ています。


CoIDEで作ったプロジェクトフォルダと前のページで生成したCubeMXのフォルダをエクプスローラーで開けます。


CubeMXで生成したコードをCoIDEプロジェクトフォルダへコピーします。
・Driversフォルダ
・Incフォルダ
・Srcフォルダ
・STM32F401RETxFLASH.ld
の4つをコピーします。


コピーするとこんな感じになります。STM32F401RETxFLASH.ldはいわゆるリンカスクリプトというファイルでgccコンパイラに詳しい人ならおなじみの設定ファイルです。これでやっとプロジェクトに必要なコードが全て揃いました。


プロジェクトフォルダにソースコードをコピーしただけではCoIDEから認識されないので、認識されるようにプロジェクトへの登録作業をします。エクスプローラーでDrivers,Inc,Srcフォルダをまとめてドラッグして、CoIDEのプロジェクトウインドウのフォルダアイコンの上にドロップします。正しく登録されるとプロジェクトウインドウにフォルダが表示されます。



main.cファイルを右クリックしてDelete(削除)します。Srcフォルダの中にCubeMXが生成したmain.cが入っているのでCoIDEが用意したmian.cは必要ありません。


最後にコンフィグレーションの設定をします。この段階ではまだコンパイルできないのでビルドボタンは押さないでください。
メニューのView->ConfigurationからCompileタブを表示します。
Define SymbolsSTM32F401xEを追加してAddボタンを押します。すぐ下に似たような定義シンボルがありますがHALドライバーでは効きません。他のパラメーターはとりあえずはいじる必要はありません。



次にLinkタブをクリックして移ります。


Use Memory Layout from Memory Windowをクリックしてオフにします。


Scatter File'...'ボタンを押してプロジェクトフォルダにコピーしたリンカスクリプトファイルSTM32F401RETx_FLASH.ldを指定します。


お疲れ様でした。ビルドボタンを押してコンパイルしてみましょう!ビルドが初回の場合はツールチェイン(コンパイラ)のパスを聞いてきますので、ダウンロードして解凍したLaunchpadのフォルダを指定します。ダウンロードしてありますよね?トップフォルダを指定すればサブフォルダからコンパイラを探してくれます。



ビルド ----- 更新されたファイルのみをコンパイルします。(初回は全部)
リビルド ----- 全てのファイルをコンパイルし直します。
デバッグ ----- デバッグを開始します。
ダウンロード -----ビルドして生成したバイナリファイルをNucleoへ書き込みます。
イレース ----- Nucleoのフラッシュメモリを消去します。
コンフィグレーション ----- コンフィグレーション ウインドウを開きます。
リポジトリ ----- リポジトリウインドウを開きます。


ビルドエラーが無ければ下のコンソールウインドウにBUILD SUCCESSFULと表示されます。ダウンロードボタンを押すとNucleoボードへバイナリファイルが転送されて書き込まれます。



お疲れ様でした。フリーの開発環境CoIDEを使って手作業でCubeMXで生成したコードをプロジェクトへコピーしてみました。有償の開発環境を使えばこの辺りの作業は自動でやってくれるのでとても楽みたいです。まぁ慣れれば手作業でも数分でできると思いますwww


CoIDEのプロジェクトフォルダはコピペで増殖できるので、最初にテンプレートとなるプロジェクトを作って、それをコピーしてフォルダ名だけ変えて使うという方法もありなんですが・・・CubeMXは必要なソースコードしかコピーしてくれないんで不足分のソースコードはまた手作業で追加コピーになっちゃいますけど。