SOLID概要

SOLID-OS

オープンソースITRON仕様のTOPPERSカーネルを基盤とし、独自にメモリ管理機能やローディング機能の対応などを強化しています。

SOLID-OSは、プロセッサの種類やTOPPERS仕様により、以下のように展開しています(2020/11/13時点の計画を含みます)。

注意:本ロードマップの計画は、予告なく変更することがあります。


リアルタイムOS TOPPERS

Arm®v7AやArm®v8AクラスのCPUを使う場合、ネットワーク、ファイルシステム、GUI など、豊富な機能のあるLinuxなどの高機能OSが採用されることが多いのですが、従来の組み込み文化との乖離が大きくソフトウエア開発者にとって、環境構築だけでも負担になる場合があるのではないでしょうか。

SOLID-OSとして「わかりやすい」「コンパクト」「学習コストが低い」組み込み機器として実績のあるμITRON 4.0仕様準拠のTOPPERSカーネル(ASP3、FMP、FMP3)を採用、OS機能も必要な機能だけをリンクしコンパクト化が可能です。

  • 32bit シングルコア カーネルに対応
  • 32bit マルチコア カーネルに対応
  • 64bit シングルコア カーネルに対応
  • 64bit マルチコア カーネルに対応

TOPPERSカーネルの特徴

  • TOPPERS/ASP3:シングルコア向け、ティックレス仕様により実行効率・電力効率が良い割込み制御が可能
  • TOPPERS/FMP: マルチコア向け
  • TOPPERS/FMP3:マルチコア向け、ティックレス仕様により実行効率・電力効率が良い割込み制御が可能
    (TOPPERS/FMP3カーネルは、SOLID 2.0以降で対応しています)

SOLIDでは、カーネル本体、プロセッサ依存部に加えて、代表的な評価ボードのBSPも提供します。ロイヤリティーフリーです。


TOPPERS/ASP3、TOPPERS/FMP3 カーネルの特長と機能拡張

「コンパクトなカーネル」「ティックレスタイマ採用による高精度・省電力設計可能な時間管理(左図)」などが大きな特徴で、従来のμITRONと同様なAPI体系であり、既存のITRON/T-KERNELベースのシステムからの移植コストが小さいというメリットもあります。SOLID-OSではさらに以下のような機能を拡張しています。

  • ソフトウェアの大規模化を想定し、タスク優先度を最大256まで拡張
  • タスクなどOS資源の動的生成機能に対応、プログラム実行中にタスクの生成および解放処理が簡単に実行可能
  • 優先度継承ミューテックスの追加
  • FMPに動的資源生成機能を追加
  • メッセージバッファの動的資源生成対応
  • 読み手書き手ロックの追加
  • 可変長メモリの追加
  • メールボックスの追加
  • 一部のAPIについて、実行可能なコンテキストを拡張


MMUを活かしたOS連携機能

Arm®v7AやArm®v8AクラスのCPUにおいて、メモリプロテクションやカーネル・ユーザ空間の完全分離にMMUを活用する事が有効です。また64bitメモリ空間にも対応しています。

SOLID-OSでは
● プロテクション使ったデバッグ支援
● 仮想アドレスを使ったデバッグ支援

を実現するため、OSに依存しないMMU対応のベアメタルローダーを新規開発し、単一空間で、複数実行モジュール、仮想メモリ、プロテクションに対応しています。


かしこいエージェント、ベアメタルローダー

SOLIDではRTOSが求めるリアルタイム性を保持するために、単一の仮想空間をMMUを活用して管理しています。その代表的なものがベアメタルローダーで、SOLIDが各モジュールの要素を解析し、仮想空間中に適切に配置し、ロードします。
この機能を使うと、改修したモジュールだけをビルド・ロードすることができるので、開発効率が大幅に向上します。

● あらかじめ仮装デバイスで(1)と(2)の間の隙間を大きくしておく64M単位でも1Gの中に16エリア確保できます。
● モジュールのサイズに応じて、ローダのメモリマネージャが物理メモリを割り当てるので、メモリの無駄が少なくてすみます。
● (1)が(1)'に変更されても、(2)の変更(再ビルド)や転送が不要です。


ミドルウエア設定

TCP/IP、ファイルシステムなどはオープンソースベースの物がSOLID-OSに標準機能として提供します(OSS以外のメーカー様提供の物に変更する事も可能です)。また各パートナー企業製のミドルウエアの実装や連携も、当社が窓口となって対応します。