はじめに
Arduino M0 Pro (以下,M0)は,一般的なArudino Unoと異なり,ARM Cortex-M0+を搭載していて,性能やROM/RAMも一桁大きいです.M0を使って,TOPPERS/ASPカーネルベースのマルチタスクプログラミング環境を提供するTOPPERS/R2CAの実行方法について説明します.
ハードウエア
- Arduino M0 Pro
- Arduino M0 を買わないように注意
- デバッグモジュールがなくSerialがUSBによるエミュレーションなので使い勝手が悪いです.
- スイッチサイエンス, 秋月, マルツパーツ 等で購入可能.
- Windows PC
- Windows7とWindows10で動作を確認しています.
- USB(microB)ケーブル
- ボードには付属していないので用意して下さい.
ソフトウェア
- Arduino IDE
- 1.7.11で動作確認済み.
- インストーラに従ってインストールして下さい.
- ターミナルエミュレータ
- Teraterm等をインストールして下さい.
- TOPPERS/R2CA
- ZIPファイルをダウンロード可能です
- このページの下にあるZip Archiveをクリックしてダウンロード.
- SVNを使ってファイルを取得
svn co http://dev.toppers.jp/svn_user/contrib/rtos_arduino/trunk r2ca
- Arduino IDE のインストールパスの設定
- C:\Program Files (x86)\Arduino にArduino IDEをインストールした場合は必要ありません.
- Arduino IDEをインストールした場所をR2CAのファイルに設定します.以下のC:\Program Files (x86)\Arduino の箇所を書き換えます.
SET ARDUINO_DIR=C:\Program Files (x86)\Arduino
ARDUINO_BASE_DIR_WIN = C:\Program Files (x86)\Arduino
セットアップ
M0のPROGRAMMINGポートとPCをUSBケーブルで接続します.
ドライバがインストールされ,デバッグユニット(EDBG)とCOMポートが認識されるはずです.
デバイスマネージャーでCOMポートの番号を確認して,Teraterm等で115200bpsで接続します.Arduino IDEのシリアルモニタでもよいです.
Lチカサンプルの実行
ボード上のLEDを点滅させるサンプルビルド&実行します.R2CAのパッケージの\examples\Basicにプログラム等があります.
rca_app.cppにプログラムが記述されています.ファイルにはいくつかのサンプルが入っていますが,ディフォルトではLチカが有効になっています.このプログラムはArduino IDEに含まれているサンプルBlinkと内容は同一です.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(115200);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.println("HIGH");
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
Serial.println("LOW");
delay(1000); // wait for a second
}
ビルドは同じフォルダにあるdo_make.bat をダブルクリックすると開始されます.ファイルが色々作成されますが,rca.elfが出来るとビルド成功です.
実行はdo_run.batをダブルクリックするとダウンロードが開始され,実行されます.Teratermには次のように表示されます.
TOPPERS/ASPカーネルが起動して,setup()/loop()をタスクとして実行しています.
ファイルの先頭の定義で他の定義を有効にすると別のサンプルを実行できます.有効にできる定義は1個のみです.
#define BLINK
//#define toneMelody
//#define USBUART
//#define SERIALUSB
//#define SERIAL5
//#define ATTACHINTERRUPT
//#define ANALOGWRITE
//#define ANALOGREAD
//#define RTC_ALARM
おわりに
M0 Pro は,Unoと比べると高価ですが,メモリサイズが大きく,デバッガも付属しているのでおすすめです.
次はAtmelStudioを使ったデバッグ方法について説明します.