C++に対応していますか。

弊社RTOS「μC3/Compact」、「μC3/Standard」に関するご質問
返信する
アバター
eForce技術担当
記事: 193
登録日時: 2014年4月24日(木) 14:18

C++に対応していますか。

投稿記事 by eForce技術担当 » 2014年9月16日(火) 14:02

μITRON自体がC++言語を考慮していないため、C++非対応とさせていただいています。
ただし、システムコールの呼び出しだけであれば、「extern "C"」を付ければ可能です。

kernel.hの変更

コード: 全て選択

#ifdef __cplusplus
extern "C" {
#endif
   :
   kernel.hの本体
   :
#ifdef __cplusplus
}
#endif
その他,μC3が提供するソースでコンパイルエラーとなる箇所(変数宣言や関数)が
あれば,extern "C"を付与してください。
("C"リンケージであることを明示的に指定してください。)

その他、現時点で分かる範囲で注意点を記載します。
1. 静的なオブジェクト
 グローバルなコンストラクタやデストラクタは、カーネルが動作していない状態で呼び出されます。
 従って、これらの関数内では、μC3のサービスコールを呼び出すことはできません。
2.new演算子、delete演算子
 コンパイラ処理系に依存するかと思いますが、マルチタスク環境では排他制御が必要になる
 場合があります。
3.例外処理
 throwやcatch時における処理系の挙動が想定できないため、
 タスク内でtry/throw/catchは使用しないでください。

次の情報もあわせてご覧ください。

C++に対応していますか。(Q&A形式の補足)
viewtopic.php?f=12&t=111

返信する