TRON EMULATOR Q&A


TRON EMULATORに関する質問

  • 【1】実行するのにroot権限は必要でしょうか?
  • 【2】TRON EMULATORの内部で使用されているシグナルは?
  • 【3】ITRONのタスクからLinuxのシステムコールを使用することはできるのでしょうか?
  • 【4】ITRONのタスクとLinuxのスレッドを同一プロセス内で共存させることはできますか?
  • 【5】周期起動ハンドラで周期超過時の振る舞いについて、例えば、10msecの周期起動ハンドラを定義すると、通常は時刻10、20、
       30、40、…でハンドラが起動されますが、他のプロセスの影響等によって時刻10の次が時刻35となった場合、以後の振る舞いは
       どうなるのでしょうか?時刻20は抜け、以後40、50、…で起動されるのでしょうか?
  • 【6】タスク優先度はどのようになっていますか?
  • 【7】μITRON4とμITRON3のソースコードは共存できますか?
  • 【8】タスクスタックの指定は可能ですか?また、タスクスタックの内容を表示する機能はありますか?
  • 【9】loc_cpu()でCPUロック状態にした場合、ディスパッチは発生しますか?
  • 【10】Interl VT, AMD-V, TrustZone等のベアメタル ハイパーバイザーの機能は使用してますか?
  • 【11】TRON EMULATORのタスクをGDBでデバッグしたいのですが、可能でしょうか?
  • 【12】TRON EMULATORは、マルチコアCPUに対応していますか?


  • TRON EMULATORに関する答え

       
    • アイコンQ【1】実行するのにroot権限は必要でしょうか?

      アイコンA root権限は必要ありません。


    • アイコンQ【2】TRON EMULATORの内部で使用されているシグナルは?

      アイコンA TRON Emulator内で「SIGALRM」「SIG_USR1」は使用しておりますので、この2つのシグナルは使用しないでください。


    • アイコンQ【3】ITRONのタスクからLinuxのシステムコールを使用することはできるのでしょうか?

      アイコンA Linuxのシステムコールは使用可能ですが、ブロッキングするようなLinuxの関数は使用できません。
        (read, write, getc, gets, accept, connect send, sendto, recv, recvfrom, など)但し、TronEmu用のSelect()が対応されて
         おりますので、そちらを組み合わせてrecvfromなどを使用することが可能です。


    • アイコンQ【4】ITRONのタスクとLinuxのスレッドを同一プロセス内で共存させることはできますか?

      アイコンA TRON Emulatorの中でITRONのタスクとLinuxのスレッドを共存させることはできます。
         但し、Linuxのスレッド内ではTron EmulatorのTRON関数を呼び出すことはできません。
         (ITRONのタスク上ではTRON関数、Linux関数両方とも呼び出すことが出来ます。)


    • アイコンQ【5】周期起動ハンドラで周期超過時の振る舞いについて、例えば、10msecの周期起動ハンドラを定義すると、通常は時刻10、20、
         30、40、…でハンドラが起動されますが、他のプロセスの影響等によって時刻10の次が時刻35となった場合、以後の振る舞いは
         どうなるのでしょうか?時刻20は抜け、以後40、50、…で起動されるのでしょうか?

      アイコンA TRON Emulatorでは周期起動ハンドラのタイマは時間通過で判定しておりますので、周期が抜けることはありません。
         左例の場合、時刻35まで遅延した場合、時刻35の段階で時刻20、30で実行されるはずであった処理を行います。
         それ以降は、時刻40…と動作していきます。


    • アイコンQ【6】タスク優先度はどのようになっていますか?

      アイコンA TRON EMULATORのタスク優先度は、1-32(1が優先度高)となっています。


    • アイコンQ【7】μITRON4とμITRON3のソースコードは共存できますか?

      アイコンA μITRON 3.0とμITRON 4.0のアプリケーションの混在は可能ですが、同一ソースコード内での混在はできません。
         混在する場合は別ソースコードにする必要があります。


    • アイコンQ【8】タスクスタックの指定は可能ですか?また、タスクスタックの内容を表示する機能はありますか?

      アイコンA タスクのスタック領域の指定は対応しておりません。また、タスクスタックの使用状況などの表示する機能はございません。


    • アイコンQ【9】loc_cpu()でCPUロック状態にした場合、ディスパッチは発生しますか?

      アイコンA μITRON4.0仕様では、ディスパッチ禁止状態とCPUロック状態は独立した別の状態として管理されており、loc_cpu()では
         CPUロック状態には移行しますが、ディスパッチ禁止状態には移行しない実装となっております。
         動作としては、CPUロック状態の中にサービスコールが呼ばれた場合、E_CTXを返すという実装を行っております。
         ちなみに、dis_dsp()でディスパッチ禁止状態にした場合は、ディスパッチは発生しません。


    • アイコンQ【10】Interl VT, AMD-V, TrustZone等のベアメタル ハイパーバイザーの機能は使用してますか?

      アイコンA TRON EMULATORは、Interl VT, AMD-V, TrustZone等のベアメタル ハイパーバイザーの機能は、使用しておりません。


    • アイコンQ【11】TRON EMULATORのタスクをGDBでデバッグしたいのですが、可能でしょうか?

      アイコンA GDBをご使用いただいてのデバッグは可能です。


    • アイコンQ【12】TRON EMULATORは、マルチコアCPUに対応していますか?

      アイコンA TRON EMULATORはマルチコア環境でも動作しますが、マルチコアで動作させる場合、TRON EMULATORが動作するCPUを
         固定させる必要があります。そのために、マルチコア環境で動作させるためには、起動オプションで使用するCPU を指定して
         起動させます。