EV3RTを使ってみる(3.5)

Toppers/EV3RTを使ってプログラムを作成したときの記事です。
この記事を書いた時のEV3RTのバージョンはβ3です。
目次はこちら

ここ最近、時間を見つけてはToppers/EV3RTの動作確認をしていたりします。ただ、私はToppersの中の人ではない 1ので、動作仕様については公式ドキュメントに書かれている以上のことは知りません。ですから、あまり難しいことは考えず、「あー、こんな動作するんだー」という感じのいい加減な動作確認をしています。

さて、現在 2のEV3RT最新版はβ3-1となっていますが、まだまだ開発中の段階のようで、センサーポート1番がタッチセンサしか認識しないといった不具合が報告されています 3。また、ダイナミックローダを使った場合、ミューテックス機能はサポートされておらず、セマフォ機能は動作しない 4ので、まともに排他制御をするのは難しいと思われます。というわけで、マルチタスクのプログラムを作る場合は、ダイナミックローダを使う方式ではなく、カーネルと一緒にコンパイルしたプログラムをSDカード経由でロードする方式をとった方がよさそうです。SDカードをEV3本体から引き抜くときに苦労してしまいますが。。。

Toppers/EV3RTの方も開発が継続されているようですので、今後はダイナミックローダでも排他制御機能を使えるようになるかもしれません。とはいっても、現在のバージョンであっても、ダイナミックローダを使わななければ排他制御機能を問題なく利用できますし、シングルタスクのプログラムであれば排他制御を必要としませんのでダイナミックローダを使っても問題ありません。

Notes:

  1. Toppers会員でもありません。というか、私は組み込み分野の人ではないのでToppersの中の人とは接点がないかも。
  2. 2015年3月12日
  3. 最初にサンプルプログラムを実行したときは、ポート1を指定したときだけフリーズしたので、ハードウェアの初期不良かと勘違いしてしまいました。
  4. さらに、アプリケーションのロードができなくなります。カーネルかダイナミックローダにバグがあるのかも?