はじめに
Windows上でEclipseベースのTrueSTUDIOを用いて.RTOSであるTOPPERS/ASPカーネル(以下,ASPカーネル)をNUCLEO-F401REで動作させる方法について説明します.
一般的に,WindowsでASPカーネルのビルドするには,Cygwin環境,クロスコンパイラ,デバッガを別々にインストールする必要があり環境構築の手順が煩雑でした.TrueSTUDIOは,ASPカーネルに必要なツール類がまとめてインストールできるため,環境構築の手間が省けます.
TrueSTUDIOは以前はコードサイズの制限があったのですが,現在は制限がなく基本的な機能はフリーで使用することができます.
用意するハードウェア
-
- 秋月電子やスイッチサイエンス等から2000円程度で購入可能です.amazonでポチるのが最も簡単な入手方法です.
- 様々な種類がリリースされていますが,現状はF401REのみをサポートしています.STM32F4シリーズを搭載しているNUCLEOなら簡単にポーティング可能です.ポーティング方法は別途記載します.
-
USB(miniB)ケーブル
- ボードには付属していないので用意して下さい.
-
Windows PC
- Windows7とWindows10で動作を確認しています.
ソフトウェア
-
- v5.4.1 で動作確認しています.これより古いバージョンは問題が発生する可能性があります.
- AtollicのサイトにアクセスするとDOWNLOAD NOW!というボタンがあるので押すとダウンロードが始まります.サイズが1G程度あるので注意して下さい.
- ダウンロード後インストールして下さい.
-
- 上記リンクから
asp_nucleo_f401re_gcc-20160216.zipasp_nucleo_f401re_gcc-20160219.zip(リンカスクリプトに不具合がありましたのでupdateしました)をダウンロードして展開して下さい.
- 上記リンクから
ビルド&実行の手順
1.TrueSTUDIOを実行
TOPPERS/ASPカーネルに含まれているTrueSTUDIOのプロジェクトファイルをエクスプローラからダブルクリックしてTrueSTUDIOを起動します.
TrueSTUDIOが起動するとワークスペースの指定画面が表示されるため適当なワークスペースを指定する..cprojectのフォルダの一つ上のフォルダを指定すると管理が楽です..cprojectと同じフォルダは指定しないで下さい.
3秒ほど宣伝画面が出るので"ウィンドウを閉じて下さい"のボタンが有効になるまで待って,有効になったらボタンを押して下さい.
左上のInformation Centerの右の×ボタンを押すとプロジェクトが表示されます.
左のペインのプロジェクトビューからaspを選択し,ツリーを展開するとサンプルプログラムとASPカーネルの各ファイルを見ることができます.
2.ビルド
3.ボードの接続
NUCLEO-F401REをUSBケーブルでwindowsPCに接続して下さい.ドライバのインストールが開始され,COMポートが1つ追加されます.
4.ダウンロード&実行
ボードの接続後,デバッグボタンを押すとダウンロードが開始されます.
1回目はSTLINKのファームウェアのアップデートが発生する場合があります.その場合は,画面に従ってファームウェアをアップデートしてから,USBケーブルを一旦外してから,Teratermの再接続を行い,デバッグボタンを押して下さい.
次に上記で追加されたポートに対して,ターミナルを開きます.メニューのビューからターミナルを選択します.左下ペインにターミナルが追加されるので,接続ボタンを押して,接続タイプをシリアルとして,115200bps, 8bit, Parity none, Stop 1bit, フロー制御なしとてしてOKを押します.
ダウンロード後停止した状態なので,メニューから"再開"ボタンを押すとカーネルが起動して,main_taskの先頭で停止します.この状態で"再開"ボタンを押すと実行が再開されます.
ターミナルにはログが出力されます.入力も可能です.
新規プロジェクト
新規にプロジェクトを作成する場合はフォルダtruestudioをコピーしてtruestudio2等に名前を変更します.
次にtruestudio2以下のaspの.cprojectを開いた場合にワークスペースの指定画面が出るのでtruestudio2を指定します.
あとは最初に書いたようにビルドが可能です.
プロジェクトへのファイルの追加
例えばpoi.cをビルド対象としたい場合には,poi.cをプロジェクトファイル(sample1.c)があるフォルダに置いて,Makefileに以下の様に記載すればよいです.
#
# アプリケーションプログラムに関する定義
#
APPLNAME = sample1
APPLDIR =
APPL_CFG = $(APPLNAME).cfg
APPL_DIR = $(APPLDIR) $(SRCDIR)/library
APPL_ASMOBJS =
ifdef USE_CXX
APPL_CXXOBJS = $(APPLNAME).o
APPL_COBJS =
else
APPL_COBJS = $(APPLNAME).o poi.o
endif
sample1.h/sample1.h/sample1.cfgの名前を変更したい場合は,MakfileのAPPLNAMEを変更すればよいです.
おわりに
TrueSTUDIOを使用すると簡単にASPカーネルをビルド&実行させることが出来ますので,RTOSに興味がある方は試して下さい.