JP6322631B2 - Embedded software development method, programming device and embedded device - Google Patents
Embedded software development method, programming device and embedded device Download PDFInfo
- Publication number
- JP6322631B2 JP6322631B2 JP2015530586A JP2015530586A JP6322631B2 JP 6322631 B2 JP6322631 B2 JP 6322631B2 JP 2015530586 A JP2015530586 A JP 2015530586A JP 2015530586 A JP2015530586 A JP 2015530586A JP 6322631 B2 JP6322631 B2 JP 6322631B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- address
- virtual memory
- embedded
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 91
- 238000012545 processing Methods 0.000 claims description 86
- 230000006870 function Effects 0.000 claims description 74
- 238000011161 development Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 146
- 238000013461 design Methods 0.000 description 137
- 241001513109 Chrysocephalum apiculatum Species 0.000 description 16
- 241001303755 Porpita porpita Species 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
この発明は、組み込み機器に組み込む組み込みソフトウェアの開発方法、プログラミング装置および組み込み機器に関する。 This invention relates to a method development of embedded software incorporated in the embedded device, on programming device and embedded devices.
汎用ソフトウェア開発の際には、仕様書、マニュアル、ソフトウェア設計書、ソースコード、テスト仕様書等の各種ドキュメントを作成している。また、開発の工程(フロー)は、仕様書(テスト仕様書、マニュアル)を作成した後、ソフトウェア設計書を作成し、この後にソースコードを作成し、実機環境でのコンパイルを行った後、実機動作させて、検証、およびバグ修正を行うようになっている。 In general-purpose software development, various documents such as specifications, manuals, software designs, source codes, test specifications, etc. are created. In the development process (flow), after creating specifications (test specifications, manuals), creating software design documents, creating source code, compiling in the actual environment, It is supposed to work, verify, and fix bugs.
上記複数の各種ドキュメントを作成するにあたり、システムおよびソフトウェアの仕様の決定や登録、更新等の各工程のデータをデータベースにより管理処理することにより、正確なドキュメントを作成する仕様管理装置が提案されている。この仕様管理装置は、各工程で作成される成果物と成果物間の関係を、モデル要素、モデル要素間の関係、ドキュメントおよびその構成、モデル要素およびドキュメント要素との関係の4種類に分類して定義し、登録管理することにより、入力されるモデル要素の情報と予め定義されるドキュメントの情報に基づいて、ドキュメントを自動生成する(例えば、下記特許文献1参照。)。
In creating the above-mentioned various documents, there has been proposed a specification management device that creates an accurate document by managing data of each process such as determination, registration, and update of system and software specifications using a database. . This specification management device classifies the relationship between deliverables and deliverables created in each process into four types: model elements, relationships between model elements, documents and their configurations, and relationships between model elements and document elements. By defining and registering, the document is automatically generated based on the input model element information and the predefined document information (for example, see
しかしながら、従来、開発の各工程では、異なる作業者が分担して作業を行うものであるため、異なる工程同士の連携を円滑に行えなかった。また、各ドキュメントの正確性は、各工程の作業者の習熟度に影響を受け、習熟していない作業者が作成した精度の低いドキュメントが他の工程(全体)に影響を与える問題が生じた。例えば、ソフトウェア間の連携部分のプログラミングは、一定の知識を有するプログラマによる作業が必要であり、このプログラマは、他の工程の作業に精通していない。 However, conventionally, in each process of development, since different workers share the work, the cooperation between the different processes cannot be smoothly performed. In addition, the accuracy of each document is affected by the level of proficiency of the workers in each process, and there is a problem that low-accuracy documents created by unskilled workers affect other processes (overall). . For example, the programming of the linkage portion between software requires work by a programmer having a certain knowledge, and this programmer is not familiar with the work of other processes.
このため、異なる工程の作業者間では、設計、変更等に迅速に対応できず、連携のための工数が増え、全体の工数やコスト増加等を生じやすい。例えば、GUI開発と制御開発は、それぞれ別工程で行われており、GUI画面上の部品と制御処理の連携は、手作業で一つずつ対応させていた。このため、GUI画面上の部品と制御処理の連携に非常に手間がかかっていた。 For this reason, between workers in different processes, it is not possible to quickly respond to design, change, etc., and the number of man-hours for cooperation increases, and the total man-hours and costs increase easily. For example, GUI development and control development are performed in separate processes, and the cooperation between the components on the GUI screen and the control processing is manually associated one by one. For this reason, it takes much time and effort to link the components on the GUI screen with the control processing.
そして、特許文献1の技術では、ある工程における作業状態を他の工程の作業者から見て分かりやすく出力することはできないため、設計、変更等に柔軟に対応することができない。結果として、各工程の作業者は、全体の開発状態や、工程間の連携状態を把握できないため、担当する工程の開発を円滑に行うことができなかった。
The technique of
また、近年では、PC等の汎用アプリケーションの他に、特定のアプリケーションを動作させる組み込みソフトウェアが台頭してきている。このような組み込みソフトウェアにおいて、ソフトウェア間のインターフェースは、API関数を用意し、ソフトウェア間で互いにコールするよう、習熟したプログラマがプログラミングしていた。 In recent years, in addition to general-purpose applications such as PCs, embedded software that operates specific applications has emerged. In such embedded software, the interface between the software has been programmed by a skilled programmer to prepare API functions and call each other between the software.
組み込みソフトウェアは、例えば、リモコンやデジカメ、ICレコーダ等、特定の単純な機能であり、習熟したプログラマに限らずに、より効率的にソフトウェア開発できることが望まれている。 The embedded software is a specific simple function such as a remote controller, digital camera, IC recorder, etc., and it is desired that the software can be developed more efficiently without being limited to a skilled programmer.
プログラミングに習熟していなくても組み込みソフトウェア開発が行え、また、各工程を連携できるドキュメントが作成できれば、組み込みソフトウェアをより効率的に開発できるようになる。 If you can develop embedded software even if you are not proficient in programming, and you can create a document that can link each process, you can develop embedded software more efficiently.
本発明は、上記課題に鑑み、組み込みソフトウェアを効率的に開発できることを目的とする。 In view of the above problems, an object of the present invention is to efficiently develop embedded software.
上記目的を達成するため、本発明の組み込みソフトウェアの開発方法は、プログラミング装置のプロセッサにより、組み込み機器が実行処理する組み込みソフトウェアの機能モジュール別の複数のプログラムの第1プログラムと第2プログラムのデータ送受用に、前記第1プログラムが前記第2プログラムに渡すデータ領域の第1アドレスと、前記第2プログラムが前記第1プログラムに渡すデータ領域の第2アドレスと、を前記組み込み機器のOSが提供する仮想メモリインターフェースに設定し、前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数を設定する、処理を行い、前記組み込み機器のCPUは、前記プログラミング装置により設定された、前記第1プログラムにより、前記第2プログラムに渡すデータを前記仮想メモリインターフェースの前記第1アドレスに書き込み、前記第2プログラムにより、前記第1アドレスに書き込まれた前記データを読み込み、所定の処理を行った戻り値のデータを前記第2アドレスに書き込み、前記第1プログラムにより、前記第2アドレスに書き込まれた戻り値の前記データを読み出し、前記組み込み機器のCPUは、前記第1プログラムによって書き込まれたアドレスとデータに対応する前記第2プログラムの関数をコールし、前記第2プログラムにより、前記書き込みされたデータを読み出す、処理を行うことを特徴とする。 To achieve the above object, the development process of embedded software of the present invention, by a processor of the programming device, the data of the first program and the second program embedded software function module by a plurality of programs of the embedded device executes processing feed For acceptance, the OS of the embedded device provides the first address of the data area that the first program passes to the second program and the second address of the data area that the second program passes to the first program. Setting in the virtual memory interface, setting the functions of the first program and the second program that are activated by writing and reading data with respect to an address in advance in the virtual memory area of the virtual memory interface, performing the processing, and the embedded device The CPU Set by ming apparatus, by the first program, write the data to be passed to the second program to the first address of the virtual memory interface, by the second program, the data written to the first address read, write the data of the return value of performing predetermined processing on the second address, by the first program, for reading the data of the written return value to the second address, CPU before Symbol embedded devices, the function calls of the second program corresponding to the written address and data by the first program, the second program, reading the write data, and performs processing.
また、前記組み込み機器の前記CPUは、前記第2プログラムの実行処理による、前記仮想メモリインターフェースの前記第1アドレスに対する前記データの書き込みを一定間隔で監視し、データの書き込みに応じて前記第1アドレスに書き込まれた前記データの読み込みを行う、ことを特徴とする。 In addition, the CPU of the embedded device monitors the writing of the data to the first address of the virtual memory interface by the execution process of the second program at regular intervals, and the first address according to the writing of the data The data written in is read.
また、前記組み込み機器の前記OSは、前記仮想メモリインターフェースの前記第1アドレスに対する前記データの書き込みを前記第2プログラムに通知し、前記第2プログラムは、前記OSからの通知に応じて前記第1アドレスに書き込まれた前記データの読み込みを行う、ことを特徴とする。 Further, the OS of the embedded device notifies the second program of writing of the data to the first address of the virtual memory interface, and the second program responds to the notification from the OS. The data written in the address is read.
また、本発明のプログラミング装置は、組み込み機器の組み込みソフトウェアを開発するプログラミング装置において、前記組み込み機器が実行処理する機能モジュール別の複数のプログラムの第1プログラムと第2プログラムのデータ送受用に、前記第1プログラムが前記第2プログラムに渡すデータ領域の第1アドレスと、前記第2プログラムが前記第1プログラムに渡すデータ領域の第2アドレスと、を前記組み込み機器のOSが提供する前記仮想メモリインターフェースに設定し、前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数を設定する、処理を行う制御部を備えたことを特徴とする。 The programming device of the present invention is a programming device that develops embedded software of an embedded device, and is used for data transmission / reception of a first program and a second program of a plurality of programs for each functional module executed by the embedded device. The virtual memory interface that the OS of the embedded device provides a first address of a data area that the first program passes to the second program and a second address of a data area that the second program passes to the first program And a control unit that performs processing for setting the functions of the first program and the second program that are activated by writing and reading data with respect to an address in advance in the virtual memory area of the virtual memory interface. Features.
また、本発明の組み込み機器は、組み込みソフトウェアの機能モジュール別の複数のプログラムの第1プログラムと第2プログラムのデータ送受用に、前記第1プログラムが前記第2プログラムに渡すデータ領域の第1アドレスと、前記第2プログラムが前記第1プログラムに渡すデータ領域の第2アドレスと、が予め設定された、OSが提供する仮想メモリインターフェースと、前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数の予めの設定に基づき、前記第1プログラムにより、前記第2プログラムに渡すデータを前記仮想メモリインターフェースの前記第1アドレスに書き込み、前記第2プログラムにより、前記第1アドレスに書き込まれた前記データを読み込み、所定の処理を行った戻り値のデータを前記第2アドレスに書き込み、前記第1プログラムにより、前記第2アドレスに書き込まれた戻り値の前記データを読み出し、前記第1プログラムによって書き込まれたアドレスとデータに対応する前記第2プログラムの関数をコールし、前記第2プログラムにより、前記書き込みされたデータを読み出す、処理を行う制御部を備えたことを特徴とする。 Further, the embedded device of the present invention provides a first address of a data area that the first program passes to the second program for data transmission / reception of the first program and the second program of the plurality of programs for each functional module of the embedded software. And a second address of a data area that the second program passes to the first program, a virtual memory interface provided by the OS, and data for the address in advance in the virtual memory area of the virtual memory interface Based on the settings of the functions of the first program and the second program that are activated by writing and reading the data, the first program writes data to be passed to the second program to the first address of the virtual memory interface By the second program, The data written in the first address is read, the return value data subjected to predetermined processing is written in the second address, and the return value data written in the second address by the first program. And a control unit that performs a process of calling the function of the second program corresponding to the address and data written by the first program and reading the written data by the second program. It is characterized by.
上記構成によれば、プログラム相互間でやりとりするデータについて、仮想メモリインターフェースに、各プログラムが書き込むアドレスと、読み出すアドレスが設定される。これにより、各プログラムは、仮想メモリインターフェースの該当アドレスに対するデータ書き込みに基づきこのデータを読み込み、プログラム実行することができるようになる。各プログラムは、メモリのリード/ライト動作だけでプログラム間の連携を構築することができる。 According to the above configuration, for data exchanged between programs, an address to be written by each program and an address to be read are set in the virtual memory interface. As a result, each program can read this data and execute the program based on the data write to the corresponding address of the virtual memory interface. Each program can establish cooperation between programs only by a memory read / write operation.
本発明によれば、組み込みソフトウェアを効率的に開発できるという効果を奏する。 According to the present invention, it is possible to efficiently develop embedded software.
(実施の形態)
以下に添付図面を参照して、この発明にかかる組み込みソフトウェアの開発方法、プログラミング装置および組み込み機器の好適な実施の形態を詳細に説明する。組み込みソフトウェアは、例えば、リモコンやデジカメ、ICレコーダ、車載装置、医療機器等、用途(動作)が限定された特定用途の組み込み機器に組み込まれるソフトウェアである。
(Embodiment)
With reference to the accompanying drawings, illustrating how the development of embedded software according to the present invention, a preferred embodiment of the programming device and the embedded device in detail. The embedded software is software embedded in a specific-purpose embedded device whose application (operation) is limited, such as a remote controller, a digital camera, an IC recorder, an in-vehicle device, or a medical device.
(実施の形態1:仮想メモリインターフェースを用いたデータ送受の構成)
図1は、実施の形態1にかかる組み込みソフトウェアのインターフェース仕様を説明する図である。実施の形態では、異なるプログラムA,B間の接続を仮想メモリインターフェース101を用いて行う。この接続とは、プログラム間においてやりとりするデータの送受を指す。(Embodiment 1: Configuration of data transmission / reception using a virtual memory interface)
FIG. 1 is a diagram for explaining the interface specifications of the embedded software according to the first embodiment. In the embodiment, connection between different programs A and B is performed using the
図2は、実施の形態1にかかる仮想メモリインターフェースのメモリ内容を示す図である。メモリアドレス毎に一方のプログラム(例えばアプリケーション)Aと、他方のプログラム(例えばOS)Bとの間でやりとりするデータ(変数)を格納する。 FIG. 2 is a diagram of memory contents of the virtual memory interface according to the first embodiment. For each memory address, data (variables) exchanged between one program (for example, application) A and the other program (for example, OS) B is stored.
ここで、プログラムA,Bの関数と、このプログラムA,B間における関数のデータの送受は仮想メモリ(インターフェース)101を用いる。そして、各関数が書き込むアドレスと、読み出すアドレスは、予め設定されている。 Here, the virtual memory (interface) 101 is used for transmission / reception of the functions of the programs A and B and the function data between the programs A and B. The address written by each function and the address to be read are set in advance.
組み込みソフトウェアでは、特定の機能を順序制御等により単純実行すればよいため、プログラムA,B間のデータの送受は、固定化されている。例えば、組み込み機器の操作等により、プログラム(アプリケーション)Aの関数Aが取得したデータは、アドレス「0000」に書き込むように設定しておく。 In the embedded software, a specific function may be simply executed by order control or the like, and therefore data transmission / reception between the programs A and B is fixed. For example, the data acquired by the function A of the program (application) A by operating the embedded device is set to be written to the address “0000”.
また、プログラム(OS)Bの関数1は、アドレス「0000」に書き込まれたデータを読み込み、所定の処理を実行するように設定しておく。また、プログラム(OS)の関数1は、所定の処理実行結果の戻り値をアドレス「0001」に書き込むように設定しておく。
The
また、プログラム(アプリケーション)Aの関数Aは、アドレス「0001」のデータを読み込み、所定の処理を実行するように設定しておく。プログラムA,Bの他の関数についても、それぞれ異なるアドレスを用いてデータ送受する設定を行う。 The function A of the program (application) A is set so as to read the data of the address “0001” and execute a predetermined process. The other functions of programs A and B are also set to send and receive data using different addresses.
図3は、実施の形態1にかかる仮想メモリインターフェースを用いたデータ送受の処理内容を示すフローチャートである。図中ステップS301は組み込みソフトウェア開発時に行う事前処理内容、ステップS304は事前処理後(組み込み機器への組み込みソフトウェアの組み込み後)の実行処理内容を示す。 FIG. 3 is a flowchart of the contents of data transmission / reception processing using the virtual memory interface according to the first embodiment. In the figure, step S301 shows the contents of the pre-processing performed when the embedded software is developed, and step S304 shows the contents of the execution process after the pre-processing (after incorporating the embedded software into the embedded device).
ステップS301の事前準備としては、はじめに、プログラムAの関数AからプログラムBの関数1へ引き渡す変数領域1を設定する(ステップS302)。次に、プログラムBの関数1からプログラムAの関数Aへの戻り値の変数領域2を設定する(ステップS303)。
As advance preparation of step S301, first, the
上記事前準備後の実行処理時(ステップS304)には、ステップS305〜ステップS308の処理を行う。はじめに、プログラムAの関数Aにより変数領域1にデータを書き込む(ステップS305)。次に、プログラムBの関数1により変数領域1からデータを読み込む(ステップS306)。その後、プログラムBの関数1により内部計算を行い、計算結果の戻り値を変数領域2に書き込む(ステップS307)。そして、プログラムAの関数Aにより変数領域2からデータを読み込む(ステップS308)。
During the execution process after the advance preparation (step S304), the processes of steps S305 to S308 are performed. First, data is written in the
図3の処理を図2を用いて具体的に説明すると、事前準備としては、
a.仮想メモリインターフェース101のアドレス「0000」を関数Aから関数1へ引き渡す変数領域1として設定する。
b.仮想メモリインターフェース101のアドレス「0001」を関数1から関数Aへの戻り値の変数領域2として設定する。The process of FIG. 3 will be specifically described with reference to FIG.
a. The address “0000” of the
b. The address “0001” of the
上記事前準備後の動作処理時には、プログラムA,Bは、下記1.〜4.の処理を行う。
1.関数Aが変数領域1(アドレス「0000」)にデータを書き込む。
2.関数1が変数領域1(アドレス「0000」)からデータを読み込む。
3.関数1が内部計算を行い、計算結果の戻り値を変数領域2(アドレス「0001」)に書き込む。
4.関数Aが変数領域2(アドレス「0001」)からデータを読み込む。At the time of operation processing after the above preparation, the programs A and B are as follows. ~ 4. Perform the process.
1. The function A writes data to the variable area 1 (address “0000”).
2.
3.
4). The function A reads data from the variable area 2 (address “0001”).
このように、プログラムA,B相互間でやりとりするデータについて、仮想メモリインターフェース101上に、各プログラムが書き込むアドレスと、読み出すアドレスを設定しておくことにより、各プログラムA,Bは、仮想メモリインターフェース101の該当アドレスに対するデータ書き込みに基づきこのデータを読み込み、プログラム実行することができるようになる。各プログラムA,Bは、メモリのリード/ライト動作だけでプログラム間の連携を構築することができる。
As described above, by setting the addresses to be written and read by the programs on the
ここで、プログラムA,Bは、それぞれ予め設定したアドレスにデータが書き込まれたことを契機(タイミング)として、処理を実行するように構成(プログラミング)しておいてもよい。例えば、上記例では、2.4.について下記のようにプログラミングできる。
2’.関数1は、アドレス「0000」にデータが書き込まれた場合、このデータを読み込む。
4’.関数Aは、アドレス「0001」にデータが書き込まれた場合、このデータを読み込む。Here, each of the programs A and B may be configured (programmed) so as to execute processing when data is written to a preset address. For example, in the above example, 2.4. Can be programmed as follows.
2 '. The
4 '. The function A reads this data when the data is written to the address “0001”.
図4は、実施の形態1にかかるプログラムの連携例を示す図である。プログラムAの関数Aは、アドレス0「0000」に値10を書き込む処理、およびアドレス1「0001」の値を読み込む処理を行う。プログラムBの関数1は、アドレス0「0000」に書き込まれた値を処理(図示の例では値の二乗処理)し、処理後の値を戻り値としてアドレス1「0001」に書き込む処理を行う。
FIG. 4 is a diagram illustrating a cooperation example of programs according to the first embodiment. The function A of the program A performs a process of writing the
図4に示したプログラムの連携例によれば、プログラムA,Bは、WRITE関数、READ関数のみで他のプログラムとデータの送受、およびデータ処理依頼を行うことができる。そして、プログラムA,Bは、READについてはアドレス、WRITEについては、アドレスと値の2つの関数だけを用いて処理実行できる。 According to the example of the program linkage shown in FIG. 4, the programs A and B can send / receive data to / from other programs and request data processing with only the WRITE function and the READ function. The programs A and B can be executed using only two functions of an address for READ and an address and value for WRITE.
このように、プログラムA,Bは、仮想メモリインターフェース101を介したデータ送受のルール(アドレスとデータの大きさ、処理の内容)だけを事前に決めておけば、相互のプログラムA,B間のデータのやりとり、および処理依頼の伝達を極めて容易に実現できるようになる。 As described above, if the programs A and B only determine the rules for data transmission / reception via the virtual memory interface 101 (the address, the size of the data, and the contents of the processing) in advance, the programs A and B can interact with each other. Data exchange and transmission of processing requests can be realized very easily.
また、プログラマが実装(作業)するのは、仮想メモリの特定のアドレスにおける読み書きのみとすることができるため、API等の関数の知識や経験は必要なく、結果として習熟したプログラマでなくとも、プログラミングできる環境を構築できるようになる。 In addition, programmers can implement (work) only reading and writing at a specific address in virtual memory, so knowledge and experience of functions such as API are not required, and as a result, programming is not necessary even for a non-skilled programmer. It will be possible to build an environment that can.
(仮想メモリインターフェースを用いた書き込み読み込みのプログラム間伝達について)
次に、上記プログラム連携における書き込み、および読み込みが行われたことを相手のプログラムに伝達するには下記1.〜3.の方法を用いて行う。
1.ポーリングによるデータ変化により相互のプログラム処理を実行する方法
2.イベント処理により相互のプログラム処理を実行する方法
3.ハードウェアを介して相互のプログラム処理を実行する方法(Communication between programs for writing and reading using the virtual memory interface)
Next, in order to transmit to the partner program that the writing and reading in the above-mentioned program cooperation has been performed, the following 1. ~ 3. The method is used.
1. 1. Method for executing mutual program processing by data change by
図5は、実施の形態1にかかるポーリングによるデータ変化により相互のプログラム処理を実行する方法を説明する図である。下記1.〜3.の手順でプログラム処理を実行する。
1.プログラム(アプリケーション)Aがデータを書き換える。
2.プログラム(アプリケーション)Bは、所定のアドレス(アドレス「0000」)のデータが書き換えられているかどうかをポーリング(一定間隔)で読みに行く。
3.そして、プログラム(アプリケーション)Bは、所定のアドレス(アドレス「0000」)のデータが書き換えられていた場合(DATA0→DATA1)には、このデータ(DATA1)を読み込み、所定の処理を実行する。FIG. 5 is a diagram for explaining a method of executing mutual program processing by data change due to polling according to the first embodiment. 1. ~ 3. The program processing is executed according to the procedure.
1. Program (application) A rewrites data.
2. The program (application) B reads at polling (fixed intervals) whether or not data at a predetermined address (address “0000”) has been rewritten.
3. Then, the program (application) B reads the data (DATA1) when the data at the predetermined address (address “0000”) has been rewritten (DATA0 → DATA1), and executes predetermined processing.
図6は、実施の形態1にかかるイベント処理により相互のプログラム処理を実行する方法を説明する図である。下記1.〜4.の手順でプログラム処理を実行する。
1.初期化時に、プログラム(アプリケーション)BがOS601に所定のアドレス「0000」のデータに変化が生じた場合、通知するよう登録する。
2.プログラム(アプリケーション)Aがアドレス「0000」のデータを書き換える(DATA0→DATA1)。
3.OS601がプログラム(アプリケーション)Bにアドレス「0000」の変化を通知する。
4.プログラム(アプリケーション)Bがアドレス「0000」のデータを読み込み、所定のデータ処理を開始する。
以上のように、イベント処理では、全てのデータの書き込み、読み込みはOS601を経由して行う。FIG. 6 is a diagram for explaining a method of executing mutual program processing by event processing according to the first embodiment. 1. ~ 4. The program processing is executed according to the procedure.
1. At the time of initialization, the program (application) B registers to notify the
2. The program (application) A rewrites the data at the address “0000” (DATA0 → DATA1).
3. The
4). The program (application) B reads the data at the address “0000” and starts predetermined data processing.
As described above, in the event processing, all data is written and read via the
図7は、実施の形態1にかかるハードウェアを介して相互のプログラム処理を実行する方法を説明する図である。仮想メモリインターフェース101には、データ領域の他に、データリードと、データライトで起動する関数を登録しておく。下記1.〜3.の手順でプログラム処理を実行する。
1.プログラム(アプリケーション)Aがアドレス「0000」のデータを書き換える(DATA0→DATA1)。
2.CPU701がプログラム(アプリケーション)Aにより書き込まれたアドレス「0000」とデータ(DATA1)から関数(OnWrite0())をコールする。
3.プログラム(アプリケーション)Bは、書き換えられたデータ(DATA1)を読み込んで実行する。FIG. 7 is a diagram for explaining a method for executing mutual program processing via the hardware according to the first embodiment. In the
1. The program (application) A rewrites the data at the address “0000” (DATA0 → DATA1).
2. The
3. The program (application) B reads and executes the rewritten data (DATA1).
図8は、実施の形態1にかかる組み込みソフトウェア開発に用いるプログラミング装置のハードウェア構成例を示すブロック図である。図8において、プログラミング装置800は、制御部(CPU)801と、Read−Only Memory(ROM)802と、Random Access Memory(RAM)803と、を含む。また、半導体メモリやディスクドライブ等の記憶部804と、ディスプレイ808と、通信インターフェース(I/F)809と、キーボード810と、マウス811と、スキャナ812と、プリンタ813とを備えてもよい。これらCPU801〜プリンタ813はバス814によってそれぞれ接続されている。
FIG. 8 is a block diagram of a hardware configuration example of a programming device used for embedded software development according to the first embodiment. In FIG. 8, the
CPU801は、プログラミング装置800によって組み込みソフトウェアを作成する際の全体の制御を司る演算処理装置である。ROM802は、組み込みソフトウェアの作成に必要なプログラムを記憶する不揮発性メモリである。RAM803は、CPU801による演算処理実行時のワークエリアとして使用される揮発性メモリである。
The
通信インターフェース809は、ネットワーク815と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。具体的に、通信インターフェース809は、通信回線を通じてネットワーク815となるLocal Area Network(LAN)、Wide Area Network(WAN)、インターネットなどに接続され、ネットワーク815を介して他の装置に接続される。通信インターフェース809には、例えば、モデムやLANアダプタなどを採用することができる。
A
ディスプレイ808は、組み込みソフトウェア開発のための各種仕様書や設計書、例えば、操作仕様書におけるGUI(Graphical User Interface)の画面設計と、プログラム設計書の設計画面について、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などをデータ表示する装置である。ディスプレイ808には、例えば、Thin Film Transistor(TFT)液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを採用することができる。
The
そして、上記説明した、プログラム(アプリケーション)A,Bの開発において、図8に示したプログラミング装置800を用いて図3に示した事前処理S301を行う。この後、組み込み機器において図3に示した実行処理ステップS304を実行させればよい。
Then, in the development of the programs (applications) A and B described above, the pre-processing S301 shown in FIG. 3 is performed using the
(実装例)
図9は、実施の形態1にかかる組み込み機器への実装例を示す図である。用途が限定された組み込み機器は、所定のメモリにプログラム(アプリケーション)A,Bを格納しておき、プログラム(アプリケーション)A,B間のデータ送受に、OS901が提供する仮想メモリインターフェース101を利用する。なお、不図示であるが、組み込み機器は、これらプログラム(アプリケーション)A,Bと、OS901と、仮想メモリインターフェース101の動作処理を実行する。(Implementation example)
FIG. 9 is a diagram illustrating an example of mounting on an embedded device according to the first embodiment. An embedded device whose use is limited stores programs (applications) A and B in a predetermined memory, and uses the
従来のインターフェースでは、プログラムAからプログラムBのAPIをコールすることでプログラム間の連携を図っていた。この場合、API仕様書の精読が必要であり、適切な関数、因数で対応付けしなければならず、習熟したプログラマによるプログラミングが必要であった。 In the conventional interface, the program A is called by calling the API of the program B so that the programs are linked. In this case, it is necessary to read the API specification carefully, it must be associated with an appropriate function and factor, and programming by a skilled programmer is required.
これに対し、上記実施の形態1によれば、仮想メモリインターフェースを介してプログラム間のデータの送受を行う。組み込みソフトウェアでは、各プログラムを機能別モジュール毎(例えばレコーダであれば録音機能や表示機能毎)に開発を行っている。実施の形態によれば、この際、プログラム間の連携にAPI関数を用いるなど、特別なプログラミングを行う必要がなく、プログラミングの知識がなくても自分が担当する組み込みソフトウェア開発を行うことができるようになる。また、プログラミング言語や、プログラマ間の言語(人種)を問わずに組み込みソフトウェア開発を行うことができる。 On the other hand, according to the first embodiment, data is transmitted / received between programs via the virtual memory interface. In the embedded software, each program is developed for each function module (for example, for each recording function and display function in the case of a recorder). According to the embodiment, at this time, it is not necessary to perform special programming such as using an API function for cooperation between programs, and it is possible to develop embedded software for which the user is responsible without knowledge of programming. become. In addition, embedded software development can be performed regardless of programming language or language (race) between programmers.
これにより、組み込みソフトウェア開発のプログラム品質を向上し、効率化および低コスト化できる。さらに、ソフトウェア開発を統括するスーパープログラマがいなくても組み込みソフトウェア開発を行うことができ、人件費を削減することもできる。 Thereby, the program quality of embedded software development can be improved, and efficiency and cost can be reduced. Furthermore, embedded software development can be performed without a super programmer who supervises software development, and labor costs can be reduced.
また、組み込み機器の試作段階において、プログラム間のデータ送受が明確となり、プログラミング(データ送受)の試行錯誤を簡単かつ容易に行えるため、試作段階での検証作業を効率よく円滑に行えるようになる。 In addition, data transmission / reception between programs becomes clear at the prototype stage of embedded devices, and trial and error of programming (data transmission / reception) can be performed easily and easily, so that verification work at the prototype stage can be performed efficiently and smoothly.
(実施の形態2:GUI開発と制御開発の連携について)
実施の形態2では、組み込みソフトウェア開発における複数のドキュメントの連携について説明する。この連携についても、図8に示したプログラミング装置800を用いて行うことができる。(Embodiment 2: Cooperation between GUI development and control development)
In the second embodiment, cooperation of a plurality of documents in embedded software development will be described. This cooperation can also be performed using the
従来、例えば、操作仕様書におけるGUIの画面設計と、プログラム設計書における制御処理(プログラム記述)とは別工程で行われていたが、実施の形態2では、これら仕様書(例えば、GUI開発)と設計書(例えば、制御開発)のドキュメント相互を分かりやすい形で連携させる。 Conventionally, for example, the GUI screen design in the operation specification and the control processing (program description) in the program design are performed in separate steps, but in the second embodiment, these specifications (for example, GUI development) are performed. And design documents (for example, control development) are linked in an easy-to-understand manner.
図10は、実施の形態2にかかる制御開発を説明する図である。図示のように、実施の形態では、組み込みソフトウェア開発において、従来の制御処理(プログラム記述)を用いず、ルール図を用いて制御の設計を行う。プログラム記述の処理内容を図形の組み合わせからなるルール図1000を用いて表現する。 FIG. 10 is a diagram for explaining control development according to the second embodiment. As illustrated, in the embodiment, in the embedded software development, control is designed using a rule diagram without using conventional control processing (program description). The processing contents of the program description are expressed using a rule diagram 1000 composed of a combination of figures.
ルール図1000では、図10に示すように、制御処理用部品として、条件1001と、アクション1002を用いる。そして、条件1001が合致したときにアクション1002を実行する。条件1001を直列に接続すると論理積(AND)条件を表し、条件1001を並列に接続すると論理和(OR)条件を表すこととする。制御開発時には、これら条件1001とアクション1002とを制御処理手順に沿って系統的に接続してルール図1000を作成する。
In the rule diagram 1000, as shown in FIG. 10, a
図11は、実施の形態2にかかる制御処理の設計画面を説明する図である。ルール図1000を用いた制御処理設計図1100の表示画面右欄には、制御処理用部品一覧1110を表示させる。この制御処理用部品一覧1110には、図10に示した条件1001やアクション1002等を予め配置しておく。
FIG. 11 is a diagram illustrating a design screen for control processing according to the second embodiment. A control
そして、制御処理設計時に必要な項目をこの制御処理用部品一覧1110から選択し、操作(ドラッグアンドドロップ)により、ルール図1000上の適宜の位置に配置する。そして、制御処理用部品(条件1001やアクション1002)の配置後、これら条件1001やアクション1002の内容を設定して、制御動作を決定する。なお、図11の例では、ルール図1000上において、条件1001やアクション1002は、組み込み機器の操作(例えば、開始ボタン1120、停止ボタン1130の操作)に基づき設定される例を示している。
Then, an item required at the time of designing the control process is selected from the control
図12は、実施の形態2にかかるGUI画面設計を説明する図である。図示のように、実施の形態では、組み込みソフトウェア開発において、組み込み機器に多用されるGUIを画面設計図1200を用いて設計する。 FIG. 12 is a diagram for explaining GUI screen design according to the second embodiment. As illustrated, in the embodiment, in embedded software development, a GUI frequently used for an embedded device is designed using a screen design diagram 1200.
画面設計図1200上には、組み込み機器の操作画面の機能を便宜的に簡単に示してあり、例えば、組み込み機器の起動(START)ボタン1201、停止(STOP)ボタン1202、その他の機能ボタン1203のレイアウトを設計、および編集する。
On the screen design diagram 1200, the function of the operation screen of the embedded device is simply shown for convenience. For example, the start (START)
例えば、画面設計図1200の表示画面右欄には、GUI部品一覧1210を表示させる。このGUI部品一覧1210には、起動(START)ボタン1201、停止(STOP)ボタン1202、その他の機能ボタン1203等を予め配置しておく。そして、GUI画面設計時に必要なボタンをこのGUI部品一覧1210から選択し、操作(ドラッグアンドドロップ)により、画面設計図1200上の適宜の位置に配置する。そして、GUI部品の配置後、GUI部品の色や文言(例えば機能別の色や機能を示す文言)を設定してGUI画面を設計する。
For example, a
制御処理の設計時には、図11に示した制御処理設計図1100(ルール図1000)の表示画面を用い、GUIの画面設計時には、図12に示した画面設計図1200の表示画面に切り替える。この際、図11に示した制御処理設計図1100(ルール図1000)上には、図12に示した起動(START)ボタン1201と停止(STOP)ボタン1202とが同一位置に配置される。
When designing the control process, the display screen of the control process design diagram 1100 (rule diagram 1000) shown in FIG. 11 is used, and when the GUI screen is designed, the screen is switched to the display screen of the screen design diagram 1200 shown in FIG. At this time, on the control processing design diagram 1100 (rule diagram 1000) shown in FIG. 11, the start (START)
図13は、実施の形態2にかかる制御処理設計図と画面設計図の重ね合わせ表示を説明する図である。図11に示した制御処理設計図1100の表示画面上に、図12に示した画面設計図1200を重ね合わせて表示させる。例えば、重ね合わせの上に位置する画面設計図1200については半透明表示とすることにより、下に位置する制御処理設計図1100についても視認することができるようになる。これに限らず、これら制御処理設計図1100と、画面設計図1200のいずれかに切り替え表示したり、同一画面上に並列していずれも表示させてもよい。
FIG. 13 is a diagram for explaining a superimposed display of a control process design diagram and a screen design diagram according to the second embodiment. The screen design diagram 1200 shown in FIG. 12 is superimposed on the display screen of the control process design diagram 1100 shown in FIG. For example, the
また、画面表示は、これら2つの制御処理設計図1100と、画面設計図1200に限らず3つ以上のドキュメントの表示画面を重ね合わせたり、切り替えたり、並列表示させることもできる。 Further, the screen display is not limited to the two control processing design diagrams 1100 and the screen design diagram 1200, and the display screens of three or more documents can be overlapped, switched, or displayed in parallel.
いずれの場合においても、制御処理設計図1100と画面設計図1200上で起動(START)ボタン1201の表示(座標)位置は同一位置とする。同様に、制御処理設計図1100と画面設計図1200の停止(STOP)ボタン1202の表示(座標)位置は同一位置とする。これらは、説明の便宜上、組み込み機器の操作画面の機能として、組み込み機器の開始と停止だけを例に説明したが、制御処理およびGUI画面の起点となる他の機能についても、同様に配置することができる。
In any case, the display (coordinates) position of the start (START)
図14は、実施の形態2にかかる制御処理設計図と画面設計図を重ね合わせ一方を半透明にした表示状態を示す図である。この図14の例では、画面設計図1200に対し、制御処理設計図1100を半透明(図では便宜上点線)に表示した状態である。このように、制御処理設計図1100と、画面設計図1200を重ね合わせて表示することにより、GUI画面上の操作と制御処理の連携を直感的に把握できるようになる。そして、この図14の例では、制御処理設計図1100の制御処理を参照しながら、GUIの画面設計図1200を設計することが可能になる。 FIG. 14 is a diagram illustrating a display state in which the control process design diagram and the screen design diagram according to the second embodiment are superimposed and one of them is translucent. In the example of FIG. 14, the control processing design diagram 1100 is displayed in a translucent manner (dotted line in the figure for convenience) with respect to the screen design diagram 1200. In this way, by superimposing and displaying the control process design diagram 1100 and the screen design diagram 1200, it becomes possible to intuitively understand the cooperation between the operation on the GUI screen and the control process. In the example of FIG. 14, it is possible to design the GUI screen design diagram 1200 while referring to the control process of the control process design diagram 1100.
また、図14とは逆に、制御処理設計図1100に対し、画面設計図1200を半透明に表示することにより、GUIの画面設計図1200を参照しながら、制御処理設計図1100の制御処理を設計することが可能になる。 In contrast to FIG. 14, the screen design diagram 1200 is displayed semi-transparently with respect to the control process design diagram 1100, so that the control process of the control process design diagram 1100 can be performed with reference to the GUI screen design diagram 1200. It becomes possible to design.
図15は、実施の形態2にかかる制御処理設計図と画面設計図の重ね合わせ表示のレイアウト変更時の状態を説明する図である。図14に示す画面設計図1200上の起動(START)ボタン1201と停止(STOP)ボタン1202を右へ移動させるレイアウト変更を行った状態を示している。このように、画面設計図1200上のボタン配置を変更した場合、この変更に合わせて制御処理設計図1100(ルール図1000)についても、右に移動させる。
FIG. 15 is a diagram for explaining a state when the layout of the superimposed display of the control process design diagram and the screen design diagram according to the second embodiment is changed. 14 shows a state where the layout has been changed by moving the start (START)
図15の例では、起動(START)ボタン1201を起点とする条件1001およびアクション1002と、停止(STOP)ボタン1202を起点とする条件1001およびアクション1002が互いに重ならないように、ルール図1000全体のレイアウトを変更させている。このレイアウト変更時には、各ボタンや条件、アクション間を繋ぐ線分の接続位置についても変更することにより、ルール図1000を柔軟な形に変更できるようになる。
In the example of FIG. 15, the
図16は、実施の形態2にかかる制御処理とGUI部品との関連付けの処理を示すフローチャートである。制御処理設計図1100が示す制御処理と、画面設計図1200が示すGUI部品との関連付けの処理について説明する。この処理は、プログラミング装置800が実行する。
FIG. 16 is a flowchart of a process of associating a control process and a GUI component according to the second embodiment. The control processing shown in the control processing design diagram 1100 and the processing for associating the GUI components shown in the screen design diagram 1200 will be described. This processing is executed by the
はじめに、プログラミング装置800は、制御処理設計図1100の画面と、GUIの画面設計図1200とを重ね合わせ表示する(ステップS1601)。この後、対応する制御処理設計図1100の制御処理用部品(条件1001、アクション1002)と、画面設計図1200のGUI部品(起動(START)ボタン1201、停止(STOP)ボタン1202)とを選択して関連付けする(ステップS1602)。
First, the
プログラミング装置800は、重ね合わせた制御処理設計図1100の画面と、GUIの画面設計図1200の情報(各部品の座標位置を含む)と、関連付けした制御処理用部品とGUI部品の情報を記憶部804に保持し、記憶部804からの読み込みにより、ディスプレイに表示可能であり、後ほどの編集等も可能である。
The
関連付けの処理は、上記に限らず、画面設計図1200のGUI部品を選択して、このGUI部品に対応する制御処理設計図1100の制御処理用部品を選択し、互いを関連付けしてもよい。 The association process is not limited to the above, and a GUI component in the screen design diagram 1200 may be selected, a control processing component in the control process design diagram 1100 corresponding to this GUI component may be selected, and associated with each other.
図17は、実施の形態2にかかる制御処理設計図と画面設計図の差し換えを説明する図である。図17には、2つのGUIの画面設計図1200a,1200bを一つの制御処理設計図1100に関連付けした状態を示している。この図では、一方の画面設計図1200aの2つのボタン1201a、1202aは、文字が日本語表示され、他方の画面設計図1200bの2つのボタン1201b、1202bは、文字が英語表示される例である。
FIG. 17 is a diagram for explaining replacement of the control process design diagram and the screen design diagram according to the second embodiment. FIG. 17 shows a state in which two GUI
このように、画面設計図1200a,1200bの文字表記が異なるだけの場合、制御処理設計図1100の各制御処理用部品(図示の例では便宜上、アクション1002a,1002bだけを記載)は共通して用いることができる。このような場合、一つの制御処理設計図1100に対し、言語別に複数の画面設計図1200a,1200bを用意しておくことができる。例えば、画面設計図1200aの日本語表記の「ボタンA」(1201a)と、画面設計図1200bの英語表記の「ButtonA」(1201b)は、いずれも、共通の制御処理設計図1100のアクション1002aに接続される。
As described above, when the
プログラミング装置800は、これら2つのGUIの画面設計図1200a,1200bを一つの制御処理設計図1100に関連付けし、この関連付けした状態の情報を組み込み機器に搭載する。組み込み機器では、ユーザの操作により、日本語表記が選択された場合には、図示のように、画面設計図1200aを有効とし、画面設計図1200bを無効とすればよい。英語表記が選択された場合には、画面設計図1200bを有効とし、画面設計図1200aを無効にする。
The
上記構成によれば、一つの制御処理を複数のGUIの画面を切り替えて(差し換えて)設定することができるようになる。上記例ではGUIの言語切り替えを例に説明したが、これに限らず、GUI部品のサイズや文字(フォント)の大きさ、文字の種類、ユーザの嗜好に合わせた各種GUI画面の表示についても、制御処理を共通させ、GUIの画面を切り替える設定とすることができる。 According to the above configuration, one control process can be set by switching (replacing) a plurality of GUI screens. In the above example, GUI language switching has been described as an example. However, the present invention is not limited to this, and the display of various GUI screens according to the size of GUI components, the size of characters (fonts), the types of characters, and user preferences, The control process can be made common and the GUI screen can be switched.
これにより、仕様変更に柔軟に対応でき、例えば、後から異なるGUIを追加したり、変更することが可能となる。また、上記例に限らず、一つのGUI画面を複数の制御処理に切り替えて設定することもできる。 Thereby, it is possible to flexibly cope with specification changes, and for example, it is possible to add or change different GUIs later. In addition to the above example, one GUI screen can be set by switching to a plurality of control processes.
図18は、実施の形態2にかかる複数の設計図間の関連付けを説明する図である。図18には、上記説明した画面設計図1200と制御処理設計図1100の関連付けに加えて、他にI/O設計図やイベント(Event)設計図を加えて相互の関連付けを行う構成としたものである。 FIG. 18 is a diagram for explaining association between a plurality of design drawings according to the second embodiment. In FIG. 18, in addition to the association between the screen design diagram 1200 and the control processing design diagram 1100 described above, an I / O design drawing and an event (Event) design drawing are also added to associate each other. It is.
GUIの画面設計図1200と、制御処理の制御処理設計図1100との関連付けは上述したとおりである。これに加え、物理的入出力のI/O設計図1801と、タスク間信号のEvent設計図1802等、の性質の異なる入力毎に別の表示画面を用いる構成としてもよい。図示の例では、I/O設計図1801の各I/O条件と、Event設計図1802の各イベントは、いずれも制御処理設計図1100のアクション1002に接続される。
The association between the GUI screen design diagram 1200 and the control process design diagram 1100 of the control process is as described above. In addition to this, a different display screen may be used for each input having different properties such as the physical input / output I / O design diagram 1801 and the event design diagram 1802 of the inter-task signal. In the illustrated example, each I / O condition in the I /
(仕様書と設計書の連携の具体例)
図19は、実施の形態2にかかる仕様書と設計書の連携の具体例を示す図である。この図19には、仕様書編集画面1901により上述した画面設計図1200を編集処理(画面上のボタンの表示色編集)し、設計書編集画面1911により上述した制御処理設計図1100を編集処理する例を示してある。(Specific examples of cooperation between specifications and design documents)
FIG. 19 is a diagram illustrating a specific example of cooperation between a specification and a design document according to the second embodiment. In FIG. 19, the screen design diagram 1200 described above is edited by editing the specification editing screen 1901 (display color editing of buttons on the screen), and the control processing design diagram 1100 described above is edited by the design
仕様書編集画面1901上には、画面設定図1902と、表示/操作一覧図1903が配置され、その下部には、表示メッセージ一覧1904と、画面切替スイッチ1905が設けられる。
A screen setting diagram 1902 and a display / operation list diagram 1903 are arranged on the specification
画面設定図1902上には、所望する部品(図示の例では、青色ボタン1906と赤色ボタン1907)を所望する位置に所定の表示色を設定して配置する。表示/操作一覧図1903には、配置した部品(青色ボタン1906、赤色ボタン1907)に対する操作仕様を記載する。例えば、図示のように、条件1908として「青色ボタンを押した」ときの動作1909「青色を表示する」と記載する。赤色についても同様である。
On the screen setting diagram 1902, desired components (
設計書編集画面1911上には、画面設定図1912と、表示/操作一覧図1913が配置され、その下部には、表示メッセージ一覧1914と、画面切替スイッチ1915が設けられる。
A screen setting diagram 1912 and a display / operation list diagram 1913 are arranged on the design
画面設定図1912に配置した部品(青色ボタン「Button_Blue」1906、赤色ボタン「Button_Red」1907)が同じ座標位置に表示される。表示/操作一覧図1913には、配置した部品(青色ボタン1906、赤色ボタン1907)の条件(ボタン操作)に対する動作1917として表示色を記載する。例えば、「青色ボタン1906」の操作時に、プログラム実装に対応した名称を用いて表示色「Button_BlueDisplay」と、プログラム用の関数を記載する。
Parts arranged in the screen setting diagram 1912 (blue button “Button_Blue” 1906, red button “Button_Red” 1907) are displayed at the same coordinate position. Display / operation list FIG. 1913 describes a display color as an
これら仕様書編集画面1901と、設計書編集画面1911は、画面切替スイッチ1905,1915の操作により相互に切り替え可能である。また、切り替えに限らず、上述したように、同一画面上に重ねて表示することもできる。
The
仕様書編集画面1901による編集内容は、取扱説明書(マニュアル)1921、およびテスト仕様書1922に相互変換可能である。また、設計書編集画面1911による編集内容は、デバッグ仕様書1923に相互変換可能である。また、設計書編集画面1911の編集内容に基づきプログラム1924のソースコードを生成できる。
The contents edited on the
図20は、実施の形態2にかかる仕様書情報と設計書情報のデータ関連を示す図である。仕様書編集画面1901と、設計書編集画面1911による編集内容は、プログラミング装置800の記憶部804に逐次格納される。
FIG. 20 is a diagram illustrating a data relationship between the specification information and the design information according to the second embodiment. The contents edited by the
プログラミング装置800は、仕様書編集画面1901の編集による仕様書情報2001として、表示/操作一覧図1903の条件1908の一覧と、各条件1908に対応する動作1909を一覧化し、これら各条件1908と各動作1909との対応付けを設定する。また、設計書編集画面1911の編集による設計書情報2011についても、各条件1916に対応する動作1917を一覧化し、これら各条件1916と各動作1917との対応付けを設定する。
The
仕様書情報2001は、仕様書データベース(DB)2002に格納され、設計書情報2011は、設計書データベース(DB)2012に格納される。これら、仕様書DB2002、および設計書データDB2012の他に、図19に示した各種仕様書はそれぞれデータベース化して、プログラミング装置800の記憶部804に格納される。
The
また、プログラミング装置800は、仕様書情報2001と設計書情報2011についても、関連付けを行う。すなわち、仕様書情報2001の各条件1908と、設計書情報2011の各条件1916とを関連付ける。また、仕様書情報2001の各動作1909と、設計書情報2011の各条件1917とを関連付ける。
The
(部品追加時の処理:ボタンの追加例)
次に、部品(機能)追加時の処理内容を新規にボタンを追加し表示色を設定する例を用いて説明する。プログラミング装置800が行う処理内容を説明する。(Processing when adding a part: Example of adding a button)
Next, processing contents when adding a component (function) will be described using an example in which a button is newly added and a display color is set. Processing contents performed by the
図21〜図25は、実施の形態2にかかる部品追加時の処理を説明する図である。図19に示した部品(青色ボタン1906、赤色ボタン1907)に加えて、新たに他の部品(黄色ボタン2101)を追加する例について説明する。
FIGS. 21 to 25 are diagrams for explaining processing when a component is added according to the second embodiment. An example in which another component (yellow button 2101) is newly added in addition to the components (
図21に示すように、黄色ボタン2101の追加時には、はじめに、(1)部品(黄色のボタン)2101を仕様書編集画面1901の画面設定図1902上の所定位置に配置する。プログラミング装置800は、この配置に対応して、設計書編集画面1911の画面設定図1912上の同じ位置にも部品(黄色のボタン)2101を自動的に配置する。
As shown in FIG. 21, when the
(2)また、プログラミング装置800は、仕様書編集画面1901上では、画面設定図1902上に配置した黄色のボタン2101に対応して、表示/操作一覧図1903に、配置した黄色ボタン2101に対する仕様説明(動作)エリア2102を自動作成する。この際、仕様説明(動作)エリア2102の内容は空欄とされる。
(2) On the
(3)次に、プログラミング装置800は、仕様書編集画面1901の表示/操作一覧図1903に作成した仕様説明(動作)エリア2102に対応して、設計書編集画面1911の表示/操作一覧図1913に仕様説明(動作)エリア2103を自動作成する。この際、仕様説明(動作)エリア2103の内容は空欄とされる。
(3) Next, the
この後、図22に示すように、仕様書編集画面1901の仕様説明(動作)エリア2102と、設計書編集画面1911の仕様説明(動作)エリア2103に、それぞれ仕様を記述する。具体的には、(4)仕様説明(動作)エリア2102には、黄色ボタン2101の仕様として、条件「黄色ボタンを押した」ときに、動作「黄色を表示する」と記述する。また、(5)仕様説明(動作)エリア2103には、処理の関数として「Button_YellowDisplay」を記述する。この際、プログラミング装置800に仕様・関数データベース(DB)2201があれば、これを参照することにより、黄色ボタン2101に対する処理(関数)を自動で設定することもできる。最後に、(6)設計書編集画面1911の画面設定図1912上に配置した部品(黄色のボタン)2101に、黄色のボタンの名前「Button_Yellow」を記述する。
Thereafter, as shown in FIG. 22, specifications are described in a specification explanation (operation)
図21に示した処理に伴い、プログラミング装置800は、図23に示すように、仕様書情報と設計書情報とを関連付けて設定保持する。この図23を用いて、図20に対する追加情報の内容について説明する。(4)仕様書情報2001には、条件一覧1908に条件2301として「黄色ボタンを押した」を追加し、条件一覧1908に対応する動作一覧1909に動作2302として「黄色を表示する」を追加する。
In association with the processing shown in FIG. 21, the
また、(5)設計書情報2011には、動作一覧1917に処理(関数)2303として「Button_YellowDisplay」を追加する。最後に、(6)条件一覧1916に条件2304として黄色ボタンの操作を示す「Button_Yellow::OnClick」を追加する。
Also, (5) “Button_YellowDisplay” is added to the
図22の処理後、図24に示すように、(7)設計書編集画面1911において、部品(黄色のボタン)2101と、対応する処理(関数)2103とを、プログラミング装置800のマウスなどを用いて接続することにより、互いを関連付けする(図中線2401)。
After the processing of FIG. 22, as shown in FIG. 24, (7) In the design
図24に示した操作処理に伴い、プログラミング装置800は、図25に示す設計書情報2011について、(8)条件1916「Button_Yellow::OnClick」と、条件1916に対応する処理(関数)1917「Button_YellowDisplay」とを関連付ける(図中線2501)。また、仕様書情報2001の条件1908「黄色ボタンを押した」と、設計書情報2011の条件1916「Button_Yellow::OnClick」とを関連付ける(図中線2502)。
24, for the
(部品追加時の処理:ソースコードの生成について)
図26は、実施の形態2にかかる追加した部品に対応する処理(関数)のソースコード生成を説明する図である。上記図21〜図25に示す部品追加時の処理後、プログラミング装置800は、(9)追加した部品(黄色のボタン)2101に対応する処理(関数)のソースコードを追加生成し、他のボタンの処理を含めたソースコードからなるプログラム1924を生成する。この際、(10)プログラム1924のソースコード「Button_YellowDisplay」に処理2601「SetPanel(“Yellow”);」を手動にて書き込む。(Processing when adding parts: Generating source code)
FIG. 26 is a diagram for explaining source code generation of processing (function) corresponding to the added component according to the second embodiment. After the processing at the time of component addition shown in FIGS. 21 to 25, the
図27は、実施の形態2にかかる作成した複数のドキュメントあるいはプログラムの仕様変更時の処理を説明する図である。プログラミング装置800は、仕様書編集画面1901と、設計書編集画面1911と、プログラム1924とを、それぞれ関連付けしている。したがって、仕様書編集画面1901、設計書編集画面1911、プログラム1924のいずれかに対し、任意の画面や、任意のコード、任意の部品に対する仕様変更を行うと、プログラミング装置800は、他の画面やコードに対応する部品にその変更を自動で反映させる。
FIG. 27 is a diagram for explaining processing at the time of changing specifications of a plurality of created documents or programs according to the second embodiment. The
通常、ソフトウェアの開発は、(1)仕様書作成(テスト仕様書作成、マニュアル作成)、(2)ソフトウェア設計書作成、(3)ソースコード作成、(4)実機環境でのコンパイル、(5)実機動作、の順で行われる。この開発には、仕様設計者、ソフトウェア設計者、プログラマ、マニュアル開発者、テスト設計者が関わり従事する。 In general, software development involves: (1) Specification creation (test specification creation, manual creation), (2) Software design creation, (3) Source code creation, (4) Compilation in actual machine environment, (5) It is performed in the order of actual machine operation. The development involves specification designers, software designers, programmers, manual developers, and test designers.
実施の形態2のプログラミング装置800は、開発に必要な各ドキュメントを一元管理し、いずれかのドキュメント修正が行われると、関連する他のドキュメントの対応部分を修正する。これにより、ソフトウェア開発に関わる複数の開発者間は常に他のドキュメントの修正を含む開発状況を把握しながら開発することができ、円滑に効率よくソフトウェア開発できるようになる。
The
以上の説明では、部品としてボタンの配置、および操作の条件と動作の設定例を用いて説明したが、ボタンに限らず各種部品、例えば、表示画面として時刻、アラーム、タイマ等についても同様に設定することができる。また、画面設計(GUI)の部品の設定に限らず、UIの設定に関する複数のドキュメントであっても同様に関連付けを行うことができるようになる。 In the above description, the buttons are arranged as components, and the operation conditions and operation setting examples are described. However, not only buttons but also various components, for example, time, alarm, timer, etc. are set as display screens in the same manner. can do. Further, not only the setting of screen design (GUI) components but also a plurality of documents related to the setting of UI can be similarly associated.
実施の形態2によれば、ソフトウェア開発において、GUI開発と、制御開発とを連携させることができ、一方の開発で作成したドキュメントを他方の開発に反映(作成)できるようになる。これにより、GUI開発と制御開発について、それぞれ個別のドキュメントを作成する手間を削減できるようになり、また、上述した開発手順が異なっても(入れ替わっても)開発が可能となる。これにより、ソフトウェア開発の工数とコスト削減が可能となる。 According to the second embodiment, in software development, GUI development and control development can be linked, and a document created in one development can be reflected (created) in the other development. As a result, it is possible to reduce the time and effort required to create individual documents for GUI development and control development, and development is possible even if the development procedures described above are different (changed). This makes it possible to reduce software development man-hours and costs.
そして、実施の形態2は、特定用途の組み込み機器の組み込みソフトウェア開発における各開発工程のドキュメントの連携に適している。これにより、GUI開発と制御開発それぞれで行っていた同様のドキュメント作成にかかる処理を省くことができ、組み込みソフトウェア開発を円滑かつ効率的に行えるようになる。 The second embodiment is suitable for linking documents of each development process in embedded software development of an embedded device for a specific application. As a result, it is possible to omit processing related to document creation that has been performed in GUI development and control development, and to perform embedded software development smoothly and efficiently.
以上のように、本発明は、組み込みソフトウェアおよびその開発に有用であり、特に、用途が限定された特定用途の組み込み機器に組み込まれる組み込みソフトウェアおよびその開発に有用である。 As described above, the present invention is useful for embedded software and the development thereof, and particularly useful for the embedded software incorporated in a specific-use embedded device whose use is limited and the development thereof.
101 仮想メモリインターフェース
800 プログラミング装置
804 記憶部
808 ディスプレイ
809 通信インターフェース
810 キーボード
811 マウス
812 スキャナ
813 プリンタ
814 バス
815 ネットワーク
1001 条件
1002 アクション
1901 仕様書編集画面
1911 設計書編集画面
A,B プログラムDESCRIPTION OF
Claims (5)
組み込み機器が実行処理する組み込みソフトウェアの機能モジュール別の複数のプログラムの第1プログラムと第2プログラムのデータ送受用に、
前記第1プログラムが前記第2プログラムに渡すデータ領域の第1アドレスと、
前記第2プログラムが前記第1プログラムに渡すデータ領域の第2アドレスと、
を前記組み込み機器のOSが提供する仮想メモリインターフェースに設定し、
前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数を設定する、
処理を行い、
前記組み込み機器のCPUは、前記プログラミング装置により設定された、
前記第1プログラムにより、前記第2プログラムに渡すデータを前記仮想メモリインターフェースの前記第1アドレスに書き込み、
前記第2プログラムにより、前記第1アドレスに書き込まれた前記データを読み込み、所定の処理を行った戻り値のデータを前記第2アドレスに書き込み、
前記第1プログラムにより、前記第2アドレスに書き込まれた戻り値の前記データを読み出し、
前記組み込み機器のCPUは、前記第1プログラムによって書き込まれたアドレスとデータに対応する前記第2プログラムの関数をコールし、
前記第2プログラムにより、前記書き込みされたデータを読み出す、
処理を行うことを特徴とする組み込みソフトウェアの開発方法。 Depending on the processor of the programming device,
For data transmission / reception of a first program and a second program of a plurality of programs by function module of the embedded software executed by the embedded device ,
A first address of a data area that the first program passes to the second program;
A second address of a data area that the second program passes to the first program;
Is set in the virtual memory interface provided by the OS of the embedded device ,
The functions of the first program and the second program that are activated by writing and reading data with respect to an address are set in advance in the virtual memory area of the virtual memory interface.
Process
The CPU of the embedded device is set by the programming device,
By the first program, write the data to be passed to the second program to the first address of the virtual memory interface,
By the second program, it reads the data written to the first address, write data of the return value of performing predetermined processing on the second address,
By the first program, for reading the data of the written return value to the second address,
CPU before Symbol embedded devices, the function calls of the second program corresponding to the written address and data by the first program,
The written data is read by the second program.
Development process of embedded software and performs processing.
前記第2プログラムの実行処理による、前記仮想メモリインターフェースの前記第1アドレスに対する前記データの書き込みを一定間隔で監視し、データの書き込みに応じて前記第1アドレスに書き込まれた前記データの読み込みを行う、
ことを特徴とする請求項1に記載の組み込みソフトウェアの開発方法。 The CPU of the embedded device is
The writing of the data to the first address of the virtual memory interface by the execution process of the second program is monitored at regular intervals, and the data written to the first address is read according to the data writing. ,
Developing embedded software according to claim 1, characterized in that.
前記第2プログラムは、前記OSからの通知に応じて前記第1アドレスに書き込まれた前記データの読み込みを行う、
ことを特徴とする請求項1に記載の組み込みソフトウェアの開発方法。 The OS of the embedded device notifies the second program of writing of the data to the first address of the virtual memory interface,
The second program reads the data written to the first address in response to a notification from the OS.
Developing embedded software according to claim 1, characterized in that.
前記組み込み機器が実行処理する機能モジュール別の複数のプログラムの第1プログラムと第2プログラムのデータ送受用に、
前記第1プログラムが前記第2プログラムに渡すデータ領域の第1アドレスと、
前記第2プログラムが前記第1プログラムに渡すデータ領域の第2アドレスと、
を前記組み込み機器のOSが提供する前記仮想メモリインターフェースに設定し、
前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数を設定する、
処理を行う制御部を備えたことを特徴とするプログラミング装置。 In a programming device that develops embedded software for embedded devices ,
For data transmission / reception of a first program and a second program of a plurality of programs for each functional module executed by the embedded device ,
A first address of a data area that the first program passes to the second program;
A second address of a data area that the second program passes to the first program;
Is set in the virtual memory interface provided by the OS of the embedded device ,
The functions of the first program and the second program that are activated by writing and reading data with respect to an address are set in advance in the virtual memory area of the virtual memory interface.
A programming device comprising a control unit for performing processing .
前記仮想メモリインターフェースの仮想メモリ領域に予め、アドレスに対するデータの書き込みおよび読み込みで起動する前記第1プログラムおよび前記第2プログラムの関数の予めの設定に基づき、
前記第1プログラムにより、前記第2プログラムに渡すデータを前記仮想メモリインターフェースの前記第1アドレスに書き込み、
前記第2プログラムにより、前記第1アドレスに書き込まれた前記データを読み込み、所定の処理を行った戻り値のデータを前記第2アドレスに書き込み、
前記第1プログラムにより、前記第2アドレスに書き込まれた戻り値の前記データを読み出し、
前記第1プログラムによって書き込まれたアドレスとデータに対応する前記第2プログラムの関数をコールし、
前記第2プログラムにより、前記書き込みされたデータを読み出す、
処理を行う制御部を備えたことを特徴とする組み込み機器。 A first address of a data area that the first program passes to the second program for sending and receiving data of the first program and the second program of the plurality of programs for each function module of the embedded software, and the second program is the first program A virtual memory interface provided by the OS, in which a second address of a data area to be passed to one program is preset;
Based on the preset settings of the functions of the first program and the second program that are started by writing and reading data to and from the virtual memory area of the virtual memory interface in advance,
The first program writes data to be passed to the second program to the first address of the virtual memory interface,
The second program reads the data written to the first address, writes the data of the return value obtained by performing a predetermined process to the second address,
The first program reads the data of the return value written to the second address,
Calling a function of the second program corresponding to the address and data written by the first program;
The written data is read by the second program.
An embedded device comprising a control unit for processing .
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/071272 WO2015019421A1 (en) | 2013-08-06 | 2013-08-06 | Program development method for embedded software, programming device, and embedded device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2015019421A1 JPWO2015019421A1 (en) | 2017-03-02 |
JP6322631B2 true JP6322631B2 (en) | 2018-05-09 |
Family
ID=52460793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015530586A Active JP6322631B2 (en) | 2013-08-06 | 2013-08-06 | Embedded software development method, programming device and embedded device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6322631B2 (en) |
WO (1) | WO2015019421A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6438381B2 (en) * | 2015-12-14 | 2018-12-12 | 日立オートモティブシステムズ株式会社 | Electronic control unit |
JP7149731B2 (en) * | 2017-08-28 | 2022-10-07 | ハネウェル・インターナショナル・インコーポレーテッド | Systems and methods for using error correction and pipelining techniques for access-triggered computer architectures |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06314208A (en) * | 1993-04-28 | 1994-11-08 | Nippon Telegr & Teleph Corp <Ntt> | Inter-process communication method |
JPH1074149A (en) * | 1996-08-30 | 1998-03-17 | Oki Tsushin Syst Kk | Method for data communication between software |
JP4000718B2 (en) * | 1999-06-24 | 2007-10-31 | 株式会社日立製作所 | Program binding method and distributed processing system |
JP2003173263A (en) * | 2001-09-25 | 2003-06-20 | Ricoh Co Ltd | Interprocess communication function control system |
JP2005250649A (en) * | 2004-03-02 | 2005-09-15 | Nec Corp | Interprocess communication access control system and method |
-
2013
- 2013-08-06 JP JP2015530586A patent/JP6322631B2/en active Active
- 2013-08-06 WO PCT/JP2013/071272 patent/WO2015019421A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2015019421A1 (en) | 2017-03-02 |
WO2015019421A1 (en) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7244176B2 (en) | System and method for simplified graphical display design workflow in process control plants | |
EP3798817B1 (en) | User interface logical and execution view navigation and shifting | |
US8843892B2 (en) | Visual representations of code in application development environments | |
US8339416B2 (en) | Image construction apparatus and computer-readable media | |
US20080005255A1 (en) | Extensible robotic framework and robot modeling | |
US20200272558A1 (en) | Automated layout testing for mobile device applications | |
JP5619328B1 (en) | Sequence program creation support device | |
EP3798759A1 (en) | Preferential automation view curation | |
JP2008276690A (en) | Development system, server for development system, and development method | |
Niermann et al. | Software framework concept with visual programming and digital twin for intuitive process creation with multiple robotic systems | |
JP6322631B2 (en) | Embedded software development method, programming device and embedded device | |
JP4600601B1 (en) | Debug support device, debug support method, and debug support program | |
JP6314141B2 (en) | Document creation method and document creation apparatus for embedded software | |
CN117369811A (en) | Method, device and storage medium for generating monitoring system software interface | |
Gill | Using React Native for mobile software development | |
JP2012168900A (en) | Programming device and program | |
JP2007065914A (en) | Screen generation device and program, and recording medium recording program | |
US20130106863A1 (en) | Program creating apparatus and image control system | |
EP4006715A1 (en) | Creating a native app method and system | |
WO2015136607A1 (en) | Software development assistance system, software development assistance method, and software development assistance program | |
JP2007257327A (en) | Design support device, design support method and design support program | |
Calmez et al. | Explorative authoring of Active Web content in a mobile environment | |
EP3798821B1 (en) | Gui controller design assistance device, remote control system, and program | |
WO2024181125A1 (en) | Analysis device, analysis method, and program | |
US11249732B2 (en) | GUI controller design support device, system for remote control and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180312 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180409 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6322631 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |