TRON EMULATOR Q&A
TRON EMULATORに関する質問
30、40、…でハンドラが起動されますが、他のプロセスの影響等によって時刻10の次が時刻35となった場合、以後の振る舞いは
どうなるのでしょうか?時刻20は抜け、以後40、50、…で起動されるのでしょうか?
TRON EMULATORに関する答え
- 【1】実行するのにroot権限は必要でしょうか?
root権限は必要ありません。
- 【2】TRON EMULATORの内部で使用されているシグナルは?
TRON Emulator内で「SIGALRM」「SIG_USR1」は使用しておりますので、この2つのシグナルは使用しないでください。
- 【3】ITRONのタスクからLinuxのシステムコールを使用することはできるのでしょうか?
Linuxのシステムコールは使用可能ですが、ブロッキングするようなLinuxの関数は使用できません。
(read, write, getc, gets, accept, connect send, sendto, recv, recvfrom, など)但し、TronEmu用のSelect()が対応されて
おりますので、そちらを組み合わせてrecvfromなどを使用することが可能です。 - 【4】ITRONのタスクとLinuxのスレッドを同一プロセス内で共存させることはできますか?
TRON Emulatorの中でITRONのタスクとLinuxのスレッドを共存させることはできます。
但し、Linuxのスレッド内ではTron EmulatorのTRON関数を呼び出すことはできません。
(ITRONのタスク上ではTRON関数、Linux関数両方とも呼び出すことが出来ます。) - 【5】周期起動ハンドラで周期超過時の振る舞いについて、例えば、10msecの周期起動ハンドラを定義すると、通常は時刻10、20、
30、40、…でハンドラが起動されますが、他のプロセスの影響等によって時刻10の次が時刻35となった場合、以後の振る舞いは
どうなるのでしょうか?時刻20は抜け、以後40、50、…で起動されるのでしょうか?
TRON Emulatorでは周期起動ハンドラのタイマは時間通過で判定しておりますので、周期が抜けることはありません。
左例の場合、時刻35まで遅延した場合、時刻35の段階で時刻20、30で実行されるはずであった処理を行います。
それ以降は、時刻40…と動作していきます。 - 【6】タスク優先度はどのようになっていますか?
TRON EMULATORのタスク優先度は、1-32(1が優先度高)となっています。
- 【7】μITRON4とμITRON3のソースコードは共存できますか?
μITRON 3.0とμITRON 4.0のアプリケーションの混在は可能ですが、同一ソースコード内での混在はできません。
混在する場合は別ソースコードにする必要があります。 - 【8】タスクスタックの指定は可能ですか?また、タスクスタックの内容を表示する機能はありますか?
タスクのスタック領域の指定は対応しておりません。また、タスクスタックの使用状況などの表示する機能はございません。
- 【9】loc_cpu()でCPUロック状態にした場合、ディスパッチは発生しますか?
μITRON4.0仕様では、ディスパッチ禁止状態とCPUロック状態は独立した別の状態として管理されており、loc_cpu()では
CPUロック状態には移行しますが、ディスパッチ禁止状態には移行しない実装となっております。
動作としては、CPUロック状態の中にサービスコールが呼ばれた場合、E_CTXを返すという実装を行っております。
ちなみに、dis_dsp()でディスパッチ禁止状態にした場合は、ディスパッチは発生しません。 - 【10】Interl VT, AMD-V, TrustZone等のベアメタル ハイパーバイザーの機能は使用してますか?
TRON EMULATORは、Interl VT, AMD-V, TrustZone等のベアメタル ハイパーバイザーの機能は、使用しておりません。
- 【11】TRON EMULATORのタスクをGDBでデバッグしたいのですが、可能でしょうか?
GDBをご使用いただいてのデバッグは可能です。
- 【12】TRON EMULATORは、マルチコアCPUに対応していますか?
TRON EMULATORはマルチコア環境でも動作しますが、マルチコアで動作させる場合、TRON EMULATORが動作するCPUを
固定させる必要があります。そのために、マルチコア環境で動作させるためには、起動オプションで使用するCPU を指定して
起動させます。