wiki:rtos_arduino

Version 6 (modified by ertl-honda, 8 years ago) ( diff )

--

TOPPERS/RCA(RTE/RTOS compatible with Arduino libraries)

クイックスタート(GDBデバッグ版)

機材の用意

ツールのインストール

  • Arduino IDEのインストール.
    • .org版(1.7.x)をインストールすること.
    • インストーラに従ってインストールを実施する.

  • Arduino IDE のインストールパスの設定
    • 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/
           ARDUINO_BASE_DIR_WIN = C:\Program Files (x86)\Arduino
      

パッケージのダウンロードと展開

  • trunkをzipでダウンロードすると楽.

ビルド

  • フォルダ ./example/basic を開く
  • ./do_make.bat を実行

実行

  • ボードの'PROGRAMポート'とPCのUSBを接続する.
  • Arduino IDEを起動する(teraterm等でも可)
    • ツール -> ポート -> COMx(Arduino M0 Pro (Programmmming Port)) を選択.
    • ツール -> シリアルモニタ を選択してシリアルモニタを実行する.
    • シリアルモニタの右下の速度を115200bpsに変更
  • フォルダ ./example/basic を開く
    • ./do_run.bat を実行

デバッグ

  • フォルダ ./example/basic を開く
  • ./do_debug.bat を実行

クリーン

  • フォルダ ./example/basic を開く
  • ./do_clean.bat を実行

クイックスタート(Atmel Studio使用版)

ツールのインストール

  • Arduino IDEのインストール.
    • 上記と同じ.
  • Atmel Studio のインストール
    • インストーラに従ってインストールを実施する.

プロジェクトを開く

  • \example\basic\asp.atsln をタブルクリックするとAtmel Studioが起動する.

ビルド

  • メニュー -> Build -> Build Solution を実行

実行

  • メニュー -> Debug -> Start Debugging and Brake を実行

メモリに書き込まれるため,実行を開始する. ファイルメニューからrca_app.cpp を選択してブレークポイントを置くことが 可能.

プログラミングモデル

マルチタスク

マルチタスクによるプログラミングが可能.各タスク間はASPのAPIを呼び出す ことが可能である.

プログラム例

#include "rca.h"

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH); 
  delay(1000); 
  digitalWrite(13, LOW); 
  delay(1000);
}

void task1_setup() {
  Serial.begin(9600);
}

void task1_loop() {
  int sv = analogRead(A0);
  Serial.println(sv);
  delay(1);
}

タスク名

Arduinoライブラリを実行するためのタスクとして,メインタスクとタスク1, タスク2,...(RCAタスク)を用意している.メインタスクは必ず生成され,RCA タスクは,幾つ生成するかはマクロで定義可能である.現状最大数は4個である.

それぞれのタスク名は次の通りである.

タスク タスク名
メインタスク RCA_MAINTASK
タスク1 RCA_TASK1
タスク2 RCA_TASK2
タスク3 RCA_TASK3
タスク4 RCA_TASK4

各タスクは,次の関数を実行する.これらの関数の本体を記述する.

タスク 関数
メインタスク setup/loop
タスク1 task1_setup/task2_loop
タスク2 task2_setup/task2_loop
タスク3 task3_setup/task3_loop
タスク4 task4_setup/task4_loop

各setup/loopの振る舞いはArduinoと同等である.

注意点

  • Arduino IDEに含まれている M0 向けライブラリは開発されて日が浅いため不具合やコンパイルが通らない場合があるため注意が必要.

制限事項

  • I2CやSPIライブラリは現状セマフォ等で排他制御していないため,複数タスクで呼び出す場合はタスク側で排他が必要.

ライセンス

ファイル毎にライセンスが異なるので注意してください.

ディレクトリ名 ライセンス
lib GNU GPL
asp_1.9.2 TOPPERS ライセンス
exsample GNU GPL
arduino_lib それぞれのファイルに指定されたライセンス(GNU GPL or BSD)

Attachments (5)

Note: See TracWiki for help on using the wiki.