サービスコール(API)仕様
カーネル上で動作するアプリケーションが利用するためにサービスコール(API)の仕様については、利用するTOPPERSカーネルの種類に応じて、TOPPERSプロジェクトが発行する、以下のどちらかの仕様書を参照してください。
また、SOLID-OS において、オリジナル仕様のTOPPERSカーネルから機能拡張、機能変更された点については、このページ下の表を参照してください。
詳細については、以下の各カーネルの仕様/動作の拡張についての説明を参照してください
ASP3: TOPPERS/ASP3 リリースとの相違点
FMP3: TOPPERS/FMP3 リリースとの相違点
警告
TOPPERS第3世代カーネルの仕様においてはシステム時刻の単位はマイクロ秒となっており、 サービスコール(API)仕様でも時間を扱うものはすべてこの仕様に準じてマイクロ秒単位となっています。 既存のμITRON系OS向けソースコードやTOPPERS/FMP向けソースコードを扱う場合は時間単位の扱いにご注意ください。
オリジナルTOPPERS仕様からの機能拡張一覧
相違点 |
ASP3 |
FMP |
FMP3 |
---|---|---|---|
優先度拡張パッケージ (拡張 1~256 をサポート) |
✓ |
✓ |
✓ |
ミューテックス (第三世代カーネル仕様相当のサポート) |
標準 |
✓ |
標準 |
ミューテックス (優先度継承プロトコルのサポート) |
✓ |
✓ |
✓ |
メッセージバッファ (第三世代カーネル拡張パッケージ
|
✓ |
✓ |
✓ |
メッセージバッファ (非タスクからの |
✓ |
✓ |
✓ |
動的生成機能拡張パッケージ |
✓ |
✓ |
✓ |
C言語定義テーブルによるカーネル資源の設定 |
✓ |
✓ |
✓ |
割込み及び例外の処理は SOLID Core Service 内で行われます
|
✓ |
✓ |
✓ |
割込み及び例外の処理は SOLID Core Service 内で行われます
|
✓ |
✓ |
NA |
静的資源生成カーネルにおける以下のAPIについてパラメータ 指定値制限の緩和 (NULL 以外を指定可能)
|
✓ |
✓ |
✓ |
ミューテックスのロック解除順序についての制約緩和 |
✓ |
標準 |
✓ |
カーネル登録外割込みの割込み番号を指定したサービスコール 呼び出しは即時エラーにせずCore Service経由での操作を試みる (ASP3, FMP3) (FMP) |
✓ |
✓ |
✓ |
タスク起動要求キューイング数/タスク起床要求キューイング数 の上限をコンフィグレーション可能 |
✓ |
✓ |
✓ |
非タスクコンテキストからの |
✓ |
NA |
✓ |
非タスクコンテキストから呼び出し可能な |
NA |
✓ |
NA |
CPUロック状態での |
TBD |
TBD |
✓ |
初期化/終了ルーチンの登録方法 ASP3 仕様 3.3.0以前と 3.4.0以降の両方の方式をサポート |
✓ |
NA |
NA |
非タスクからの |
標準 |
✓ |
標準 |
タイマーイベントハンドラを各コアで実行可能 |
NA |
✓ |
標準 |
Readers/Writerロックのサポート |
✓ |
✓ |
✓ |
各プロセッサアイドル時間取得機能 |
TBD |
✓ |
TBS |
指定優先度以下の実行待ちタスクの中から最も優先度及び 優先順位が高いタスクIDの取得( |
NA |
✓ |
✓ |
実行中タスクのローテート (=同一優先度中で優先順位を最低にする) ( |
NA |
✓ |
TBS |
イベントフラグ待ち解除時のビットクリア指定(TA_BITCLR)の拡張 |
✓ |
✓ |
✓ |
カーネル内の各資源について最大数を取得するAPI ( |
TBS |
✓ |
✓ |
カーネル内の生成済み動的生成資源数を取得するAPI( |
TBS |
✓ |
✓ |
周期ハンドラAPIの非タスクコンテキスト拡張 ( |
NA |
✓ |
NA |
アラームハンドラAPIの非タスクコンテキスト拡張 ( |
NA |
✓ |
NA |
指定プロセッサについて実行中タスクの優先度を取得するAPI |
TBD |
✓ |
TBS |
指定プロセッサについて実行中タスクのタスクIDを取得するAPI |
TBD |
✓ |
TBS |
複数プロセッサをターゲットとする割込みの指定が可能 |
NA |
TBS |
✓ |
CPU0以外をマスタープロセッサコアに指定可能 |
✓ |
✓ |
✓ |
複数CPUクラスタ構成には対応 |
NA |
✓ |
✓ |
スタック領域先頭、サイズ、現スタックポインタを取得可能 |
✓ |
✓ |
✓ |
コンテキスト、CPUロック状態によらず当該CPUコアでの RUNNING 状態のタスクのタスクIDを返す |
✓ |
✓ |
✓ |
タスク実装によるμITRON サービスコールエミュレーション
|
✓ |
TBD |
TBD |
タスク実装によるμITRON サービスコールエミュレーション
|
✓ |
標準 |
TBD |
非タスクコンテキストから呼び出し可能な参照系API追加
|
NA |
✓ |
NA |
CPUロック状態からの |
TBD |
TBD |
✓ |
非タスクコンテキストから呼び出し可能な |
NA |
✓ |
NA |
自タスクの終了と削除( |
✓ |
✓ |
✓ |
注釈
- 凡例
✓:該当, TBS:対応予定, TBD:検討中, NA:対象外, 標準:標準機能
SOLID-OS実装での制限事項(解消予定を含む)
制限事項 |
ASP3 |
FMP |
FMP3 |
---|---|---|---|
1個しかない SoC の場合の使用上の制限) |
NA |
✓ |
NA |
スピンロックの動的削除 ( |
NA |
✓ |
✓ |
スピンロックはエミュレート方式のみ対応
|
NA |
✓ |