JP2010244376A - Software development device, and debugging method using the same - Google Patents

Software development device, and debugging method using the same Download PDF

Info

Publication number
JP2010244376A
JP2010244376A JP2009093564A JP2009093564A JP2010244376A JP 2010244376 A JP2010244376 A JP 2010244376A JP 2009093564 A JP2009093564 A JP 2009093564A JP 2009093564 A JP2009093564 A JP 2009093564A JP 2010244376 A JP2010244376 A JP 2010244376A
Authority
JP
Japan
Prior art keywords
task
control program
cpu
microcomputer
simulated
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.)
Withdrawn
Application number
JP2009093564A
Other languages
Japanese (ja)
Inventor
Takano Masaoka
敬野 正岡
Takashi Higuchi
崇 樋口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Ten Ltd
Original Assignee
Denso Ten Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Ten Ltd filed Critical Denso Ten Ltd
Priority to JP2009093564A priority Critical patent/JP2010244376A/en
Publication of JP2010244376A publication Critical patent/JP2010244376A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a software development device for properly evaluating the execution timing and execution environment of an arbitrary task or function without performing any processing to add a program for debugging to a source program. <P>SOLUTION: The software development device includes: a memory for storing a control program; a simulation CPU for executing a control program stored in the memory; a simulation microcomputer with a simulation peripheral circuit for simulating a peripheral circuit; and a host computer for managing this, and configured to, when a prescribed task included in the control program or the leading address of a prescribed function included in the task is matched with the value of the program counter of the simulation CPU, to generate interruption, and to monitor the execution state of the control program by the simulation CPU, and to display the results with a graphic. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、機器を制御するマイクロコンピュータに組み込まれるソフトウェアを開発し評価するためのソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法に関する。   The present invention relates to a software development apparatus for developing and evaluating software incorporated in a microcomputer for controlling a device, and a debugging method using the software development apparatus.

電子機器を制御するマイクロコンピュータを備えた電子制御装置、例えば車両のエンジンを制御する電子制御ユニット(ECU)のような電子制御装置では、エンジン等の制御対象機器の高性能化、高機能化といった技術トレンドに沿って、使用されるマイクロコンピュータの性能も年々進化しており、現状の電子制御装置に使用されているマイクロコンピュータの性能よりも進化したマイクロコンピュータを想定して新しいソフトウェア、つまり制御ロジックが開発されている。   In an electronic control device including a microcomputer that controls an electronic device, for example, an electronic control device such as an electronic control unit (ECU) that controls an engine of a vehicle, the performance of the control target device such as the engine is improved and the functionality is increased. In line with technological trends, the performance of microcomputers used is also evolving year by year, and new software, that is, control logic, is assumed for microcomputers that have evolved beyond the performance of microcomputers used in current electronic control devices. Has been developed.

通常、性能が進化した次世代のマイクロコンピュータは開発時点で存在せず、現在のマイクロコンピュータよりも性能を向上させた次期マイクロコンピュータが組み込まれた電子制御装置が実在しない場合、現状のマイクロコンピュータをベースにして制御ロジックの先行開発を行なわざるを得ない。   Usually, there is no next-generation microcomputer with improved performance at the time of development, and if there is no electronic control unit that incorporates the next microcomputer with improved performance over the current microcomputer, the current microcomputer The development of control logic must be done based on this.

しかし、現状のマイクロコンピュータが組み込まれた電子制御装置を用いて制御ロジックの先行開発を行う場合には、現状のマイクロコンピュータに搭載されているCPUの処理能力の不足、メモリ容量の不足、周辺リソースの不足等の問題があるため、次期マイクロコンピュータ及びそのアプリケーションプログラムの開発が遅れ、新製品の開発に支障を来たしていた。   However, when prior development of control logic is performed using an electronic control device incorporating a current microcomputer, the CPU mounted on the current microcomputer lacks processing capacity, memory capacity, peripheral resources As a result, the development of the next microcomputer and its application program was delayed, which hindered the development of new products.

尚、現状の電子機器に組み込まれているマイクロコンピュータは、電子機器のコストを低く抑えるために、現状のシステムに最適な仕様でCPU性能及び周辺機能が選択され、CPUやCPUの周辺リソースが1つのパッケージの中に組み込まれているため、それぞれの機能変更はマイクロコンピュータを変更しない限り不可能である。   In the microcomputer incorporated in the current electronic device, in order to keep the cost of the electronic device low, the CPU performance and peripheral functions are selected with specifications that are optimal for the current system, and the CPU and CPU peripheral resources are one. Since it is incorporated into one package, it is impossible to change the functions of each package without changing the microcomputer.

そこで、特許文献1には、アプリケーション処理機能と通信機能を備えた中央ブロックと、マイクロコンピュータの周辺装置を擬似的にソフトウェアで実現して入出力処理を行う疑似マイクロコンピュータ周辺装置、演算機能、及び通信機能を有し、中央ブロックとPCIバスで接続される周辺ブロックと、電子制御ユニットのハードウェアに相当する回路を有し、周辺ブロックに接続するインタフェース回路ブロックとを備えたソフトウェア開発装置が提案されている。   Therefore, Patent Document 1 discloses a central block having an application processing function and a communication function, a pseudo microcomputer peripheral device that performs pseudo I / O processing by realizing a microcomputer peripheral device in a pseudo manner, an arithmetic function, and Proposed software development device with communication function, peripheral block connected to central block by PCI bus, and interface circuit block that has circuit equivalent to hardware of electronic control unit and connected to peripheral block Has been.

当該ソフトウェア開発装置は、中央ブロックの通信機能と、疑似マイクロコンピュータ周辺装置との間にある演算機能に、バスコントローラが設けられ、PCIバスで中央ブロックの通信機能とこのバスコントローラとの間が接続され、バスコントローラと疑似マイクロコンピュータ周辺装置との間は内部バスで接続され、PCIバス、バスコントローラ、及び内部バスを介して、通信機能と疑似マイクロコンピュータ周辺装置との間で、直接データの送受信が行われるように構成されている。   In this software development device, a bus controller is provided for the computation function between the communication function of the central block and the peripheral device of the pseudo microcomputer, and the communication function of the central block is connected to this bus controller via a PCI bus. The bus controller and the pseudo microcomputer peripheral device are connected by an internal bus, and data is directly transmitted and received between the communication function and the pseudo microcomputer peripheral device via the PCI bus, the bus controller, and the internal bus. Is configured to be performed.

また、特許文献2には、第1の中央処理装置及びRAMを含み、マイクロコンピュータコアに相当する機能を具備する第1のブロックと、第2の中央処理部を含みマイクロコンピュータリソースに相当する機能を有する第2のブロックと、前記第1及び第2のブロックを接続するバスとを有する、マイクロコンピュータのロジック開発装置において、共有メモリを具備し、前記第1のブロックとRAM計測装置とに接続されるRAM計測ブロックを設け、前記RAM計測装置による前記第1ブロックのRAMをモニタする処理を、前記RAMの内容を前記共有メモリに書き込む処理と、前記RAM計測装置に前記共有メモリの内容を送信する処理とに分けると共に、それぞれの処理タイミングを分離するマイクロコンピュータのロジック開発装置が提案されている。   Further, Patent Document 2 includes a first block including a first central processing unit and a RAM and having a function corresponding to a microcomputer core, and a function corresponding to a microcomputer resource including a second central processing unit. A microcomputer logic development device having a second block having a bus and a bus connecting the first and second blocks, and having a shared memory and connected to the first block and the RAM measurement device The RAM measurement block is provided, the process of monitoring the RAM of the first block by the RAM measurement apparatus, the process of writing the contents of the RAM into the shared memory, and the contents of the shared memory are transmitted to the RAM measurement apparatus Microcomputer logic development that separates each processing timing Location has been proposed.

特許文献2に記載された技術によれば、マイクロコンピュータのロジック開発装置に、既存のRAM計測装置を接続し、高速サンプリングのRAMモニタを実現することができるようになる。   According to the technique described in Patent Document 2, an existing RAM measuring device can be connected to a logic development device of a microcomputer to realize a high-speed sampling RAM monitor.

特開2004−234530号公報JP 2004-234530 A 特開2005−25601号公報JP 2005-25601 A

先行開発されたソフトウェアの評価に際して、以下の手順で上述したソフトウェア開発装置が活用される場合がある。   When evaluating previously developed software, the software development apparatus described above may be used in the following procedure.

先ず、評価対象となるソフトウェアに含まれる所定の関数が、ソフトウェア開発装置で実行されているか否か等を判別するために、当該所定の関数の実行前後にフラグがセットされる変数操作プログラムを、例えばC言語で生成されたソースプログラムに追加した後に、コンパイルして実行プログラムを生成する。   First, in order to determine whether or not a predetermined function included in the software to be evaluated is executed by the software development apparatus, a variable operation program in which a flag is set before and after the execution of the predetermined function, For example, after being added to a source program generated in C language, an execution program is generated by compiling.

次に、当該実行プログラムをソフトウェア開発装置に移植して実行し、RAM上のフラグ領域をモニタして当該所定の関数が実行されたことを確認する。   Next, the execution program is ported to the software development apparatus and executed, and the flag area on the RAM is monitored to confirm that the predetermined function has been executed.

或いは、所定の関数の実行の開始時または終了時に表示装置にその旨を表示するデバッグ文を、ソースプログラムに追加した後に、コンパイルして実行プログラムを生成する。   Alternatively, a debug statement that displays the fact on the display device at the start or end of execution of a predetermined function is added to the source program, and then compiled to generate an execution program.

前者の場合、モニタされたRAMのフラグの変化により当該所定の関数が実行されたことが確認でき、後者の場合、表示装置に表示されたデバッグ文に基づいて当該所定の関数が実行されたことが確認できる。   In the former case, it can be confirmed that the predetermined function has been executed by a change in the flag of the monitored RAM. In the latter case, the predetermined function has been executed based on the debug statement displayed on the display device. Can be confirmed.

しかし、ソースプログラムに含まれる全ての関数に対応して個別に変数操作プログラムやデバッグ文を追加すると、演算負荷が増大して処理時間が長くなり、予め想定されている実行時間内で各関数が実行できなくなる。   However, if variable operation programs and debug statements are added individually corresponding to all functions included in the source program, the computation load increases and the processing time becomes longer, so that each function is within the expected execution time. It becomes impossible to execute.

そこで、ソースプログラムに追加する変数操作プログラムやデバッグ文を制限すると、評価対象となる関数に対応して、個別にソースプログラムに変数操作プログラムやデバッグ文を追加する編集処理が必要になり、その都度コンパイルして実行プログラムを生成し、ソフトウェア開発装置に移植するという非常に煩雑な処理が必要となる。   Therefore, if the variable manipulation program or debug statement to be added to the source program is restricted, editing processing for adding the variable manipulation program or debug statement to the source program individually is required corresponding to the function to be evaluated. A very complicated process of compiling and generating an execution program and porting it to a software development device is required.

また、変数操作プログラムによって、関数が実行されたか否かという結果を判別することはできるが、関数が割り付けられているタスクがどのような状況で実行されたのかが判断できないという問題があった。   Further, although the result of whether or not the function is executed can be determined by the variable operation program, there is a problem that it is impossible to determine in what situation the task to which the function is assigned is executed.

例えば、タスクが割込み処理で起動されるように設定されている場合、優先順位付けされた複数の割込み処理のどのフェーズで実行されているのか、その時の処理時間が適正であるのか等の評価が行えないのである。   For example, when a task is set to be activated by interrupt processing, it is possible to evaluate in which phase of multiple prioritized interrupt processing is executed and whether the processing time at that time is appropriate. It cannot be done.

また、デバッグ文をソースプログラムに挿入する場合、表示装置に表示されたデバッグ文に基づいて当該所定の関数が実行されたことが確認できるだけであり、その処理によりRAM上の変数が変化したことをRAMモニタで認識しても、デバッグ文の表示タイミングと変数の変化を同期して計測することができないという問題があった。   In addition, when a debug statement is inserted into the source program, it is only possible to confirm that the predetermined function has been executed based on the debug statement displayed on the display device, and that the variable on the RAM has changed due to the processing. Even if the RAM monitor recognizes, there is a problem that the display timing of the debug sentence and the change of the variable cannot be measured in synchronization.

本発明は、上述の問題点に鑑み、ソースプログラムにデバッグ用のプログラムを追加するという煩雑な処理を行うことなく、任意のタスクや関数の実行タイミング及び実行環境を適正に評価できるソフトウェア開発装置、及び、ソフトウェア開発装置を用いたデバッグ方法を提供する点にある。   In view of the above-described problems, the present invention provides a software development apparatus that can appropriately evaluate the execution timing and execution environment of an arbitrary task or function without performing a complicated process of adding a debugging program to the source program, And it is in the point which provides the debugging method using a software development apparatus.

上述の目的を達成するため、本発明によるソフトウェア開発装置の特徴構成は、制御プログラムを実行するCPUとその周辺回路が内部に組み込まれたマイクロコンピュータを模擬し、前記制御プログラムを格納するメモリと、前記メモリに格納された制御プログラムを実行する模擬CPUと、前記周辺回路を模擬する模擬周辺回路を備えた模擬マイクロコンピュータと、前記模擬マイクロコンピュータを管理するホストコンピュータと、がネットワーク接続されているソフトウェア開発装置であって、前記制御プログラムに含まれる所定のタスク、または当該タスクに含まれる所定の関数の先頭アドレスを、前記ホストコンピュータを介して前記模擬マイクロコンピュータに設定するアドレス設定部と、前記アドレス設定部で設定されたアドレスと、前記模擬CPUのプログラムカウンタの値が一致したときに起動され、前記模擬CPUによる制御プログラムの実行状態をモニタするモニタ処理部と、前記モニタ処理部によりモニタされたデータをホストコンピュータに送信するモニタデータ送信部と、を備えている点にある。   In order to achieve the above object, the characteristic configuration of the software development apparatus according to the present invention includes a CPU that executes a control program and a microcomputer in which peripheral circuits are incorporated, and a memory that stores the control program; Software in which a simulation CPU that executes a control program stored in the memory, a simulation microcomputer that includes a simulation peripheral circuit that simulates the peripheral circuit, and a host computer that manages the simulation microcomputer are connected to a network An address setting unit for setting a predetermined task included in the control program or a start address of a predetermined function included in the task to the simulated microcomputer via the host computer; The setting in the setting section And a monitor processing unit that monitors the execution state of the control program executed by the simulated CPU, and transmits data monitored by the monitor processing unit to a host computer. And a monitor data transmission unit.

上述の構成によれば、アドレス設定部で設定されたアドレスと、模擬CPUのプログラムカウンタの値が一致すると、モニタ処理部によって模擬CPUの実行状態がモニタされ、モニタデータ送信部によってモニタデータがホストコンピュータに送信される。   According to the above configuration, when the address set by the address setting unit and the value of the program counter of the simulated CPU match, the monitor processing unit monitors the execution state of the simulated CPU, and the monitor data transmitting unit monitors the monitor data. Sent to the computer.

従って、ソースプログラムに変数操作プログラム等を追加するような煩雑な処理を行うことなく、動作を検証したいタスクや関数の先頭アドレスをアドレス設定部を介して設定するだけで、模擬CPUの実行状態がモニタされ、タスクや関数の実行タイミング等が適正に評価できるようになる。   Therefore, the execution state of the simulated CPU can be changed by simply setting the start address of the task or function whose operation is to be verified through the address setting unit without performing complicated processing such as adding a variable operation program to the source program. Monitored so that task and function execution timing can be properly evaluated.

以上説明した通り、本発明によれば、ソースプログラムにデバッグ用のプログラムを追加するという煩雑な処理を行うことなく、任意のタスクや関数の実行タイミング及び実行環境を適正に評価できるソフトウェア開発装置等を提供することができるようになった。   As described above, according to the present invention, a software development apparatus or the like that can appropriately evaluate the execution timing and execution environment of an arbitrary task or function without performing a complicated process of adding a debugging program to the source program Can now be provided.

本発明によるソフトウェア開発装置を構成する模擬マイクロコンピュータと、実マイクロコンピュータの構成を対比したブロック構成図Block configuration diagram comparing the configuration of a simulated microcomputer and a real microcomputer constituting a software development apparatus according to the present invention 本発明によるソフトウェア開発装置で実行されるプログラムに基づいた模擬マイクロコンピュータ、ホストコンピュータの機能ブロック構成図Functional block diagram of a simulated microcomputer and a host computer based on a program executed by a software development apparatus according to the present invention マザーボードのCPUで実行される制御プログラムに含まれるタスクの遷移状態の説明図Explanatory drawing of the transition state of tasks included in the control program executed by the CPU of the motherboard 制御プログラムのデバッグ手順の要部を説明するフローチャートFlowchart explaining the main part of the debugging procedure of the control program 制御プログラムの実行中にリアルタイムで表示されるデバッグ画面の説明図Illustration of the debug screen displayed in real time while the control program is running 制御プログラムの停止後に表示されるデバッグ画面の説明図Explanatory drawing of the debug screen displayed after the control program is stopped

以下に、本発明によるソフトウェア開発装置の実施形態を説明する。   Hereinafter, embodiments of the software development apparatus according to the present invention will be described.

ソフトウェア開発装置は、被制御部を制御するマイクロコンピュータが搭載された電子制御ユニット(以下、「ECU」と記す。)を模擬する装置で、例えば、車両に搭載されるエンジンを制御するECUに替えて、エンジンまたはエンジンを模擬するシミュレータに接続される。   A software development device is a device that simulates an electronic control unit (hereinafter referred to as “ECU”) on which a microcomputer that controls a controlled part is mounted. For example, the software development device is replaced with an ECU that controls an engine mounted on a vehicle. Connected to the engine or a simulator simulating the engine.

図1に示すように、ECU100は、マイクロコンピュータ101と、マイクロコンピュータ101の入出力ポートと接続される入出力回路106と、入出力回路106とエンジンに配置されたセンサやアクチュエータとを接続するハーネスのコネクタ107等を備えて構成され、それらがプリント基板に実装されている。   As shown in FIG. 1, the ECU 100 includes a microcomputer 101, an input / output circuit 106 connected to the input / output port of the microcomputer 101, and a harness that connects the input / output circuit 106 and sensors and actuators arranged in the engine. The connector 107 is provided, and these are mounted on a printed circuit board.

図1の左側に示されているように、マイクロコンピュータ101は、CPU102と、CPU102で実行されるエンジン制御プログラムが記憶されたROMやCPU102のワーキングエリアとして使用されるRAMを備えたメモリ103と、CPU102と内部バスで接続された周辺リソース105が一つにパッケージに収容されている。   As shown on the left side of FIG. 1, the microcomputer 101 includes a CPU 102, a memory 103 having a ROM storing an engine control program executed by the CPU 102 and a RAM used as a working area of the CPU 102, A peripheral resource 105 connected to the CPU 102 via an internal bus is housed in one package.

周辺リソースには、入力系のリソースと出力系のリソースが含まれる。入力系のリソースには、デジタル信号を扱う入力ポート、ラッチポート、アナログ入力を扱うA/D変換ポート、パルス入力を扱うインプットキャプチャポート等が含まれる。出力系のリソースには、デジタル信号を出力する出力ポート、パルス信号を出力するPWMポート、コンペアポート等が含まれる。   Peripheral resources include input resources and output resources. Input resources include an input port that handles digital signals, a latch port, an A / D conversion port that handles analog inputs, an input capture port that handles pulse inputs, and the like. Output system resources include an output port that outputs a digital signal, a PWM port that outputs a pulse signal, a compare port, and the like.

マイクロコンピュータ101の内部には、これらの周辺リソースに加えて、内部タイマや割込みコントローラが設けられている。   In the microcomputer 101, in addition to these peripheral resources, an internal timer and an interrupt controller are provided.

入力ポートを介して車両の運転状態を表す各センサやスイッチ類からの信号が取り込まれると、エンジン制御プログラムに従ってCPU102がエンジンの状態を判別し、必要な信号が出力ポートから各種アクチュエータに出力され、エンジンが適正な状態に制御される。   When signals from the sensors and switches representing the driving state of the vehicle are captured via the input port, the CPU 102 determines the engine state according to the engine control program, and necessary signals are output from the output port to various actuators. The engine is controlled to an appropriate state.

図1の右側に示されているように、ソフトウェア開発装置1は、ラックに収容されたマザーボード10と、単一または複数のI/Oボード20と、インタフェースボード30(以下、「IFボード」と記す。)を備えている。   As shown on the right side of FIG. 1, the software development apparatus 1 includes a motherboard 10 accommodated in a rack, a single or plural I / O boards 20, and an interface board 30 (hereinafter referred to as “IF board”). It is described.)

マイクロコンピュータ101のCPU102の動作がマザーボード10のCPU11で模擬され、マイクロコンピュータ101の周辺リソース105がI/Oボード20で模擬される。つまり、マザーボード10とI/Oボード20によってマイクロコンピュータ101が模擬される。   The operation of the CPU 102 of the microcomputer 101 is simulated by the CPU 11 of the motherboard 10, and the peripheral resource 105 of the microcomputer 101 is simulated by the I / O board 20. That is, the microcomputer 101 is simulated by the mother board 10 and the I / O board 20.

IFボード30は、ECU100の入出力回路106を模擬し、コネクタ31を介してエンジンと接続するハーネス、または、エンジンを模擬するシミュレータが接続される。   The IF board 30 is connected to a harness that simulates the input / output circuit 106 of the ECU 100 and is connected to the engine via the connector 31 or a simulator that simulates the engine.

IFボード30は、ポート割付変換ボードと、ポート割付変換ボードのコネクタに挿入される複数の標準回路ボード及び機能ボードでなる入出力回路を備え、ポート割付変換ボードに挿入される標準回路ボード及び機能ボードの組み合わせにより任意の数の入出力回路を実現できるように構成されている。   The IF board 30 includes an input / output circuit including a port assignment conversion board and a plurality of standard circuit boards and function boards inserted into the connector of the port assignment conversion board, and the standard circuit board and functions inserted into the port assignment conversion board. Any number of input / output circuits can be realized by combining the boards.

標準回路ボードはウォーニングランプの点灯信号やCANバス等のシリアル信号を入出力するドライバ回路やバッファ回路を備えたデジタル信号回路で構成され、機能ボードはパワートレーン出力回路、アナログ信号入出力回路、エンジンに対する噴射信号、点火信号、電子スロットル制御信号等を入出力する信号処理用の低機能マイクロコンピュータを備えた入出力処理回路で構成されている。   The standard circuit board consists of a digital signal circuit with a driver circuit and buffer circuit that inputs and outputs a warning lamp lighting signal and a serial signal such as a CAN bus. The function board is a power train output circuit, an analog signal input / output circuit, and an engine. The input / output processing circuit includes a low-function microcomputer for signal processing for inputting / outputting an injection signal, an ignition signal, an electronic throttle control signal, and the like.

本発明によるソフトウェア開発装置1は、上述したECU100に搭載されるべきターゲットとなる新規なマイクロコンピュータ(以下、「仮想マイクロコンピュータ」と記す。)を模擬して、新規または改良されたエンジン制御プログラムの動作を検証するエミュレータとして機能する。   The software development apparatus 1 according to the present invention simulates a new microcomputer (hereinafter referred to as “virtual microcomputer”) that is a target to be mounted on the ECU 100 described above, and provides a new or improved engine control program. Functions as an emulator to verify operation.

マザーボード10には、CPU11、ROMやRAMを備えたメモリ12、割込み処理部13、内部タイマ14、PCIバスIF15、LANIF16等が搭載され、それらがチップセットを含む内部バスで接続されている。   The motherboard 10 includes a CPU 11, a memory 12 having a ROM and a RAM, an interrupt processing unit 13, an internal timer 14, a PCI bus IF 15, a LAN IF 16, and the like, which are connected by an internal bus including a chip set.

メモリ12には、オペレーティングシステム(以下、「OS」と記す。)、PCIバスIF15用のPCIバスドライバ、LANIF16用のLAN通信ドライバが格納されている。さらに、LANIF16を介して接続されたホストコンピュータ50から、評価対象であるエンジン制御プログラム、I/Oドライバ、評価用のモニタプログラム等が送信され、当該メモリ12に格納される。   The memory 12 stores an operating system (hereinafter referred to as “OS”), a PCI bus driver for the PCI bus IF 15, and a LAN communication driver for the LANIF 16. Further, an engine control program, an I / O driver, an evaluation monitor program, and the like to be evaluated are transmitted from the host computer 50 connected via the LANIF 16 and stored in the memory 12.

マザーボード10は、次世代のEUCに搭載されるマイクロコンピュータを模擬するために、それに見合った十分な演算性能、処理速度、メモリ容量を備える必要がある。そのため、CPU11には、例えば、ペンティアムプロセッサ(ペンティアムはインテル社の登録商標)のような汎用のパーソナルコンピュータに用いられる数GHzの高機能のCPUが用いられる。   In order to simulate a microcomputer mounted on the next generation EUC, the motherboard 10 needs to have sufficient computing performance, processing speed, and memory capacity commensurate with it. Therefore, as the CPU 11, for example, a high-performance CPU of several GHz used for a general-purpose personal computer such as a Pentium processor (Pentium is a registered trademark of Intel Corporation) is used.

IOボード20には、CPU23、ROMやRAMを備えたメモリ22、PCIバスIF23、仮想マイクロコンピュータの入出力用の周辺リソースを模擬するマイクロコンピュータ24,25等が搭載され、それらが内部バス及びバスコントローラを介して接続されている。   The IO board 20 includes a CPU 23, a memory 22 having a ROM and a RAM, a PCI bus IF 23, microcomputers 24 and 25 that simulate peripheral resources for input / output of the virtual microcomputer, and the like. Connected via controller.

マイクロコンピュータ24,25に内蔵されるROMに周辺リソースとして機能するプログラムが格納され、当該プログラムがマイクロコンピュータ24,25のCPUで実行されることにより、上述した入力ポート、ラッチポート、A/D変換ポート、インプットキャプチャポート、出力ポート、PWMポート、コンペアポート等の機能が模擬される。従って、当該プログラムの変更により様々な周辺リソースがフレキシブルに構成できる。   A program functioning as a peripheral resource is stored in a ROM built in the microcomputers 24 and 25, and the program is executed by the CPU of the microcomputers 24 and 25, whereby the above-described input port, latch port, A / D conversion are performed. Functions such as ports, input capture ports, output ports, PWM ports, and compare ports are simulated. Therefore, various peripheral resources can be configured flexibly by changing the program.

マザーボード10とI/Oボード20がPCIバスで接続され、当該PCIバスを介したデータ、つまり変数の授受が、マザーボード10のメモリ12に格納されたI/Oドライバと、I/Oボード20のメモリ22に格納されたI/Oドライバによって実行される。   The motherboard 10 and the I / O board 20 are connected by a PCI bus, and exchange of data, that is, variables via the PCI bus is performed between the I / O driver stored in the memory 12 of the motherboard 10 and the I / O board 20. It is executed by the I / O driver stored in the memory 22.

マザーボード10のCPUから出力される変数データがI/Oドライバを介して共有メモリに書き込まれ、周辺リソースであるマイクロコンピュータ24,25の出力ポートからIFボード30に制御信号として出力される。また、周辺リソースであるマイクロコンピュータ24,25の入力ポートから取り込まれた信号は変数データに変換されて共有メモリに書き込まれ、I/Oドライバを介してマザーボード10に送信される。尚、PCIバスと共有メモリ22とマイクロコンピュータ24,25間のデータ転送はバスコントローラにより高速でDMA転送される。   Variable data output from the CPU of the motherboard 10 is written to the shared memory via the I / O driver, and is output as a control signal from the output ports of the microcomputers 24 and 25 which are peripheral resources to the IF board 30. Further, signals taken from the input ports of the microcomputers 24 and 25, which are peripheral resources, are converted into variable data, written to the shared memory, and transmitted to the motherboard 10 via the I / O driver. Note that data transfer between the PCI bus, shared memory 22, and microcomputers 24 and 25 is performed at high speed by the bus controller.

マザーボード10及びIOボード20のI/Oドライバと、共有メモリによって、仮想マイクロコンピュータのCPUと入出力用の周辺リソースを接続する内部バスが模擬される。   The internal bus that connects the CPU of the virtual microcomputer and peripheral resources for input / output is simulated by the I / O drivers of the motherboard 10 and the IO board 20 and the shared memory.

周辺リソースであるマイクロコンピュータ24,25の入力ポートに入力されたセンサ等の信号が、I/Oドライバを介して共有メモリに書き込まれ、PCIバスを介してマザーボード10のメモリ12に書き込まれ、CPU11によって処理される。   Signals from sensors and the like input to the input ports of the microcomputers 24 and 25, which are peripheral resources, are written to the shared memory via the I / O driver, and are written to the memory 12 of the motherboard 10 via the PCI bus. Processed by.

つまり、マザーボード10とI/Oボード20のそれぞれに備えたI/Oドライバによって、PCIバス経由でボード間の同期が取られ、入出力データの授受が行われる。   That is, the I / O drivers provided in the mother board 10 and the I / O board 20 respectively synchronize the boards via the PCI bus and exchange input / output data.

IOボード20のCPU21は、PCIバスPCI通信処理等が実行できる程度の処理能力があればよく、例えば動作周波数が16MHz、32ビットCPU程度であればよい。   The CPU 21 of the IO board 20 only needs to have a processing capability sufficient to execute PCI bus PCI communication processing and the like. For example, the operating frequency may be about 16 MHz and a 32-bit CPU.

即ち、マザーボード10とI/Oボード20によって、制御プログラムを実行するCPUとその周辺回路が内部に組み込まれたマイクロコンピュータを模擬し、制御プログラムを格納するメモリ12と、メモリ12に格納された制御プログラムを実行する模擬CPU11と、周辺回路を模擬する模擬周辺回路24,25を備えた模擬マイクロコンピュータが構成されている。   That is, the mother board 10 and the I / O board 20 simulate a microcomputer in which a CPU for executing a control program and its peripheral circuits are incorporated, a memory 12 for storing the control program, and a control stored in the memory 12. A simulation microcomputer including a simulation CPU 11 that executes a program and simulation peripheral circuits 24 and 25 that simulate peripheral circuits is configured.

当該模擬マイクロコンピュータを管理するホストコンピュータ50は、キーボードやマウス等の入力装置と、表示装置と、ハードディスクが接続され、ハードディスクには、エンジン制御プログラム、I/Oドライバ、評価用のモニタプログラム、及び、エンジン制御プログラムが実行される当該模擬マイクロコンピュータを操作し、その実行状態を表示する管理プログラムが格納されている。   The host computer 50 that manages the simulation microcomputer is connected to an input device such as a keyboard and a mouse, a display device, and a hard disk. The hard disk includes an engine control program, an I / O driver, an evaluation monitor program, and A management program for operating the simulation microcomputer on which the engine control program is executed and displaying the execution state is stored.

上述したソフトウェア開発装置に電源が投入されると、オペレータの操作によって、ホストコンピュータ50からエンジン制御プログラム、IOドライバ、評価用のモニタプログラムの一部がマザーボード10のメモリ12にロードされ、ホストコンピュータ50で管理プログラム及びモニタプログラムが起動される。   When power is supplied to the software development apparatus described above, an engine control program, an IO driver, and a part of an evaluation monitor program are loaded from the host computer 50 into the memory 12 of the motherboard 10 by the operation of the operator. Then, the management program and the monitor program are started.

詳述すると、図2に示すように、ホストコンピュータ50には、管理プログラム、モニタプログラム、LAN通信ドライバ、入出力ドライバ等のプログラムがインストールされ、OSの管理下でホストコンピュータ50のCPUによって各プログラムが実行される。   More specifically, as shown in FIG. 2, the host computer 50 is installed with programs such as a management program, a monitor program, a LAN communication driver, and an input / output driver, and each program is executed by the CPU of the host computer 50 under the management of the OS. Is executed.

マザーボード10には、エンジン制御プログラム、IOドライバ、PCIバスドライバ、LAN通信ドライバ、モニタプログラム等がインストールされ、OSの管理下でCPU11によって各プログラムが実行される。   The motherboard 10 is installed with an engine control program, an IO driver, a PCI bus driver, a LAN communication driver, a monitor program, and the like, and each program is executed by the CPU 11 under the management of the OS.

マザーボード10のCPU11によって実行されるエンジン制御プログラムは、複数のタスクの集合体で構成されており、各タスクには、所定のデータ処理を実行する複数の関数が組み込まれている。   The engine control program executed by the CPU 11 of the motherboard 10 is composed of a collection of a plurality of tasks, and a plurality of functions for executing predetermined data processing are incorporated in each task.

例えば、エンジンから入力されるクランクパルス信号に基づいて、エンジン回転数やクランク角度を求める関数が組み込まれたタスク、クランク信号とカム信号に基づいて気筒を判別する関数が組み込まれたタスク、各気筒に対する噴射タイミングや点火タイミングを求める関数が組み込まれたタスク、車速パルス信号に基づいて車速を求める関数が組み込まれたタスク等である。   For example, a task that incorporates a function for determining the engine speed and crank angle based on a crank pulse signal input from the engine, a task that incorporates a function for determining a cylinder based on a crank signal and a cam signal, and each cylinder For example, a task in which a function for obtaining an injection timing and an ignition timing is incorporated, a task in which a function for obtaining a vehicle speed based on a vehicle speed pulse signal is incorporated, and the like.

各タスクは、タイマ割込みで実行される時間同期タスクと、入出力割込みで実行される非時間同期タスクが含まれ、例えば、1msec.タイマ割込み、インプットキャプチャ割込み、アウトプットコンペア割込み、A/D変換割込み等が含まれる。   Each task includes a time synchronization task executed by a timer interrupt and a non-time synchronization task executed by an input / output interrupt. Timer interrupts, input capture interrupts, output compare interrupts, A / D conversion interrupts, and the like are included.

エンジン制御プログラムには、予め設定された優先順位に基づいて各割込み処理を管理するスケジューラを備えたリアルタイムOSが組み込まれ、当該スケジューラによって優先順位に従って割込みハンドらが起動される。   The engine control program incorporates a real-time OS including a scheduler that manages each interrupt process based on a preset priority order, and the interrupt hand is activated by the scheduler according to the priority order.

割込みハンドラが起動されると、メモリ12に区画されたスタック領域にプログラムカウンタや各種レジスタの値がセーブされた後にタスクが起動され、タスクが終了すると、セーブされたプログラムカウンタや各種レジスタの値が元に戻されて割込み処理が終了する。   When the interrupt handler is activated, the task is activated after the values of the program counter and various registers are saved in the stack area partitioned in the memory 12, and when the task is completed, the saved program counter and various register values are displayed. It is restored and the interrupt process is completed.

スケジューラは、エンジン制御プログラムの割込みハンドラを管理し、内部タイマ14で管理されるタイマ値を読み出して、各割込みハンドラの起動時間、終了時間を管理するとともに、各割込みハンドラによって起動されているタスクの実行状態、つまり、優先順位が高い他の割込みハンドラによりタスクの処理が中断しているサスペンド状態か、タスクが処理されているアクティブ状態かといった割込みハンドラの遷移情報を管理し、メモリ12に区画された割込み処理管理領域にそれらの管理情報を記憶する。   The scheduler manages the interrupt handler of the engine control program, reads the timer value managed by the internal timer 14, manages the start time and end time of each interrupt handler, and the task activated by each interrupt handler. The transition information of the interrupt handler, such as the execution state, that is, the suspended state in which the task processing is suspended by another interrupt handler having a higher priority, or the active state in which the task is processed, is managed and partitioned into the memory 12 The management information is stored in the interrupt processing management area.

図3は、優先順位の低いタスクEの実行中に、優先順位が高いタスクDが起動され、タスクDの実行中にさらに優先順位が高いタスクCが起動され、タスクCの終了後にタスクDが再開され、その終了後にタスクEが再開される様子が示されている。   FIG. 3 shows that task D having a higher priority is activated while task E having a lower priority is executed, task C having a higher priority is activated while task D is being executed, and task D is terminated after task C is completed. It is shown that the task E is resumed and the task E is resumed after the completion.

スケジューラは、割込みハンドラの起動処理または終了処理の際に、図3に示すように、タスク毎に、タスク名、優先順位、タスク起動時刻、タスク終了時刻、タスク処理時間、タスクサスペンド時間、タスクアクティブ時間、動作中のタスク数等の遷移情報を割込み処理管理領域に格納するのである。   As shown in FIG. 3, the scheduler performs task name, priority, task start time, task end time, task processing time, task suspend time, task active for each task during interrupt handler start processing or end processing. Transition information such as time and the number of active tasks is stored in the interrupt processing management area.

尚、IOボード20に備えた周辺リソースであるマイクロコンピュータ24,25で発生する入出力割込みに対応して、IOボード20のCPU21により共有メモリに割込みフラグがセットされ、当該割込みフラグがPCIバスを介してマザーボード10のメモリ12に書き込まれる。   In response to an input / output interrupt generated by the microcomputers 24 and 25, which are peripheral resources provided in the IO board 20, an interrupt flag is set in the shared memory by the CPU 21 of the IO board 20, and the interrupt flag is set on the PCI bus. To the memory 12 of the motherboard 10.

マザーボード10では、割込み処理部13でPCI割込みの発生が検知されるとCPU11に割込みがかかり、エンジン制御プログラムとは別途に設けられたPCI割込みの割込みハンドラが起動され、メモリ12に書き込まれた割込みフラグに対応してエンジン制御プログラムのスケジューラに割込み要求が出される。スケジューラによって、メモリ12に書き込まれた割込みフラグに対応する割込みハンドラが起動される。   In the motherboard 10, when the interrupt processing unit 13 detects the occurrence of a PCI interrupt, the CPU 11 is interrupted, a PCI interrupt interrupt handler provided separately from the engine control program is activated, and the interrupt written in the memory 12 is started. In response to the flag, an interrupt request is issued to the scheduler of the engine control program. The scheduler activates an interrupt handler corresponding to the interrupt flag written in the memory 12.

評価用のモニタプログラムは、ホストコンピュータ50とマザーボード10で実行され、RAMモニタ部と、モニタ条件設定部と、モニタ処理部と、モニタデータ送信部と、表示処理部として機能するプログラムである。   The evaluation monitor program is executed by the host computer 50 and the motherboard 10 and functions as a RAM monitor unit, a monitor condition setting unit, a monitor processing unit, a monitor data transmission unit, and a display processing unit.

RAMモニタ部は、PCIバスを介してI/Oボード20に設けた共有メモリとの間で授受されるデータ、つまり変数をモニタして、マザーボード10のメモリ12に区画された共有メモリモニタ領域に格納し、モニタ条件設定部で設定されたモニタ条件を満たすときに、共有メモリモニタ領域から該当するデータをホストコンピュータ50に出力する。   The RAM monitor unit monitors data exchanged with the shared memory provided on the I / O board 20 via the PCI bus, that is, variables, and displays the data in a shared memory monitor area partitioned by the memory 12 of the motherboard 10. When the monitor condition that is stored and set by the monitor condition setting unit is satisfied, the corresponding data is output from the shared memory monitor area to the host computer 50.

モニタ条件設定部は、エンジン制御プログラムに含まれる所定のタスク、または当該タスクに含まれる所定の関数の先頭アドレスを、ホストコンピュータ50を介して模擬マイクロコンピュータに設定するアドレス設定部と、メモリ12に区画された共有メモリモニタ領域に格納されているデータのうち、チェックする必要のあるデータを特定する情報と、そのデータと対比するモニタデータを設定するモニタデータ設定部を含む。   The monitor condition setting unit includes an address setting unit that sets a predetermined task included in the engine control program or a start address of a predetermined function included in the task in the simulated microcomputer via the host computer 50; It includes a monitor data setting section for setting information for specifying data to be checked among data stored in the partitioned shared memory monitor area and setting monitor data to be compared with the data.

モニタ処理部は、アドレス設定部で設定されたアドレスと、模擬CPUのプログラムカウンタの値が一致したとき、または、モニタデータ設定部で設定されたモニタデータと、共有メモリモニタ領域のデータが一致したときに起動され、模擬CPU11で実行されるエンジン制御プログラムの実行状態をモニタして、メモリ12に区画されたデバッグ情報管理領域に格納する。   The monitor processing unit matches the address set by the address setting unit with the value of the program counter of the simulated CPU, or the monitor data set by the monitor data setting unit matches the data in the shared memory monitor area. The execution state of the engine control program that is sometimes started and executed by the simulated CPU 11 is monitored and stored in a debug information management area partitioned in the memory 12.

モニタデータ送信部は、モニタ処理部によりモニタされ、モニタデータ領域に格納されたデータをホストコンピュータに送信する。   The monitor data transmission unit is monitored by the monitor processing unit and transmits the data stored in the monitor data area to the host computer.

表示処理部は、モニタデータ送信部により送信されたモニタデータをホストコンピュータ50の表示装置に表示する。   The display processing unit displays the monitor data transmitted by the monitor data transmission unit on the display device of the host computer 50.

以上説明したモニタプログラムのうち、RAMモニタ部、モニタ条件設定部の一部、モニタ処理部、及び、モニタデータ送信部として機能するプログラムがマザーボード10のメモリ12インストールされ、モニタ条件設定部の一部、表示処理部がホストコンピュータ50にインストールされる。   Among the monitor programs described above, the RAM monitor unit, a part of the monitor condition setting unit, the monitor processing unit, and the program that functions as the monitor data transmission unit are installed in the memory 12 of the motherboard 10 and a part of the monitor condition setting unit The display processing unit is installed in the host computer 50.

ホストコンピュータ50の管理プログラムにより、エンジン制御プログラムの実行条件、評価用のモニタプログラムの実行条件等を設定するGUI操作画面が表示装置に表示され、オペレータにより入力装置を介して設定された実行条件が、ホストコンピュータ50から模擬マイクロコンピュータに送信される。   A GUI operation screen for setting the execution conditions of the engine control program, the execution conditions of the monitor program for evaluation, and the like is displayed on the display device by the management program of the host computer 50, and the execution conditions set by the operator via the input device are displayed. The data is transmitted from the host computer 50 to the simulated microcomputer.

さらに、オペレータによって、GUI操作画面を介してエンジン制御プログラムの起動操作が行なわれると、模擬マイクロコンピュータに起動指令が送信され、エンジン制御プログラムが起動される。   Further, when the operator performs a start operation of the engine control program via the GUI operation screen, a start command is transmitted to the simulation microcomputer and the engine control program is started.

エンジン制御プログラムの実行条件には、マザーボード10とI/Oボード20との間で共有メモリを介して授受される入出力データの定義情報と、入出力データの共有メモリへの先頭アドレスの割り付け情報、RAMモニタ部によりモニタされたデータのうち、ホストコンピュータ50へ送信すべきデータを特定する情報等の初期設定条件と、エンジン制御プログラムの起動、停止を制御する操作司令等が含まれる。   The engine control program execution conditions include input / output data definition information exchanged between the motherboard 10 and the I / O board 20 via the shared memory, and allocation information of the start address of the input / output data to the shared memory. Among the data monitored by the RAM monitor unit, initial setting conditions such as information for specifying data to be transmitted to the host computer 50, operation commands for controlling start and stop of the engine control program, and the like are included.

評価用のモニタプログラムの実行条件には、エンジン制御プログラムに含まれるタスクのうち、デバッグ対象となるタスクまたは関数のプログラムアドレス情報、及び、必要に応じて設定される共有メモリモニタ領域に格納されている変数データのうち、チェックする必要のある変数データを特定するモニタデータ情報と、モニタデータ情報によって特定される変数データの値と対比する対比データが含まれる。また、当該変数データと関連する変数データを同時にモニタするように、関連付けて複数の変数データを設定できるように構成されている。   The execution conditions of the monitor program for evaluation are stored in the program address information of the task or function to be debugged among the tasks included in the engine control program, and the shared memory monitor area set as necessary. Among the variable data, the monitor data information for specifying the variable data that needs to be checked and the contrast data for comparing with the value of the variable data specified by the monitor data information are included. In addition, a plurality of variable data can be set in association with each other so that the variable data related to the variable data can be monitored simultaneously.

アドレス設定部は、ホストコンピュータ50から送信されたモニタプログラムの実行条件に含まれるプログラムアドレスを、割込み処理部13に設けられているPC割込みレジスタに書き込む。尚、PC割込みレジスタは複数(本実施形態では5つ)備えており、同時に5つのプログラムアドレスを設定できる。   The address setting unit writes the program address included in the execution condition of the monitor program transmitted from the host computer 50 in the PC interrupt register provided in the interrupt processing unit 13. A plurality of PC interrupt registers (five in this embodiment) are provided, and five program addresses can be set simultaneously.

また、モニタデータ設定部は、モニタデータ情報と対比データをメモリ12に区画されたデバッグ情報管理領域に格納する。   The monitor data setting unit stores the monitor data information and the comparison data in a debug information management area partitioned in the memory 12.

割込み処理部13は、PC割込みレジスタに書き込まれたプログラムアドレスと、CPU11によって実行されるエンジン制御プログラムのプログラムアドレスを比較する比較器を備え、両アドレスが一致するとCPU11に割込みをかけるように構成されている。   The interrupt processing unit 13 includes a comparator that compares the program address written in the PC interrupt register with the program address of the engine control program executed by the CPU 11, and is configured to interrupt the CPU 11 when the two addresses match. ing.

尚、割込み処理部13によりCPU11に割込みがかかると、OSによって割込みの種類が判別され、割込み種類に対応するアプリケーションが起動される。エンジン制御プログラムに関する割込みであれば、先ず、エンジン制御プログラムのスケジューラが起動され、スケジューラの管理下で対応する割込みハンドラが起動される。   When the interrupt processing unit 13 interrupts the CPU 11, the OS determines the type of interrupt and activates an application corresponding to the interrupt type. If the interrupt is related to the engine control program, first, the scheduler of the engine control program is started, and the corresponding interrupt handler is started under the management of the scheduler.

つまり、エンジン制御プログラムに組み込まれているタスクまたは関数がCPU11によって実行される場合に、CPU11のプログラムカウンタの値が当該タスクまたは関数の先頭アドレスに設定され、当該プログラムカウンタに設定されたアドレスの命令コードがフェッチされるが、そのタイミングで割込みが発生するのである。   That is, when a task or function incorporated in the engine control program is executed by the CPU 11, the value of the program counter of the CPU 11 is set to the start address of the task or function, and the instruction at the address set in the program counter is set. The code is fetched, but an interrupt occurs at that time.

図4に示すように、モニタ処理部は、当該割込みで起動され、エンジン制御プログラムの実行状態、つまり、スケジューラによって割込み処理管理領域に格納された割込みハンドラの遷移情報を所定時間にわたり読み出して(SA1)、デバッグ情報管理領域に格納する(SA2)。これにより、対応するタスクまたは関数を起動する割込みハンドラ及び、そのときにネストされている他の割込みハンドラの状態が捕捉されるのである。   As shown in FIG. 4, the monitor processing unit is activated by the interrupt, and reads the execution state of the engine control program, that is, the transition information of the interrupt handler stored in the interrupt processing management area by the scheduler over a predetermined time (SA1). And stored in the debug information management area (SA2). As a result, the state of the interrupt handler that activates the corresponding task or function and the other interrupt handlers nested at that time are captured.

モニタ処理部は、さらに、デバッグ情報管理領域に格納されたモニタデータ情報が設定されている場合には(SA3)、RAMモニタ部を起動して(SA4)、当該モニタデータ情報に対応する対比データと、RAMモニタ部によってモニタされている共有メモリモニタ領域の変数データを比較し(SA5)、両データが一致すると所定時間当該データの値、及び関連データをデバッグ情報管理領域に格納するように動作させる(SA6)。   Further, when the monitor data information stored in the debug information management area is set (SA3), the monitor processing unit activates the RAM monitor unit (SA4), and the comparison data corresponding to the monitor data information And the variable data in the shared memory monitor area monitored by the RAM monitor unit (SA5), and when the two data match, the value of the data and related data are stored in the debug information management area for a predetermined time. (SA6).

つまり、RAMモニタ部は、共有メモリのデータを共有メモリモニタ領域に格納する通常処理と、モニタ処理部により起動される変数データの対比処理を実行するように構成されている。   That is, the RAM monitor unit is configured to execute a normal process for storing data in the shared memory in the shared memory monitor area and a variable data comparison process activated by the monitor process unit.

デバッグ情報管理領域に格納された割込みハンドラの遷移情報及び対比処理でモニタされた変数データは、モニタデータ送信部によって、ホストコンピュータ50に送信され(SA7)、表示処理部によって表示装置にグラフィック表示される(SA8)。   The transition information of the interrupt handler stored in the debug information management area and the variable data monitored by the comparison process are transmitted to the host computer 50 by the monitor data transmission unit (SA7), and displayed graphically on the display device by the display processing unit. (SA8).

つまり、モニタ処理部は、タスクまたは関数を起動した割込みハンドラを含む割込みハンドラの遷移情報、及び、タスクまたは関数により操作されるメモリ上の変数をモニタするように構成されている。   In other words, the monitor processing unit is configured to monitor the transition information of the interrupt handler including the interrupt handler that started the task or function and the variables on the memory operated by the task or function.

まら、表示処理部は、変数が更新された場合に、当該変数を更新したタスクまたは関数を関連付けて表示するように構成されている。   Furthermore, the display processing unit is configured to display a task or function in which the variable is updated in association with the variable when the variable is updated.

エンジン制御プログラムが実行されている間は、RAMモニタ部によりモニタされ、初期設定条件で設定されたデータが内部タイマの時刻データとともに、所定インタバルでホストコンピュータ50に送信され、表示処理部によって表示装置にトレンドグラフとしてグラフィック表示される。   While the engine control program is being executed, it is monitored by the RAM monitor unit, and the data set in the initial setting conditions is transmitted to the host computer 50 at a predetermined interval together with the time data of the internal timer, and the display processing unit displays the data. Is displayed graphically as a trend graph.

以下に、表示処理部によって表示される画面例を説明する。
図5は、モニタデータ送信部から送信された割込みハンドラの遷移情報に基づいて、表示処理部によって、タスクの実行状態がリアルタイムで、バーグラフ表示されている状態を示す。
Below, the example of a screen displayed by the display process part is demonstrated.
FIG. 5 shows a state in which the task execution state is displayed in a bar graph in real time by the display processing unit based on the transition information of the interrupt handler transmitted from the monitor data transmission unit.

縦軸はタスクの優先度を示し、上側ほど優先順位が高いタスクであることが示されている。横軸は時間が示されている。割込みにネストが発生し、優先順位が低いタスクがサスペンド状態となった期間がハッチングされている。また、アクティブ状態のタスクは、優先順位に応じた色により塗り潰され、視認性を上げている。   The vertical axis indicates the priority of the task, and the higher the task is, the higher the priority is. The horizontal axis shows time. Nested interrupts occur, and the period during which a task with a lower priority is suspended is hatched. In addition, the task in the active state is filled with a color corresponding to the priority order to improve visibility.

この例では、タスクEに組み込まれている所定の関数の先頭アドレスが割込みレジスタに設定され、CPU11のプログラムカウンタの値と等しくなった時にモニタ処理部が起動され、その後、所定時間のタスクの実行状態がモニタされたものである。   In this example, the start address of a predetermined function incorporated in the task E is set in the interrupt register, and the monitor processing unit is activated when the CPU 11 equals the value of the program counter. Thereafter, the task is executed for a predetermined time. The state is monitored.

バーグラフには、当該関数の実行タイミングに星印のマーキングが施され、設定した特定の関数が呼び出されたことが示されている。また、星印のマーキング位置を右クリックすると、関数名、呼び出しタスク名、変数データの計測条件(比較データ)がポップアップ表示される。   The bar graph shows that the execution of the function is marked with an asterisk and that the specified specific function is called. Also, right-clicking the star marking position pops up the function name, call task name, and variable data measurement conditions (comparison data).

また、表示された任意のバーグラフを右クリックすると、タスク名、優先順位、動作中のタスク数、タスクの状態がホップアップ表示される。   When right-clicking on any bar graph displayed, the task name, priority, number of active tasks, and task status are displayed in a hop-up manner.

オペレータによって、GUI操作画面を介してエンジン制御プログラムの停止操作が行なわれると、模擬マイクロコンピュータに停止指令が送信され、エンジン制御プログラムが停止される。   When the operator performs a stop operation of the engine control program via the GUI operation screen, a stop command is transmitted to the simulation microcomputer, and the engine control program is stopped.

図6は、図5と同一の条件設定の下で、モニタデータ送信部から送信された割込みハンドラの遷移情報に基づいて、エンジン制御プログラムの停止後に、表示処理部によって、タスクの実行状態がバーグラフ表示されている状態を示す。   6 shows that the task execution state is displayed by the display processing unit after the engine control program is stopped based on the transition information of the interrupt handler transmitted from the monitor data transmission unit under the same condition setting as FIG. Indicates the state displayed in a graph.

星印のマーキング位置を右クリックすると、関数名、呼び出しタスク名、変数データの計測条件(比較データ)、関連付けされた変数データがポップアップ表示される。また、表示された任意のバーグラフを右クリックすると、タスク名、優先順位、タスク処理時間、タスクサスペンド時間、タスク実動作時間がホップアップ表示される。   When right-clicking the marking position of the star, the function name, calling task name, variable data measurement conditions (comparison data), and associated variable data are popped up. Also, right-clicking on any displayed bar graph displays the task name, priority, task processing time, task suspend time, and task actual operation time as a hop-up display.

オペレータは、このような表示画面を操作或いは目視して、評価対象のタスクや関数の実行状態を確認するのである。   The operator operates or visually checks such a display screen to confirm the execution state of the task or function to be evaluated.

このように、本発明によるソフトウェア開発装置では、ソースプログラムを編集することなく、デバッグしたいタスクに対応してそのタスクまたは関数の先頭アドレスを変更設定するだけの容易な操作で、対応するタスクが実行されるか否か、そのときの変数の値がそのように変化するかを確認することができるようになる。   As described above, in the software development apparatus according to the present invention, the corresponding task can be executed by simply changing and setting the start address of the task or function corresponding to the task to be debugged without editing the source program. Whether or not the value of the variable at that time changes in this way.

以下、捌実施形態を説明する。上述の実施形態では、模擬マイクロコンピュータで実行され、検証される制御プログラムがエンジン制御プログラムである場合を説明したが、本発明が適用される制御プログラムこれに限定されるものではなく、車両に搭載される他のECUの制御プログラムであってもよい。   Hereinafter, embodiments will be described. In the above-described embodiment, the case where the control program executed and verified by the simulation microcomputer is the engine control program has been described. However, the control program to which the present invention is applied is not limited to this and is installed in the vehicle. Another ECU control program may be used.

また、制御プログラムは、車両に搭載されるものに限らず、制御用のマイクロコンピュータを備えたOA機器等、組み込みソフトウェアの開発に広く適用可能なものである。   The control program is not limited to the one installed in the vehicle, but can be widely applied to the development of embedded software such as an OA device provided with a control microcomputer.

上述したソフトウェア開発装置の具体構成は例示に過ぎず、マザーボード、I/Oボード等の各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、公知の技術を用いて適宜構築することができることはいうまでもない。   The specific configuration of the above-described software development apparatus is merely an example, and the specific configuration of each part such as a mother board and an I / O board should be appropriately constructed using a known technique as long as the effects of the present invention are achieved. Needless to say, you can.

1:ソフトウェア開発装置
10:マザーボード
11:CPU(模擬CPU)
12:メモリ
20:I/Oボード
24,25:模擬周辺回路(マイクロコンピュータ)
50:ホストコンピュータ
1: Software development device 10: Motherboard 11: CPU (simulated CPU)
12: Memory 20: I / O board 24, 25: Simulated peripheral circuit (microcomputer)
50: Host computer

Claims (5)

制御プログラムを実行するCPUとその周辺回路が内部に組み込まれたマイクロコンピュータを模擬し、前記制御プログラムを格納するメモリと、前記メモリに格納された制御プログラムを実行する模擬CPUと、前記周辺回路を模擬する模擬周辺回路を備えた模擬マイクロコンピュータと、
前記模擬マイクロコンピュータを管理するホストコンピュータと、
がネットワーク接続されているソフトウェア開発装置であって、
前記制御プログラムに含まれる所定のタスク、または当該タスクに含まれる所定の関数の先頭アドレスを、前記ホストコンピュータを介して前記模擬マイクロコンピュータに設定するアドレス設定部と、
前記アドレス設定部で設定されたアドレスと、前記模擬CPUのプログラムカウンタの値が一致したときに起動され、前記模擬CPUによる制御プログラムの実行状態をモニタするモニタ処理部と、前記モニタ処理部によりモニタされたデータをホストコンピュータに送信するモニタデータ送信部と、
を備えていることを特徴とするソフトウェア開発装置。
A CPU that executes a control program and a microcomputer in which its peripheral circuit is incorporated is simulated, a memory that stores the control program, a simulation CPU that executes a control program stored in the memory, and the peripheral circuit A simulation microcomputer having a simulation peripheral circuit to be simulated;
A host computer for managing the simulated microcomputer;
Is a software development device connected to the network,
An address setting unit that sets a predetermined task included in the control program or a start address of a predetermined function included in the task to the simulated microcomputer via the host computer;
A monitor processing unit that is activated when the address set by the address setting unit matches the value of the program counter of the simulated CPU and that monitors the execution state of the control program by the simulated CPU, and is monitored by the monitor processing unit A monitor data transmitter for transmitting the received data to the host computer;
A software development device comprising:
前記モニタ処理部は、前記タスクまたは関数を起動した割込みハンドラを含む割込みハンドラの遷移情報、及び、前記タスクまたは関数により操作されるメモリ上の変数をモニタすることを特徴とする請求項1記載のソフトウェア開発装置。   The monitor processing unit monitors transition information of an interrupt handler including an interrupt handler that has started the task or function, and a variable on a memory operated by the task or function. Software development equipment. 前記ホストコンピュータに、前記モニタデータ送信部から送信されたモニタ情報に基づいて、前記タスクまたは関数の実行状態、または変数の更新状態をグラフィック表示する表示処理部を備えていることを特徴とする請求項1または2記載のソフトウェア開発装置。   The host computer includes a display processing unit that graphically displays an execution state of the task or function or a variable update state based on monitor information transmitted from the monitor data transmission unit. Item 3. The software development device according to item 1 or 2. 前記表示処理部は、変数が更新された場合に、当該変数を更新したタスクまたは関数を関連付けて表示する請求項3記載のソフトウェア開発装置。   The software development apparatus according to claim 3, wherein when the variable is updated, the display processing unit displays the task or function that updated the variable in association with each other. 制御プログラムを実行するCPUとその周辺回路が内部に組み込まれたマイクロコンピュータを模擬し、前記制御プログラムを格納するメモリと、前記メモリに格納された制御プログラムを実行する模擬CPUと、前記周辺回路を模擬する模擬周辺回路を備えた模擬マイクロコンピュータと、
前記模擬マイクロコンピュータを管理するホストコンピュータと、
がネットワーク接続されているソフトウェア開発装置を用いたデバッグ方法であって、
前記制御プログラムに含まれる所定のタスク、または当該タスクに含まれる所定の関数の先頭アドレスを、前記ホストコンピュータを介して前記模擬マイクロコンピュータに設定するアドレス設定ステップと、
前記アドレス設定ステップで設定されたアドレスと、前記模擬CPUのプログラムカウンタの値が一致したときに起動し、前記模擬CPUによる制御プログラムの実行状態をモニタして、前記ホストコンピュータに送信するモニタステップと、
前記モニタステップで送信されたモニタデータに基づいて、前記タスクまたは関数の実行状態、または前記タスクまたは関数で操作される変数の更新状態をグラフィック表示する表示処理ステップと、
を実行することを特徴とするデバッグ方法。
A CPU that executes a control program and a microcomputer in which its peripheral circuit is incorporated is simulated, a memory that stores the control program, a simulation CPU that executes a control program stored in the memory, and the peripheral circuit A simulation microcomputer having a simulation peripheral circuit to be simulated;
A host computer for managing the simulated microcomputer;
Is a debugging method using a software development device connected to a network,
An address setting step of setting a predetermined task included in the control program or a start address of a predetermined function included in the task in the simulated microcomputer via the host computer;
A monitoring step that starts when the address set in the address setting step and the value of the program counter of the simulated CPU match, monitors the execution state of the control program by the simulated CPU, and transmits to the host computer; ,
A display processing step for graphically displaying an execution state of the task or function or an update state of a variable operated by the task or function based on the monitor data transmitted in the monitoring step;
A debugging method characterized by executing
JP2009093564A 2009-04-08 2009-04-08 Software development device, and debugging method using the same Withdrawn JP2010244376A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009093564A JP2010244376A (en) 2009-04-08 2009-04-08 Software development device, and debugging method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009093564A JP2010244376A (en) 2009-04-08 2009-04-08 Software development device, and debugging method using the same

Publications (1)

Publication Number Publication Date
JP2010244376A true JP2010244376A (en) 2010-10-28

Family

ID=43097318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009093564A Withdrawn JP2010244376A (en) 2009-04-08 2009-04-08 Software development device, and debugging method using the same

Country Status (1)

Country Link
JP (1) JP2010244376A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699620A (en) * 2015-04-01 2015-06-10 山东华芯半导体有限公司 System and method for accelerating chip interrupt controller verification
KR20190040714A (en) * 2017-10-11 2019-04-19 현대자동차주식회사 Method and system for ECU execution time monitoring and fault finding
JP2020112918A (en) * 2019-01-09 2020-07-27 富士電機株式会社 Method of measuring execution load factor of software in control device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699620A (en) * 2015-04-01 2015-06-10 山东华芯半导体有限公司 System and method for accelerating chip interrupt controller verification
KR20190040714A (en) * 2017-10-11 2019-04-19 현대자동차주식회사 Method and system for ECU execution time monitoring and fault finding
KR102410940B1 (en) 2017-10-11 2022-06-20 현대자동차주식회사 Method and system for ECU execution time monitoring and fault finding
JP2020112918A (en) * 2019-01-09 2020-07-27 富士電機株式会社 Method of measuring execution load factor of software in control device
JP7230511B2 (en) 2019-01-09 2023-03-01 富士電機株式会社 SOFTWARE EXECUTION LOAD FACTOR MEASUREMENT IN CONTROLLER

Similar Documents

Publication Publication Date Title
US6668339B1 (en) Microprocessor having a debug interruption function
JP5270330B2 (en) Multicore microcomputer system simulation method and simulation apparatus
US10409632B2 (en) Emulation of hardware components based on interrupt design
JP2015060600A (en) Testing device for real-time testing of virtual control unit
KR20170110072A (en) System and method for generating cross-core breakpoints in a multi-core microcontroller
KR100607023B1 (en) Program processing apparatus
JP2010244376A (en) Software development device, and debugging method using the same
JP2005070950A (en) Program processing apparatus
AU2017438670B2 (en) Simulation device, simulation method, and simulation program
JP2019179284A (en) Simulation system and simulation program
Geier et al. In situ latency monitoring for heterogeneous real-time systems
US20180181478A1 (en) Performing diagnostic operations upon a target apparatus
JP6104671B2 (en) Multiprocessor system, apparatus, and method
JP2005250937A (en) Program verification device for microcomputer software
US8914274B1 (en) Method and system for instruction set simulation with concurrent attachment of multiple debuggers
KR20080013528A (en) Intergration prototyping method
JP2006293560A (en) Debugging system and debugging method
JP3085730B2 (en) Parallel simulation method for complex CPU system
US20130338992A1 (en) Method for simulating a system
JP2010049355A (en) Simulation microcomputer device
TWI566179B (en) Debug Message Outputting Method and Computer Program Product for BIOS
KR100200712B1 (en) Apparatus for program debugging of no-target system
JP2001084161A (en) Data processor
Martin et al. A Cost-Effective Calibration and Debug Interface for Automotive Controllers According to the (IEEE-ISTO 5001)
US9342359B2 (en) Information processing system and information processing method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120703