13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arduino M0 Pro でマルチタスクプログラミング : インストールとサンプルの実行

Last updated at Posted at 2016-02-21

はじめに

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 の箇所を書き換えます.
example/do_path.bat
         SET ARDUINO_DIR=C:\Program Files (x86)\Arduino
asp_1.9.1/target/arduino_m0_gcc/Makefile.target
         ARDUINO_BASE_DIR_WIN = C:\Program Files (x86)\Arduino

セットアップ

M0のPROGRAMMINGポートとPCをUSBケーブルで接続します.

m0pro.jpg

ドライバがインストールされ,デバッグユニット(EDBG)とCOMポートが認識されるはずです.

デバイスマネージャーでCOMポートの番号を確認して,Teraterm等で115200bpsで接続します.Arduino IDEのシリアルモニタでもよいです.

Lチカサンプルの実行

ボード上のLEDを点滅させるサンプルビルド&実行します.R2CAのパッケージの\examples\Basicにプログラム等があります.

rca_app.cppにプログラムが記述されています.ファイルにはいくつかのサンプルが入っていますが,ディフォルトではLチカが有効になっています.このプログラムはArduino IDEに含まれているサンプルBlinkと内容は同一です.

\examples\Basic\rca_app.cpp
// 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には次のように表示されます.

m0pro3.jpg

TOPPERS/ASPカーネルが起動して,setup()/loop()をタスクとして実行しています.

ファイルの先頭の定義で他の定義を有効にすると別のサンプルを実行できます.有効にできる定義は1個のみです.

\examples\Basic\r2ca_app.cpp
#define BLINK
//#define toneMelody
//#define USBUART
//#define SERIALUSB
//#define SERIAL5
//#define ATTACHINTERRUPT
//#define ANALOGWRITE
//#define ANALOGREAD
//#define RTC_ALARM

おわりに

M0 Pro は,Unoと比べると高価ですが,メモリサイズが大きく,デバッガも付属しているのでおすすめです.
次はAtmelStudioを使ったデバッグ方法について説明します.

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?