JP2010039695A - Multitask operating system and debugging device - Google Patents
Multitask operating system and debugging device Download PDFInfo
- Publication number
- JP2010039695A JP2010039695A JP2008200821A JP2008200821A JP2010039695A JP 2010039695 A JP2010039695 A JP 2010039695A JP 2008200821 A JP2008200821 A JP 2008200821A JP 2008200821 A JP2008200821 A JP 2008200821A JP 2010039695 A JP2010039695 A JP 2010039695A
- Authority
- JP
- Japan
- Prior art keywords
- task
- state
- storage area
- time
- trace
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、複数のタスクの状態に係るトレース情報の取得及び表示を簡単な操作で任意に行えるようにしたマルチタスク・オペレーティング・システム及びデバッグ装置に関する。 The present invention relates to a multitask operating system and a debugging apparatus that can arbitrarily acquire and display trace information related to a plurality of task states with a simple operation.
従来より、マルチタスク・オペレーティング・システム(以下、マルチタスクOSという)上で動作するアプリケーション・ソフトウェアや、マルチタスクOSを利用した組み込みシステムのデバッグ作業において、各タスクが設計通りに動作しているか、効率良く動作しているかを、マルチタスクOS内で保持しているトレース情報からタスク毎のタスク状態をオペレータが取得して検証していた。 Conventionally, in the debugging work of application software that runs on a multitasking operating system (hereinafter referred to as a multitasking OS) or an embedded system that uses a multitasking OS, whether each task is operating as designed. The operator acquires the task state for each task from the trace information held in the multitasking OS and verifies whether it is operating efficiently.
例えば、プログラム内のタスク状態が格納してあるアドレスとタスク番号とをオペレータが入力し、そのアドレスに書き込みがあった場合にタスク状態を取得して表示させたり、タスクが停止時間の許容値を超えた場合に停止原因毎に表示したり、オペレータによって設定された時間以上で指定されたタスクが指定された状態であるか否かを検出したりするようにしてデバッグ作業を支援する技術が知られている。
しかしながら、上述したような従来技術では、オペレータが検証したいタスク、タスク状態、検出するための条件などを設定する場合はオペレータによる種々の操作が必要となり、タスクの停止状態を監視する場合はタスクの実行状態と停止状態しか評価することができない。 However, in the prior art as described above, when an operator sets a task to be verified, a task state, a condition for detection, etc., various operations by the operator are required, and when monitoring a task stop state, Only the execution state and the stop state can be evaluated.
従って、トレース中のタスクがどのような状態にあったのか、動作全体における複数のタスクの状態は全体の動作バランスとして効率的であったのかを検証することができなかった。 Therefore, it was impossible to verify what state the task being traced was and whether the state of the plurality of tasks in the entire operation was efficient as the overall operation balance.
よって、本発明の目的は、マルチタスクOS上で動作するアプリケーション・ソフトウェアや、マルチタスクOSを用いた組込みシステムにおいて、タスク毎のタスク状態の時間や割合をオペレータの手間をかけずに測定し、その結果を統計的かつグラフィカルに表示することによりシステムの評価を容易に行えるようにすることである。 Therefore, the object of the present invention is to measure the time and ratio of task state for each task in application software running on the multitasking OS and the embedded system using the multitasking OS without taking the effort of the operator, The result is statistical and graphical display so that the system can be easily evaluated.
上記課題を解決するため、リアル・タイム・オペレーティング・システムに、プロセッサが実行するタスクを切替えるディスパッチを実現する機構であり、該ディスパッチの際に該タスクの状態変化を検出するディスパッチャを備え、前記ディスパッチャは、前記タスクの状態変化を検出すると、複数のタスク各々のタスク状態を所定記憶領域で管理するサブルーチンを呼び出して、該タスクの状態を変化後の状態に変更させるように構成する。 In order to solve the above-described problem, the real-time operating system is a mechanism for realizing dispatch for switching a task to be executed by a processor, and includes a dispatcher for detecting a state change of the task at the time of the dispatch. When a change in the state of the task is detected, a subroutine for managing the task state of each of the plurality of tasks in a predetermined storage area is called to change the state of the task to the changed state.
また、デバッグ装置に、ターゲットの所定記憶領域にメモリアクセス可能なデバッガと、オペレータによるトレース取得の操作に応じて前記デバッガにメモリアクセスを行わせることによって前記所定記憶領域に格納されている複数のタスクの状態変化に係るトレース情報を取得し、該トレース情報を用いてタスク毎の状態変化を統計的かつグラフィカルに表す表示画面を作成するアナライザとしてコンピュータに機能させるように構成する。 In addition, a debugger capable of memory access to a predetermined storage area of a target, and a plurality of tasks stored in the predetermined storage area by causing the debugger to perform memory access according to an operation of acquiring a trace by an operator Trace information related to the state change is acquired, and the computer is caused to function as an analyzer that creates a display screen that statistically and graphically represents the state change for each task using the trace information.
マルチタスクOSを用いた組込みシステムのタスクプログラムで、複数のタスク各々のタスク状態に係る情報を、オペレータの手間をかけずに取得及び表示させることが可能になる。 With a task program of an embedded system using a multitask OS, it is possible to acquire and display information related to the task status of each of a plurality of tasks without the operator's effort.
以下、本発明の実施の形態を図面に基づいて説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
マルチタスク・オペレーティング・システム(以下、マルチタスクOSという)において管理されるタスクの状態は、大きく、
・RUN状態(実行状態):プロセッサによって処理されている状態
・実行以外の状態:プロセッサによって処理されていない状態
とに分けられる。
The state of tasks managed in a multitasking operating system (hereinafter referred to as multitasking OS) is large.
RUN state (execution state): State processed by the processor State other than execution: State not processed by the processor
更に、この実行以外の状態として、
・READY状態(実行可能状態):いつでも実行することが可能な状態
・WAITING状態(待ち状態):一定時間停止している状態
・WAITING−SUSPEND状態(二重待ち状態):WAITING状態とSUSPEND状態の二つの待ち条件を満たしている状態
・SUSPEND状態(強制待ち状態):他のタスクによって強制的に待ちにされた状態
・DORMANT状態(休止状態):タスクとして実行開始できる状態
などがある。
Furthermore, as a state other than this execution,
-READY state (executable state): a state where it can be executed anytime-WAITING state (waiting state): a state where it has been stopped for a certain period of time-WAITING-SUPEND state (double waiting state): WAITING state and SUSPEND state State that satisfies two waiting conditions: SUSPEND state (forced wait state): state that is forcibly waited by another task DORMANT state (pause state): a state where execution can be started as a task.
本実施例では、動作中のマルチタスクOSにおける複数のタスクの各々の状態を所定の記憶領域(後述されるトレースメモリ)で管理し、タスクの状態が変化するタイミングでタスクの状態を取得して随時更新する。タスクの状態が変化するタイミングとして、ディスパッチャが呼ばれる時とカーネルの機能を呼び出すためのシステムコールが行われる時とに着目し、例えば、図1に示すような処理フローが実行される。図1は、タスクの状態の変化に応じた処理フローを示す図である。 In this embodiment, each state of a plurality of tasks in the operating multitasking OS is managed in a predetermined storage area (a trace memory described later), and the task state is acquired at the timing when the task state changes. Update from time to time. Focusing on when the task state changes, when the dispatcher is called and when the system call for calling the kernel function is performed, for example, the processing flow shown in FIG. 1 is executed. FIG. 1 is a diagram illustrating a processing flow according to a change in the state of a task.
図1において、タスクのディスパッチャが発生し、ディスパッチャが呼ばれると(a)、ディスパッチャ内でタスク状態に変化があるか否かをチェックする(b)。一方で、システムコールが呼ばれた場合(c)にも、システムコール内でタスク状態に変化があるか否かをチェックする(d)。 In FIG. 1, when a task dispatcher is generated and called (a), it is checked whether there is a change in the task state in the dispatcher (b). On the other hand, when a system call is called (c), it is checked whether there is a change in the task state in the system call (d).
タスク状態に変化を検出した場合、タスク状態の変更を通知するために備えられたサブルーチンにジャンプする(e)。そのタスク状態変更通知用のサブルーチン内で、タスク毎のタスク状態、システム時間などのデータをバッファリングする(f)。そして、バッファリングされたデータを、ターゲットのプロセッサをエミュレートするエミュレータを経由して取得し、デバッグ装置でデータの解析及び統計情報、それら結果に基づくグラフ表示などを行う(g)。エミュレータとして、例えばICE(登録商標)(InCircuit Emulator)等が用いられる。 When a change is detected in the task state, the process jumps to a subroutine provided for notifying the change of the task state (e). In the task status change notification subroutine, data such as task status and system time for each task is buffered (f). Then, the buffered data is acquired via an emulator that emulates the target processor, and the data is analyzed and statistical information is displayed on the debug device, and a graph is displayed based on the results (g). As the emulator, for example, ICE (registered trademark) (InCircuit Emulator) or the like is used.
このような処理を、マルチタスクOSを用いたアプリケーション・ソフトウェアや、マルチタスクOSを用いた組み込みシステムにおいて、タスク毎のタスク状態に係る情報表示をマルチタスクOSとデバッグ装置とを連携して行う。 Such processing is performed in cooperation with the multitasking OS and the debugging device in the application software using the multitasking OS or the embedded system using the multitasking OS in association with the task status for each task.
図2は、開発環境を実現する組み込みシステムの構成例を示すブロック図である。図2に示す組み込みシステム10は、プロセッサ1と、入力装置2と、モニタ3と、メモリ4と、デバッグ装置5とを有し、互いにバスで接続される。プロセッサ1は、メモリ4からプログラムコードを読み出して組み込みシステム10全体を制御する。入力装置2は、オペレータにタスク毎のタスク状態を取得するかどうかを選択させる。モニタ3は、デバッグ装置5で解析したデータから統計情報またはグラフを表示する。メモリ4は、マルチタスクOS、タスクプログラムなどが格納され、プロセッサ1に読み出されて実行される。デバッグ装置5は、マルチタスクOSでバッファリングしたトレース情報を解析し、タスク毎のタスク状態を取得する。
FIG. 2 is a block diagram illustrating a configuration example of an embedded system that realizes a development environment. An embedded
図3は、デバッグ装置の構成例を示すブロック図である。図3において、デバッグ装置5は、言語ツール21と、ロードモジュールファイル22と、統合開発環境(IDE:Integrated Development Environment)23と、アナライザ24と、RIM(RTOS Interface Module)25と、デバッガ26として機能する種々のプログラムを有し、これらプログラムがメモリ4に読み出され、プロセッサ1によって実行される。
FIG. 3 is a block diagram illustrating a configuration example of the debugging device. In FIG. 3, the
言語ツール21には、マルチタスクOSとして動作するRTOS(Real Time Operating System)7aと、ターゲット1aを検証するためのデバッグモジュール7bと、ターゲット1aに組み込まれたユーザアプリケーション7cとが与えられる。そして、データ処理プログラムとしてのロードモジュールファイル22が作成される。RTOS7aが用いられる理由は、本実施例における開発環境を実現する組み込みシステム10では、例えば、オペレータがボタンを押した時点でオペレーティング・システム(OS)が処理する必要があり、そのためRTOS7aが用いられる。
The
ロードモジュールファイル22は、開発処理を進めるための統合開発環境(IDE)23に与えられる。このIDE23の内部には、アナライザ24とデバッガ26とが備えられ、その中間にはRTOSインターフェース・モジュール(RIM)25が備えられ、アナライザ24とRIM25とはRTOSアクセス・インターフェース(RIF)8aによって接続され、またRIM25とデバッガ26とはターゲット・アクセス・インターフェース(TIF)8bによって接続されている。アナライザ24、RIM25、デバッガ226は、例えばDLL(Dynamic Link Library)ファイルで備えられる。デバッガ26は、デバッガ26に備えられたメモリアクセス部によってICE6を介してターゲット1aの内部のトレースメモリ7dにアクセスすることができる。
The
ターゲット1aは、例えば開発中のプロセッサであり、ターゲット1aに備えられたメモリ9内部にはRTOS7a、デバッグモジュール7b、ユーザアプリケーション7c、トレースメモリ7d等を格納するためのプログラム領域及びユーザメモリ領域を備えている。ターゲット1aは、所定のインターフェースによってICE6と接続され、ICE6は更に所定のインターフェースによって組み込みシステム1に接続されデバッガ26と通信する。
The target 1a is, for example, a processor under development, and includes a program area and a user memory area for storing an RTOS 7a, a
次に、オペレータによるトレース開始要求に応じて、デバッグ装置5がターゲット1aのトレースメモリ7dを初期化するためのシーケンスフローについて説明する。図4は、トレースメモリを初期化するためのシーケンスフローを示す図である。
Next, a sequence flow for the
図4において、アナライザ24によってモニタ3に表示される画面31からオペレータが入力装置2を用いてトレース開始ボタン32を選択することによってトレース開始要求が発生すると、アナライザ24は、ターゲット1aのユーザメモリ領域にあるタスク情報などを読み出すために、RIM25にメモリ参照要求を発行する(S1)。メモリ参照要求に応じて、RIM25は、メモリ9の内容を読み出す指示がデバッガ26に与えられ(S2)、デバッガ26からメモリアクセス部によってICE6を介してターゲット1aのメモリ9が制御され、タスク情報などのデータを読み出すためにメモリ9に対するデータリードアクセスが成される(S3)。
In FIG. 4, when a trace start request is generated by an operator selecting a
読み出されたメモリ9の内容、すなわちタスク情報などのデータは、ICE6によってメモリアクセス部を介してデバッガ26に通知され(S4)、デバッガ26からRIM25に通知される(S5)。そして、RIM25によってアナライザ24が必要とするタスク情報などのデータがアナライザ24に通知されて(S6)、ターゲット1aのメモリ9に格納されているタスク情報などのデータの取得が完了する。
The contents of the read
アナライザ24は、取得したタスク情報などのデータを初期化情報としてターゲット1aのトレースメモリ7dに書き込むために、RIM25にメモリ書き込み要求を行う(S7)。RIM25は、初期化情報をトレースメモリ7dに書き込む指示をデバッガ26に行い(S8)、デバッガ26からメモリアクセス部によってICE6を介してターゲット1aのトレースメモリ7dへのデータライトアクセスがなされて、トレースメモリ7dの初期化が終了する。トレースメモリ7dに書き込まれる初期化情報には、複数のタスク各々を識別するタスクIDとトレース開始時点のタスク状態とが対応させて示される。
The
トレースメモリ7dに初期化情報が設定されると、トレース中は、図1に示すディスパッチャ又はシステムコールが呼ばれる毎に変化したタスク状態がトレースメモリ7dに格納され、タスク情報が逐次更新される。トレースメモリ7dの内容は、トレース取得要求によって読み出され、画面31にグラフ表示34にデータ処理されて表示される。
When the initialization information is set in the
図5は、トレース開始後にトレースを取得するシーケンスフローを示す図である。図5において、アナライザ24によってモニタ3に表示される画面31からオペレータが入力装置2を用いてトレース取得ボタン33を選択することによってトレース取得要求が発生すると、アナライザ24は、ターゲット1aのユーザメモリ領域にあるトレースメモリ9の内容を読み出すために、RIM25にトレースログの取得が要求される(S11)。
FIG. 5 is a diagram showing a sequence flow for acquiring a trace after the trace is started. In FIG. 5, when a trace acquisition request is generated by the operator selecting the
そして、RIM25によってトレースメモリ7dの内容を読み出す指示がデバッガ26に与えられ(S12)、デバッガ26からメモリアクセス部によってICE6を介してターゲット1aのトレースメモリ7dの内容を読み出すためにメモリ9に対するデータリードアクセスが成される(S13)。
Then, an instruction to read the contents of the
読み出されたトレースメモリ7dの内容、すなわちトレース情報は、ICE6を介してメモリアクセス部によってデバッガ26に通知され(S14)、デバッガ26からRIM25に通知される(S15)。そして、RIM25によってアナライザ24が必要とするトレース情報がアナライザ24に通知されて(S16)、ターゲット1aのトレースメモリ7dに格納されているトレース情報の取得が完了する。
The content of the read
次に、ターゲット1aのRTOS7aによって提供される各種処理について説明する。図6は、ディスパッチャ処理のフローチャート図である。図6に示すディスパッチャ処理は、図1の(a)、(b)及び(e)に対応する。図6において、タスクのディスパッチャが発生し、ディスパッチャが呼び出され、ディスパッチ処理を行うディスパッチャに処理が移る(S21)。ディスパッチャ内でタスクの状態が変化するか否かをチェックし(S22)、タスクの状態が変化している場合は、タスク変更通知用のサブルーチンが呼び出される(S23)。一方、タスクの状態が変化しない場合はタスク変更通知用のサブルーチンを呼び出すことなく処理を終了する。ディスパッチャは、切り替える前のタスクのタスクID及びタスク状態と、切り替えた後のタスクのタスクID及びタスク状態とを、タスク変更通知用のサブルーチンを呼び出す際に通知する。 Next, various processes provided by the RTOS 7a of the target 1a will be described. FIG. 6 is a flowchart of the dispatcher process. The dispatcher process shown in FIG. 6 corresponds to (a), (b), and (e) of FIG. In FIG. 6, a task dispatcher is generated, the dispatcher is called, and the process moves to the dispatcher that performs the dispatch process (S21). It is checked whether or not the task state changes in the dispatcher (S22). If the task state has changed, a task change notification subroutine is called (S23). On the other hand, if the task state does not change, the process is terminated without calling a task change notification subroutine. The dispatcher notifies the task ID and task status of the task before switching and the task ID and task status of the task after switching when calling a subroutine for task change notification.
図7は、システムコール処理のフローチャート図である。図7に示すシステムコール処理は、図1の(c)、(d)及び(e)に対応する。図7において、システムコールが呼び出されると(S31)、システムコール内でタスクの状態が変化するか否かをチェックし(S32)、タスクの状態が変化している場合は、タスク変更通知用のサブルーチンが呼び出される(S33)。一方、タスクの状態が変化しない場合はタスク変更通知用のサブルーチンを呼び出すことなく処理を終了する。システムコールは、処理対象となったタスクのタスクID及びタスク状態を、タスク変更通知用のサブルーチンを呼び出す際に通知する。 FIG. 7 is a flowchart of the system call process. The system call process shown in FIG. 7 corresponds to (c), (d), and (e) in FIG. In FIG. 7, when a system call is called (S31), it is checked whether or not the state of the task changes in the system call (S32). A subroutine is called (S33). On the other hand, if the task state does not change, the process is terminated without calling a task change notification subroutine. The system call notifies the task ID and task state of the task to be processed when calling a task change notification subroutine.
図8は、タスク状態通知用のサブルーチンが行う処理のフローチャート図である。図8に示すサブルーチンによる処理は、図1の(e)、(f)及び(g)に対応する。図8において、ディスパッチが発生した場合又はシステムコールが呼び出された場合で、かつ、タスクの状態が変更された場合、タスク状態変更通知用のサブルーチンが呼び出され、サブルーチンに処理が移る(S40)。 FIG. 8 is a flowchart of processing performed by the task status notification subroutine. The processing by the subroutine shown in FIG. 8 corresponds to (e), (f), and (g) in FIG. In FIG. 8, when dispatch occurs or when a system call is called and when the task state is changed, a task state change notification subroutine is called, and the process proceeds to the subroutine (S40).
タスク状態変更通知用のサブルーチンは、トレースメモリ7dを参照して、呼び出された際に通知されたタスクIDに対応する変更前のタスク状態とシステム時刻とから、変更前のタスク状態の経過時間を計算し、そのタスク状態の累積時間としてトレースメモリ7dにバッファリングする(S41)。また、呼び出された際に通知されたタスク状態を変更後のタスク状態として現在のシステム時刻と共にそのタスクIDに対応させてトレースメモリ7dにバッファリングを行う(S42)。そして、サブルーチンでの処理を終了する。
The subroutine for task state change notification refers to the
上述したようなタスク状態通知用のサブルーチンをシステムコール及びディスパッチャから呼び出すように構成することで、タスクの状態変化を随時トレースメモリ7dに保存し管理することができる。このようなサブルーチンは、RTOS7aに備えるようにしてもよいし、例えば、システムコール及びディスパッチャから関数コール可能なライブラリに備えるようにしてもよい。また、上述したサブルーチンによって複数のタスクの状態変化が逐次管理されるため、アナライザ24からのトレース取得要求に応じて、トレース開始からの現在の複数のタスクの各々の状態を示すトレース情報を提供することが可能となる。
By configuring the subroutine for task status notification as described above to be called from the system call and dispatcher, it is possible to save and manage task status changes in the
図9は、トレースメモリに格納されるトレース情報の例を示す図である。図9において、トレースメモリ7d内に格納されるトレース情報は、タスクIDに対応させて、現在のタスク状態、タスク状態が変更された時のシステム時刻、RUN状態の累積時間、READY状態の累積時間、WAITING状態の累積時間、WAITING−SUSPEND状態の累積時間、SUSPEND状態の累積時間、DORMANT状態の累積時間などの項目で構成される。
FIG. 9 is a diagram illustrating an example of trace information stored in the trace memory. In FIG. 9, the trace information stored in the
例えば、トレース情報として、タスクID「IDLE」に対応させて、現在のタスク状態「READY」、タスク状態が変更された時のシステム時刻「20」、RUN状態の累積時間「10」、READY状態の累積時間「90」、WAITING状態の累積時間「0」、WAITING−SUSPEND状態の累積時間「0」、SUSPEND状態の累積時間「0」、DORMANT状態の累積時間「0」のように項目値が格納される。 For example, as trace information, the current task state “READY”, the system time “20” when the task state is changed, the accumulated time “10” of the RUN state, and the READY state are associated with the task ID “IDLE”. Item values are stored such as accumulated time “90”, accumulated time “0” in the WAITING state, accumulated time “0” in the WAITING-SUSPEND state, accumulated time “0” in the SUSPEND state, and accumulated time “0” in the DORMANT state. Is done.
また、このトレース情報では、タスクがタスクID「TASK−1」、「TASK−2」、「TASK−3」のように存在する場合を示している。従って、タスクID「TASK−1」に対応させて、現在のタスク状態「RUN」、タスク状態が変更された時のシステム時刻「80」、RUN状態の累積時間「50」、READY状態の累積時間「20」、WAITING状態の累積時間「10」、WAITING−SUSPEND状態の累積時間「0」、SUSPEND状態の累積時間「0」、DORMANT状態の累積時間「20」のように項目値が格納される。 The trace information shows a case where tasks exist as task IDs “TASK-1”, “TASK-2”, and “TASK-3”. Accordingly, in association with the task ID “TASK-1”, the current task state “RUN”, the system time “80” when the task state is changed, the accumulated time “50” of the RUN state, and the accumulated time of the READY state Item values are stored such as “20”, WAITING state cumulative time “10”, WAITING-SUSPEND state cumulative time “0”, SUSPEND state cumulative time “0”, and DORMANT state cumulative time “20”. .
また、タスクID「TASK−2」に対応させて、現在のタスク状態「READY」、タスク状態が変更された時のシステム時刻「50」、RUN状態の累積時間「0」、READY状態の累積時間「50」、WAITING状態の累積時間「40」、WAITING−SUSPEND状態の累積時間「0」、SUSPEND状態の累積時間「0」、DORMANT状態の累積時間「10」のように項目値が格納される。 Further, in association with the task ID “TASK-2”, the current task state “READY”, the system time “50” when the task state is changed, the RUN state accumulated time “0”, and the READY state accumulated time. Item values are stored such as “50”, WAITING state cumulative time “40”, WAITING-SUSPEND state cumulative time “0”, SUSPEND state cumulative time “0”, and DORMANT state cumulative time “10”. .
更に、タスクID「TASK−3」に対応させて、現在のタスク状態「READY」、タスク状態が変更された時のシステム時刻「50」、RUN状態の累積時間「10」、READY状態の累積時間「10」、WAITING状態の累積時間「10」、WAITING−SUSPEND状態の累積時間「10」、SUSPEND状態の累積時間「10」、DORMANT状態の累積時間「50」のように項目値が格納される。 Further, in correspondence with the task ID “TASK-3”, the current task state “READY”, the system time “50” when the task state is changed, the accumulated time “10” of the RUN state, and the accumulated time of the READY state Item values are stored such as “10”, WAITING state cumulative time “10”, WAITING-SUSPEND state cumulative time “10”, SUSPEND state cumulative time “10”, and DORMANT state cumulative time “50”. .
図10は、アナライザによって表示されるトレース情報のグラフ表示例を示す図である。図10において、アナライザ24は、図5に示すシーケンスによって図9に示すようなトレース情報をターゲット1aのトレースメモリ7dから取得すると、そのトレース情報で示されるタスク毎のトレース開始からトレース取得までの各タスク状態の累積時間に基づいて、タスク状態の割合を算出して、グラフ表示34のような表示画面を作成してモニタ3に表示する。
FIG. 10 is a diagram illustrating a graph display example of the trace information displayed by the analyzer. In FIG. 10, when the
グラフ表示34では、複数のタスクのトレース情報が示され、各タスクのタスクIDに対応させて、グラフで示した算出したタスク状態の割合と、各タスク状態の累積時間とが示される。タスク状態には、図9に示すトレースメモリ7d内のトレース情報のタスク状態の累積時間の項目に応じた、RUN状態、READY状態、WAITING状態、WAITING−SUSPEND状態、SUSPEND状態、そしてDORMANT状態があり、各々の累積時間が示される。
In the
ターゲット1aを検証するオペレータは、タスク毎に操作することなく、簡単な操作で複数のタスクの状態に係るトレース情報の取得を任意に行うことができる。また、複数のタスクの状態を示すグラフ表示34によって、開発中のユーザアプリケーション7bの全体的な動作状況を検証することができる。例えば、タスク「TASK−2」のREADY状態が、他のタスク「TASK−1」の20%及び「TASK−3」の10%と比べて50%と高い割合を示すことから、何らかの要因でタスク「TASK−2」の実行が延期されている可能性があるため、プログラムを最適化することにより性能の向上を見込むことができる。
The operator who verifies the target 1a can arbitrarily acquire trace information related to the states of a plurality of tasks with a simple operation without operating each task. Further, the overall operation status of the
以上の説明に関し、更に以下の項を開示する。
(付記1)
プロセッサが実行するタスクを切替えるディスパッチを実現する機構であり、該ディスパッチの際に該タスクの状態変化を検出するディスパッチャを有し、
前記ディスパッチャは、前記タスクの状態変化を検出すると、複数のタスク各々のタスク状態を所定記憶領域で管理するサブルーチンを呼び出して、該タスクの状態を変化後の状態に変更させるリアル・タイム・オペレーティング・システム。
(付記2)
前記ディスパッチャ内で呼び出された前記サブルーチンによって、変化した前記タスクの状態と該タスクの状態が変化した時の時間とが該タスクのタスクIDに対応させて前記所定記憶領域にバッファリングする機能が実行されることにより、前記記憶領域には前記複数のタスクがタスク単位でその状態が管理される付記1記載のリアル・タイム・オペレーティング・システム。
(付記3)
カーネルの機能を呼び出すために使用される機構であり、呼び出された際に前記プロセッサが実行するタスクの状態変化を検出するシステムコールを有し、
前記システムコールは、前記タスクの状態変化を検出すると、前記サブルーチンを呼び出して、該タスクの状態を変化後の状態に変更させる付記1記載のリアル・タイム・オペレーティング・システム。
(付記4)
前記システムコール内で呼び出された前記サブルーチンによって、変化した前記タスクの状態と該タスクの状態が変化した時の時間とが該タスクのタスクIDに対応させて前記所定記憶領域にバッファリングする機能が実行されることにより、前記記憶領域には前記複数のタスクがタスク単位でその状態が管理される付記3記載のリアル・タイム・オペレーティング・システム。
(付記5)
前記サブルーチンによって、前記所定記憶領域から前記タスクIDに対応させて記憶されている前記タスクの状態が変化した時の前回の時間を取得して該状態の累積時間を算出し、該算出した値で前記所定記憶領域内の前記タスクIDに対応する該状態の累積時間を更新する付記2又は4記載のリアル・タイム・オペレーティング・システム。
(付記6)
前記サブルーチンによって、前記所定記憶領域にタスク毎に複数の状態の累積時間が管理され、該複数の状態には、実行可能状態、待ち状態、二重待ち状態、停止状態、及び休止状態が含まれる付記1乃至6のいずれか一項記載のリアル・タイム・オペレーティング・システム。
(付記7)
ターゲットの所定記憶領域にメモリアクセス可能なデバッガと、
オペレータによるトレース取得の操作に応じて前記デバッガにメモリアクセスを行わせることによって前記所定記憶領域に格納されている複数のタスクの状態変化に係るトレース情報を取得し、該トレース情報を用いてタスク毎の状態変化を統計的かつグラフィカルに表す表示画面を作成するアナライザとしてコンピュータに機能させるデバッグ装置。
(付記8)
前記アナライザは、タスク毎に、複数の状態各々の累積時間を統計情報として示し、全体の累積時間に対する各状態の累積時間の割合をグラフ表示させた前記表示画面を作成する付記7記載のデバッグ装置。
(付記9)
前記アナライザは、前記オペレータによるトレース開始の操作に応じて前記デバッガに前記ターゲットのユーザメモリ領域に格納されているタスク情報を読み出させ、該タスク情報を用いて該デバッガに前記所定記憶領域を初期設定させる付記8記載のデバッグ装置。
(付記10)
前記タスク情報には、前記複数のタスク各々を識別するタスクIDとタスクの現在の状態とが含まれる付記9記載のデバッグ装置。
(付記11)
前記複数の状態には、実行可能状態、待ち状態、二重待ち状態、停止状態、及び休止状態が含まれる付記8乃至10のいずれか一項記載のデバッグ装置。
Regarding the above description, the following items are further disclosed.
(Appendix 1)
A mechanism that implements a dispatch for switching a task to be executed by a processor, and has a dispatcher that detects a state change of the task at the time of the dispatch
When the dispatcher detects a change in the state of the task, the dispatcher calls a subroutine for managing the task state of each of the plurality of tasks in a predetermined storage area, and changes the state of the task to the changed state. system.
(Appendix 2)
The subroutine called in the dispatcher performs a function to buffer the changed task state and the time when the task state is changed in correspondence with the task ID of the task in the predetermined storage area. The real time operating system according to
(Appendix 3)
A mechanism used to call a kernel function, and has a system call that detects a change in the state of a task executed by the processor when called.
The real-time operating system according to
(Appendix 4)
A function for buffering the task state changed by the subroutine called in the system call and the time when the task state changed in the predetermined storage area in correspondence with the task ID of the task; 4. The real time operating system according to
(Appendix 5)
The subroutine obtains the previous time when the state of the task stored in association with the task ID is changed from the predetermined storage area, calculates the accumulated time of the state, and uses the calculated value. The real time operating system according to
(Appendix 6)
The subroutine manages the accumulated time of a plurality of states for each task in the predetermined storage area, and the plurality of states include an executable state, a waiting state, a double waiting state, a stopped state, and a dormant state. The real time operating system according to any one of
(Appendix 7)
A debugger capable of memory access to a predetermined storage area of the target;
Trace information relating to a state change of a plurality of tasks stored in the predetermined storage area is acquired by causing the debugger to perform memory access in accordance with an operation of acquiring a trace by an operator, and each task is acquired using the trace information. A debugging device that allows a computer to function as an analyzer that creates a display screen that statistically and graphically represents changes in the state of a computer.
(Appendix 8)
8. The debugging device according to
(Appendix 9)
The analyzer causes the debugger to read task information stored in the target user memory area in response to an operation of starting trace by the operator, and uses the task information to initialize the predetermined storage area to the debugger. The debugging device according to appendix 8, which is set.
(Appendix 10)
The debugging device according to
(Appendix 11)
The debugging device according to any one of appendices 8 to 10, wherein the plurality of states include an executable state, a wait state, a double wait state, a stop state, and a dormant state.
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.
1 プロセッサ
1a ターゲット
2 入力装置
3 モニタ
4 メモリ
5 デバッグ装置
6 ICE
7a RTOS
7b デバッグモジュール
7c ユーザアプリケーション
9 メモリ
10 組込みシステム
21 言語ツール
22 ロードモジュール
23 IDE
24 アナライザ
25 RIM
26 デバッガ
1
7a RTOS
24
26 Debugger
Claims (10)
前記ディスパッチャは、前記タスクの状態変化を検出すると、複数のタスク各々のタスク状態を所定記憶領域で管理するサブルーチンを呼び出して、該タスクの状態を変化後の状態に変更させるリアル・タイム・オペレーティング・システム。 A mechanism that implements a dispatch for switching a task to be executed by a processor, and has a dispatcher that detects a state change of the task at the time of the dispatch
When the dispatcher detects a change in the state of the task, the dispatcher calls a subroutine for managing the task state of each of the plurality of tasks in a predetermined storage area, and changes the state of the task to the changed state. system.
前記システムコールは、前記タスクの状態変化を検出すると、前記サブルーチンを呼び出して、該タスクの状態を変化後の状態に変更させる請求項1記載のリアル・タイム・オペレーティング・システム。 A mechanism used to call a kernel function, and has a system call that detects a change in the state of a task executed by the processor when called.
2. The real time operating system according to claim 1, wherein when the system call detects a change in the state of the task, the system call calls the subroutine to change the state of the task to a state after the change.
オペレータによるトレース取得の操作に応じて前記デバッガにメモリアクセスを行わせることによって前記所定記憶領域に格納されている複数のタスクの状態変化に係るトレース情報を取得し、該トレース情報を用いてタスク毎の状態変化を統計的に表す表示画面を作成するアナライザとしてコンピュータに機能させるデバッグ装置。 A debugger capable of memory access to a predetermined storage area of the target;
Trace information relating to a state change of a plurality of tasks stored in the predetermined storage area is acquired by causing the debugger to perform memory access in accordance with an operation of acquiring a trace by an operator, and each task is acquired using the trace information. A debugging device that causes a computer to function as an analyzer that creates a display screen that statistically represents changes in the state of a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008200821A JP2010039695A (en) | 2008-08-04 | 2008-08-04 | Multitask operating system and debugging device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008200821A JP2010039695A (en) | 2008-08-04 | 2008-08-04 | Multitask operating system and debugging device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010039695A true JP2010039695A (en) | 2010-02-18 |
Family
ID=42026100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008200821A Pending JP2010039695A (en) | 2008-08-04 | 2008-08-04 | Multitask operating system and debugging device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010039695A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013120524A (en) * | 2011-12-08 | 2013-06-17 | Renesas Electronics Corp | Multiprocessor device and control method of multiprocessor device |
CN103744772A (en) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | Method and system for detecting task running performance |
JP2015534688A (en) * | 2012-09-29 | 2015-12-03 | 中▲興▼通▲訊▼股▲フン▼有限公司 | Application development, compilation, and debugging method and apparatus |
-
2008
- 2008-08-04 JP JP2008200821A patent/JP2010039695A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013120524A (en) * | 2011-12-08 | 2013-06-17 | Renesas Electronics Corp | Multiprocessor device and control method of multiprocessor device |
JP2015534688A (en) * | 2012-09-29 | 2015-12-03 | 中▲興▼通▲訊▼股▲フン▼有限公司 | Application development, compilation, and debugging method and apparatus |
CN103744772A (en) * | 2014-01-28 | 2014-04-23 | 北京经纬恒润科技有限公司 | Method and system for detecting task running performance |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7383538B2 (en) | Storing and restoring snapshots of a computer process | |
US7992042B2 (en) | Debug support device, and program for directing computer to perform debugging method | |
US9244815B2 (en) | Integrated debugger and code coverage tool | |
US8136097B2 (en) | Thread debugging device, thread debugging method and information storage medium | |
US20140372986A1 (en) | Timed API Rules for Runtime Verification | |
US8255203B2 (en) | Method of debugging an executable computer program having instructions for different computer architectures | |
US8756583B2 (en) | Thread-specific event management in a non-stop debugging environment | |
CN111176869B (en) | Timeout detection method, device, equipment and storage medium | |
JP2006277115A (en) | Abnormality detection program and abnormality detection method | |
US8701094B2 (en) | Event management in a non-stop debugging environment | |
US9361205B2 (en) | Code coverage framework | |
JP2010039695A (en) | Multitask operating system and debugging device | |
KR101027005B1 (en) | Visual debugging apparatus and method thereof | |
JP5542643B2 (en) | Simulation apparatus and simulation program | |
CN115454686A (en) | Information processing method and device and storage medium | |
JP2013206061A (en) | Information processing device and method, and program | |
Kaur et al. | Testing of Linux Performance Monitoring Tools on ARM Based Raspberry Pi | |
JP2912269B2 (en) | Debug system and method | |
Walcott-Justice | Exploiting Hardware Monitoring in Software Engineering | |
JP2004102324A (en) | Interrupt program module, recording medium storing the module and computer capable of interrupt processing | |
Hölscher | Nested Preemption Fixed-Priority Scheduler for EV3OSEK | |
JP3075359B2 (en) | Program debugging start processing method | |
JP2003263340A (en) | Debug device | |
JP5125786B2 (en) | Information processing system, stack overflow occurrence detection method and program | |
JP2002055845A (en) | Method and device of parallel processing type for general-purpose debug for multitask system and storage medium with multitask system parallel processing type general debugging program stored therein |