モノのインターネットプロジェクトで使用するオペレーティングシステムを評価していますが、次に進むための最良の方法がわかりません。
32k RAMとCC2520 802.15.4トランシーバーを備えたTM4C123GH6PM MCUを使用していますが、システムがすでにそれらのドライバーを提供しているとしたらすばらしいでしょう。
システムは、ドットマトリックス画面を描画し、ユーザー入力に反応する1つの(インタラクティブな)タスクを実行します。設定とアプリケーションデータをspiフラッシュに保存します。モジュール間でデータを同期し、モジュールからセンサーデータを抽出してゲートウェイに転送し(rplが頭に浮かびます)、またゴシップでOtAファームウェアの更新を配布するために、複数のモジュールのメッシュ(802.15.4に基づく)があります。ファッションのように。同様に、メモリを大量に消費するアプリケーションも実行しています。
これまでのところ、これらのシステムを調べてきました。
RIOT:
長所
- 優れたハードウェア抽象化
- 小さな足跡
- とても活発で親切なコミュニティ
- 完全な802.15.4 / 6LoWPANスタック
短所
- 不安定であり、根本的な変化をまだ受けている
- まだ競合状態/クラッシュが含まれています
- ファイルシステムのサポートなし
- いくつかのネットワークプロトコル
長所
- 成熟したシステム、商用製品で使用
- 多くの有用なプロトコルを備えた完全な802.15.4 / 6LoWPANスタック
- ファイルシステムのサポート
- cc2520サポート
短所
- 開発が古くなっている
- 「成長した」コードベース、たくさんのビット腐敗
- 品質の悪いTiva Cポート
- 最新のプラットフォームのサポートはほとんどありません
- 非プリエンプティブスケジューリングはアプリケーションに問題を引き起こす可能性があります
長所
- 少し追加の複雑さ
- 使いやすく信頼性の高いスケジューラ
- 多くの製品で使用される成熟したプロジェクト
- たくさんのポート
短所
- ファイルシステムなし
- ドライバーのハードウェア抽象化なし/ハードウェアドライバーなし
- ネットワークスタックなし
- 動的メモリの使用率がやや高い
長所
- 非常に機能が豊富で、ほとんどLinuxのように感じますが、まだ小さいです
- ファイルシステムのサポート
- 優れたハードウェア抽象化
- Tiva Cポート、他の多くのポート
短所
- やや複雑
- 802.15.4 / 6LoWPANのサポートなし、「クラシック」ネットスタックのみ
私の結論は、Contikiの良い部分(ネットスタック、ファイルシステム)を取り、それらをFreeRTOSに移植することです。しかし、私はそのようなフォークで完全に快適ではありません。私はおそらくエラーを追加していて、アップストリームの修正をバックポートすることはできません。また、将来的にMCUを切り替えることができるように、独自のハードウェアアブストラクションを発明する必要があります。だから私は他の多くの人にもあるはずの問題のように思われる何かのために自分のOSになってしまうでしょう-誰かが以前にそれをしたことがないのですか?(私は何かを見つけたという意味ですが、contiki-os全体をFreeRTOSタスクとして実行するという考えは私を不快にします)
行方不明のものはありますか?おそらく痛みはそれだけの価値があるでしょう。代わりに、ハードウェアでContikiを機能状態にしようとする必要がありますか?または、私の問題を解決するために見逃した別のシステムはありますか?
また、6lowPanが必要かどうかは定かではありませんが、既存のプロトコルに基づいて構築できることや、他のシステム(Linuxなど)と互換性があることを意味する場合は、追加のオーバーヘッドを喜んで受け入れます。
running the entire contiki-os as a FreeRTOS task makes me uncomfortable
それだけです。私は..と思わなかっただろう