NUCLEO-F401RE で TOPPERS/ASP(RTOS)を動かす
を見て、Macしかないけどやってみたいと思った方向けです。
Eclipseを選択したわけ
元記事はTrueSTUDIOを使っているのですが、ダウンロードページを見ると...
Mac版は「Coming 2017」となってるんですね。もうすぐなので待つのも一つの手でしょうけど、2017年のいつリリースされるかわからないので、別の手段を考えることにします。
TrueSTUDIOはEclipseベースなので、それならEclipseが無難かなということでEclipseにしました。
用意するハードウェア
元記事と基本的に同じです。
- NUCLEO-F401RE
- USB(miniB)ケーブル
- PC(Mac)
用意するソフトウェア
-
Eclipse IDE for C/C++ Developersをインストール
-
Eclipse MarketPlaceからインストールすると便利(後述)
-
OpenOCD(Homebrewからインストール)
ST-LINKのアップデートの確認
まず最初にST-LINKのアップデートの確認を行っておきましょう。
上記リンク先にあるソフトウェアSTSW-LINK007をダウンロードして実行してください。
(アップデートされていない場合はプログラムのダウンロードができません)
TODO:詳しい方法を書く
GNU ARM Eclipseのインストール
Eclipse CDTを起動します。
Help -> EclipseMarketPlace... をクリックすると以下のような画面が表示されます。
探すのが大変なので、Find のところに "GNU ARM" ぐらい入れると見つかるでしょう。
右下の方にあるInstallをクリックするとインストールが始まります。
TOPPERSの構築
簡易パッケージもあるのですが、こちらはWindows用に作成されているようだったので、個別パッケージから作成することにしました。
個別パッケージからASPを作成する
ターゲット非依存部、ターゲット依存部それぞれ解凍します。
(ダブルクリックで展開するとどちらもaspという名前になるので注意)
ターゲット非依存部にターゲット依存部を上書きします。
aspディレクトリの配下は上記のような感じ。toolsディレクトリが作成されていればOK。
cfgの追加
Macの場合、cfgを別途もってくる必要があります
http://toppers.jp/download.cgi/cfg-osx-static-1_9_5.tar.gz
解凍してでてきたcfgファイルを
asp/cfg/cfg ディレクトリを作成し、その中に置きます。
asp/cfg/cfg/cfg
(3つのcfgのうち、前2つがディレクトリで3つめがファイル)
のような感じになります。
eclipseのワークスペース & プロジェクトの作成
ここでは私の方で用意したプロジェクトを使用します。
githubには置いた都合上、名前が冗長になっているので「eclipsews」という名前でtoolsディレクトリ内にcloneします。(以下の画像を参考にしてください)
(コマンドをコピーしたいときは↓を使用してください)
git clone git@github.com:yurie/eclipsews-asp-nucleof401re.git eclipsews
動作確認
ここで一度コマンドラインからビルドしてみましょう。
$ cd eclipsews/stm32f401nucleo/
$ make
asp.elfができたらOKです。1
確認できたらcleanしておきましょう
$ make clean
eclipseから起動する
以下、私の環境の都合上、英語版lunaでのキャプチャになっています。
ワークスペースは真っ白なので、プロジェクトをインポートします。
プロジェクトエクスプローラ内で右クリックすると以下のようなメニューが出てくるのでimportを選択してください。
メニューからGeneral->Existing Projects into Workspaceを選択します。
先ほど作成したasp/tools/wclipsewsを選択するとProjectsにstm32f401nucleoが出てくるのでそれを選択してfinishしてください。
stm32f401nucleoプロジェクトが出てきましたね!
gccのパスの設定
プロジェクトのプロパティを開きます。
C/C++ Build -> Environmentタブを表示してPATHにgccのパスをいれてください。
PATHの行を選択してEditボタンをクリックして表示される以下の画面で「/usr/local/gcc-arm-none-eabi-4_9-2014q4/bin」のところをご自身の環境に合わせて変えてください。
それではさっそくビルドしてみましょう。
メニューのBuild->BuildProjectもしくはプロジェクトを選択して右クリックで表示されるメニューからBuildProjectを選択します。
OpenOCDのパスの設定
Eclipseメニューの Eclipse -> 環境設定
Preferences 画面の左側のメニューからRun/Debug -> OpenOCDを選択します。
Folder: のところにOpenOCDをインストールしたパスを入れてください。
以下の画像はHomebrewからインストールしたバージョン0.9.0を選択した例です。
(Browseボタンから選択するのがよいでしょう)
Debugの設定
というか、ボードにプログラムをダウンロードします。
debug(虫のアイコン) -> Debug Configurations... から作成します。
GDB OpenOCD Debugging を選択して新規作成します。2
MainタブはProjectとC/C++Applicationを設定
Debuggerタブの設定
Config options: に -fオプションでstlink-v2.cfg
と st_nucleo_f4.cfg
の場所を指定します。
Homebrewでインストールしたらおそらく以下の場所にあるでしょう
-f "${openocd_path}/../share/openocd/scripts/interface/stlink-v2.cfg" -f "${openocd_path}/../share/openocd/scripts/board/st_nucleo_f4.cfg"
GDB Client Setup のExecutableに使用するarm-none-eabi-gdbのパスを設定します。
Startup タプの設定
Initialization Commands のテキスト欄に以下の文字列をコピーします。
set remotetimeout 20
monitor reset init
monitor sleep 50
下の方(Mackbookだと隠れてるかもしれないので注意)にあるRun/Restart Commandsの Set breakpoint at: の値をtaskにします3
ボードにダウンロードする
上記の設定ができたらDebugから実行してみましょう。
コンソールのGDBのタブに以下のように表示されたらOKです。
現状ではデバッグはできないので(ごめんなさい)ここで終了しましょう。
コンソールから実行する
ダウンロードしたプログラムをシリアル経由で操作してみます。
minicomの設定
Serial Device にボードが使用しているUSBポートを設定します
Serial Device : /dev/tty.usbmodem1413(私の場合)
ボーレートは115200その他デフォルト設定のままで大丈夫な感じでした。
minicomを起動してボードのリセットボタン(黒い方)を押すと以下のように表示されます。
見慣れた?表示がでてきましたね。
入力もできますので、コマンドを入力してみてください。
(コマンドの説明はsample1.c内のコメント文を参照してください)