(57)【要約】      （修正有）【課題】ソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する場合に、高価な専用機に依存することなく、通常のパソコンを使用して新たなソフトウエアを開発できるようにする。【解決手段】  電子機器２００に対して開発中モジュールを供給可能なパソコン３００と、この電子機器２００とパソコン３００とを接続するシリアルケーブル５とを備え、ＲＯＭ２には、ダウンローダー８Ａ及びランチャー８Ｂが予め追記され、電子機器２００は、開発済みモジュールに基づいてＲＯＭ２に追記されたダウンローダー８Ａを起動してパソコン３００から電子機器２００のＲＡＭ７に開発中モジュールを読み込み、その後、ＲＡＭ７に読み込まれた開発中モジュールをランチャー８Ｂに基づいて起動し、パソコン３００は、電子機器２００で起動された開発中モジュールを開発済みモジュールに含めた新たなソフトウエアを検証するものである。【選択図】図１
2005228149.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、中央演算装置（以下ＣＰＵという）、データ読出専用メモリ（以下ＲＯＭという）及び随時データ書込読出可能なメモリ（以下ＲＡＭという）を有して当該ＲＯＭに既存のソフトウエアが書き込まれたソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発するシステムであって、
前記電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置と、
前記電子機器と前記情報処理装置とを接続する通信手段とを備え、
前記電子機器のＲＯＭには、開発中のソフトウエアを前記ＲＡＭに読み込むための第１のプログラムと、当該ＲＡＭ上に読み込まれたソフトウエアを前記ＣＰＵによって起動するための第２のプログラムとが予め追記され、
前記電子機器は、
前記既存のソフトウエア及び前記ＲＯＭに追記された第１のプログラムを起動して前記情報処理装置から前記通信手段を通じて前記ＲＡＭに開発中のソフトウエアを読み込み、その後、前記ＲＡＭに読み込まれた前記開発中のソフトウエアを前記第２のプログラムに基づいて起動し、
前記情報処理装置は、
前記電子機器で起動された前記開発中のソフトウエアと既存のソフトウエアとを含めた新たなソフトウエアを検証することを特徴とするソフトウエア開発システム。
【請求項２】
前記電子機器のＣＰＵは、
前記既存のソフトウエア及び前記ＲＯＭに追記された第１のプログラムに基づいて前記開発中ソフトウエアの読出し開始アドレスを当該電子機器のＲＡＭ上に設定することを特徴とする請求項１に記載のソフトウエア開発システム。
【請求項３】
前記情報処理装置は、
前記新たなソフトウエアを記憶する記憶装置を備え、
前記情報処理装置は、
前記新たなソフトウエアを検証して修復要又は不要を判別し、
検証結果によって前記新たなソフトウエアが修復不要であると判別した場合に、当該新たなソフトウエアを前記記憶装置に更新保存することを特徴とする請求項１に記載のソフトウエア開発システム。
【請求項４】
前記情報処理装置は、
前記新たなソフトウエアに至る段階のソフトウエアをサンプルソフトウエアとしたとき、
前記サンプルソフトウエアを既存のソフトウエアと開発中のソフトウエアとに分割し、
前記既存のソフトウエアをＲＯＭ化領域に割り付け、
前記開発中のソフトウエアをＲＡＭ領域に割り付け、
修復不要であると判別された前記新たなソフトウエアの内の前記ＲＡＭ領域に割り付けられたソフトウエアをＲＯＭ化領域に移行することを特徴とする請求項１に記載のソフトウエア開発システム。
【請求項５】
少なくとも、中央演算装置（以下ＣＰＵという）、データ読出専用メモリ（以下ＲＯＭという）及び随時データ書込読出可能なメモリ（以下ＲＡＭという）を有して当該ＲＯＭに既存のソフトウエアが書き込まれたソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する方法であって、
前記電子機器のＲＡＭに開発中のソフトウエアを読み込むための第１のプログラムと、当該ＲＡＭ上に読み込まれたソフトウエアを前記ＣＰＵによって起動するための第２のプログラムとを前記ＲＯＭに追記する行程と、
前記ＲＯＭに第１及び第２のプログラムが追記された電子機器と、当該電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置とを通信手段を介して接続する行程と、
前記既存のソフトウエア及び前記ＲＯＭに追記された第１のプログラムを起動して前記情報処理装置から前記電子機器のＲＡＭへ開発中のソフトウエアを読み込む行程と、
前記ＲＡＭに読み込まれた前記開発中のソフトウエアを前記第２のプログラムに基づいて起動する行程と、
前記第２のプログラムに基づいて起動された前記開発中のソフトウエアを既存のソフトウエアに含めた新たなソフトウエアを検証する行程とを有することを特徴とするソフトウエア開発方法。
【請求項６】
前記ＲＡＭに開発中のソフトウエアを最初に読み込む際に、
前記既存のソフトウエア及び前記ＲＯＭに追記された第１のプログラムに基づいて前記開発中ソフトウエアの読出し開始アドレスを当該電子機器のＲＡＭ上に設定することを特徴とする請求項５に記載のソフトウエア開発方法。
【請求項７】
前記新たなソフトウエアを検証して修復要又は不要を判別し、
検証結果によって前記新たなソフトウエアが修復不要であると判別された場合は、当該新たなソフトウエアを前記情報処理装置に保存し更新することを特徴とする請求項５に記載のソフトウエア開発方法。
【請求項８】
前記新たなソフトウエアに至る段階のソフトウエアをサンプルソフトウエアとしたとき、
前記サンプルソフトウエアを既存のソフトウエアと開発中のソフトウエアとに分割し、
前記既存のソフトウエアをＲＯＭ化領域に割り付け、
前記開発中のソフトウエアをＲＡＭ領域に割り付け、
修復不要であると判別された前記新たなソフトウエアの内の前記ＲＡＭ領域に割り付けられたソフトウエアをＲＯＭ化領域に移行することを特徴とする請求項５に記載のソフトウエア開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存のソフトウエアがＲＯＭに書き込まれたソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発するシステムに適用して好適なソフトウエア開発システム及びソフトウエア開発方法に関する。
【０００２】
詳しくは、開発中のソフトウエアの読み込み用の第１のプログラムと、当該ソフトウエアの起動用の第２のプログラムとが予め追記されたＲＯＭを有した電子機器と、この電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置とを通信手段を介して接続するようになされる。電子機器は、既存のソフトウエア及びＲＯＭに追記された第１のプログラムを起動して情報処理装置から電子機器のＲＡＭに開発中のソフトウエアを読み込み、その後、ＲＡＭに読み込まれた開発中のソフトウエアを第２のプログラムに基づいて起動する。
【０００３】
情報処理装置は、電子機器で起動された開発中のソフトウエアを含めた既存のソフトウエアを検証するようになされる。本発明では、既存のソフトウエアを書き込んだＲＯＭと、開発中のソフトウエアを読み込んだＲＡＭとをソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発できるようにすると共に、ソフトウエアの開発期間を従来方式に比べて大幅に短縮できるようにしたものである。
【背景技術】
【０００４】
近年、携帯電話機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ等のソフトウエア組込み型の電子機器が使用される場合が多くなってきた。これらの組込み型の電子機器では多機能化が要求されるが、この多機能化の要求に対処すべくソフトウエアを開発するようになされる。
【０００５】
従来から、組込み型の電子機器のソフトウエア、いわゆるファームウエアを開発する場合には、インサーキットエミュレーター（以下ＩＣＥ装置という）などを使用して開発していた。複数のメンバーでソフトウエアを開発する場合は、各メンバー毎にＩＣＥ装置が準備され、開発の対象となるＣＰＵにＩＣＥ装置が接続され、ファームウエアが開発される。
【０００６】
この種のＩＣＥ装置を使用したソフトウエア開発方法に関連して特許文献１には、磁気ディスク装置等のファイル装置の開発及び計測システムが開示されている。このファイル装置の開発システムによれば、ヘッド位置制御をする新たなマイクロコントローラユニット（以下ＭＣＵという）のファームウエアを開発する場合に、既存のＭＣＵのファイル装置と新たなＭＣＵの開発装置とを接続装置を使用して接続し、ファイル装置から開発装置にヘッド位置情報が出力されると、開発装置は、決定された電流値に基づいてファイル装置のヘッド駆動用のモータ等を駆動し、ファイル装置から出力される値に基づいて次の電流値を決定する。
【０００７】
このように、ファイル装置の動作を監視しながら、開発装置で、次の電流値を決定するシステムを構成すると、既存のファイル装置と、開発装置と、接続装置との連携により、ディスクエンクロージャーの調達、復調回路の製作等、ＭＣＵとは関係のない部分が調達、作成されなくても、新規ＭＣＵのファームウエアを開発できるというものである。
【０００８】
また、従来例によれば、ＩＣＥ装置を使わないソフトウエアの開発方法としては、開発済モジュール及び開発中モジュールをまとめてＲＯＭに書き込むという方法、又は、デバッグモニタ等で開発中のソフトウエアをＲＡＭにダウンロードするという方法がある。前者は、新規プログラム等をＲＯＭ化して検証する方法である。例えば、電子機器にソケットを設け、毎回ライター機器などを用いてフラッシュメモリやＲＯＭなどに書込み、このソケットにフラッシュメモリ等を装着して動作を検証する方法である。後者は、シリアル等の通信インターフェースを用いてプログラムを電子機器のＲＡＭへダウンロードする方法である。
【０００９】
なお、この種のデバッグ装置を使用したソフトウエア開発方法に関連して、特許文献２には、デバックモニタが開示されている。このデバックモニタによれば、ＣＰＵ、ＲＯＭ、ＲＡＭ及びタイマーモジュールを備え、データバスにこれらのＣＰＵ、ＲＯＭ、ＲＡＭ及びタイマーモジュールを接続する。ＣＰＵは、例外処理のデスパッチ機能をソフトウエア的に実行するＲＩＳＣ−ＣＰＵとして構成され、ＲＯＭには、オペレーティングシステムや、モニタのプログラムが格納され、ＲＡＭはデータ領域として使用される。タイマーモジュールは、定期的にタイマー割り込みを発生して、オペレーティングシステムのタスク切り替えや時間管理等に使用される。このようにデバックモニタを構成すると、ファームウエアの例外処理中にも、デバッグ処理ができるというものである。
【００１０】
【特許文献１】特開平  ０８−１９０７７０号公報（第４頁  第１０図）
【特許文献２】特開２００３−２６３３３５号公報（第３頁  第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、従来例に係るソフトウエアの開発方法によれば、次のような問題がある。
【００１２】
ｉ．特許文献１に見られるような開発装置を用いる方法
一般的にＩＣＥ装置は数十万円〜数百万円という具合に高価である。従って、複数のメンバーでソフトウエアを開発する場合は、メンバーの人数分だけＩＣＥ装置等の開発装置が必要となり、開発費のコストアップにつながる。
【００１３】
また、ＩＣＥ装置特有の問題が発生する場合がある。例えば、ＩＣＥ装置を使用すると対象となるソフトウエアが動作しないが、ＩＣＥ装置からＣＰＵ等を外し、実機でＣＰＵを動作させると正常に動作するという現象が発生する場合がある。又は、その逆で、実機では対象となるソフトウエアが動作しないが、ＩＣＥ装置ではＣＰＵが動作するという現象が発生することもある。このように、全てのソフト開発・デバッグをＩＣＥ装置で行うのは、必ずしも適切であるとは言い難い面がある。
【００１４】
ii．開発中のソフトウエアをその都度ＲＯＭ化する方法
この方法は、プログラム等を変更する度に、毎回ＲＯＭに書き込まなければならない。例えば、１回当たり書込み処理に数分単位の時間を要する。従って、プログラムの消去、書込み時間、そして、基板へのＲＯＭの着脱時間等を要してしまう。開発中は、プログラムの変更は毎日数十回〜数百回の作業を必要とするので、これらの作業時間が早期プログラムの開発の妨げとなる。
【００１５】
iii．特許文献２に見られるように、デバッグモニタから対象となるプログラムをダウンロードする方法（シリアル等の通信インターフェースを用いてプログラムをＲＡＭへダウンロードする方法）
この方法は、開発中モジュールを単独で開発するような場合に、アドレス参照の問題により、開発済モジュール内のサブルーチン群、つまり、メインルーチンや、サブルーチンを呼び出すことができず、結局同様のルーチンを開発中モジュール内に準備しなくてはならない。その結果として、開発済モジュール及び開発中モジュールをまとめることになり、大きな容量のＲＡＭが必要になる。
【００１６】
しかも、既存のプログラムを含めたプログラム全体をＲＡＭにダウンロードするためには、ダウンロード時間を多く要することになる。プログラムサイズによっては、ダウンロードに数分から数十分という時間を要する場合がある。
【００１７】
因みに、組み込み系の電子機器によれば、ＲＯＭはプログラムを格納するために大きな容量を搭載するが、ＲＡＭはデータやスタックなどの領域だけのため、比較的容量が少ない場合がある。そのため、大きなプログラムをダウンロードすることが、容量的に不可能となる場合が多くなる。
【００１８】
また、ＳＤＲＡＭなどのハードウエアを初期化する処理などがスタートアップルーチンに含まれていると、ＳＤＲＡＭの初期化処理によってＳＤＲＡＭの内容が予期しない内容に変更されてしまうおそれがある。例えば、スタック等にＳＤＲＡＭを使っている場合、ダウンロードプログラム自身がハングアップするおそれがある。
【００１９】
そこで、この発明はこのような従来の課題を解決したものであって、ソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する場合に、ＩＣＥ装置等の高価な専用機に依存することなく、通常のパソコンを使用して新たなソフトウエアを開発できるようにしたソフトウエア開発システム及びソフトウエア開発方法を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上述した課題は、少なくとも、中央演算装置（以下ＣＰＵという）、データ読出専用メモリ（以下ＲＯＭという）及び随時データ書込読出可能なメモリ（以下ＲＡＭという）を有して当該ＲＯＭに既存のソフトウエアが書き込まれたソフトウエア組み込み型の電子機器に関し新たなソフトウエアを開発するシステムであって、電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置と、これらの電子機器と情報処理装置とを接続する通信手段とを備え、電子機器のＲＯＭには、開発中のソフトウエアをＲＡＭに読み込むための第１のプログラムと、当該ＲＡＭ上に読み込まれたソフトウエアをＣＰＵによって起動するための第２のプログラムとが予め追記され、電子機器は、既存のソフトウエア及びＲＯＭに追記された第１のプログラムを起動して情報処理装置から電子機器のＲＡＭに開発中のソフトウエアを読み込み、その後、ＲＡＭに読み込まれた開発中のソフトウエアを第２のプログラムに基づいて起動し、情報処理装置は、電子機器で起動された開発中のソフトウエアを既存のソフトウエアに含めた新たなソフトウエアを検証することを特徴とするソフトウエア開発システムによって解決される。
【００２１】
本発明に係るソフトウエア開発システムによれば、ソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する場合に、開発中のソフトウエアを電子機器のＲＡＭに読み込むための第１のプログラムと、当該ＲＡＭ上に読み込まれたソフトウエアをＣＰＵによって起動するための第２のプログラムとをそのＲＯＭに予め追記しておくことを前提にして、第１及び第２のプログラムが追記されたＲＯＭを有した電子機器と、この電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置とが通信手段を介して接続される。
【００２２】
その後、電子機器は、既存のソフトウエア及びＲＯＭに追記された第１のプログラムを起動して情報処理装置から電子機器のＲＡＭに開発中のソフトウエアを読み込む。このとき、電子機器のＣＰＵは、例えば、既存のソフトウエア及びＲＯＭに追記された第１のプログラムに基づいて開発中ソフトウエアの読出し開始アドレスを当該電子機器のＲＡＭ上に設定する。その後、ＲＡＭに読み込まれた開発中のソフトウエアを第２のプログラムに基づいて起動する。また、情報処理装置は、電子機器で起動された開発中のソフトウエアに既存のソフトウエアを含めた新たなソフトウエアを検証するようになされる。
【００２３】
従って、既存のソフトウエアを書き込んだＲＯＭと、開発中のソフトウエアを読み込んだＲＡＭとを、ソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発することができる。しかも、再コンパイル、再アセンブル、再リンクを実行しても、既存のソフトウエアを含めて開発中のソフトウエアを毎回ＲＯＭ化する必要が無くなり、低コスト、且つ、迅速に、極力実機に近い状況で効率的に新たなソフトウエア開発・デバッグ処理・動作検証処理等を実行することができる。
【００２４】
本発明に係るソフトウエア開発方法は、少なくとも、ＣＰＵ、ＲＯＭ、ＲＡＭ及びインターフェースを有して当該ＲＯＭに既存のソフトウエアが書き込まれたソフトウエア組み込み型の電子機器に関し新たなソフトウエアを開発する方法であって、電子機器のＲＡＭに開発中のソフトウエアを読み込むための第１のプログラムと、当該ＲＡＭ上に読み込まれたソフトウエアをＣＰＵによって起動するための第２のプログラムとをＲＯＭに追記する行程と、ＲＯＭに第１及び第２のプログラムが追記された電子機器と、当該電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置とを通信手段を介して接続する行程と、既存のソフトウエア及びＲＯＭに追記された第１のプログラムを起動して情報処理装置から電子機器のＲＡＭに開発中のソフトウエアを読み込む行程と、ＲＡＭに読み込まれた開発中のソフトウエアを第２のプログラムに基づいて起動する行程と、第２のプログラムに基づいて起動された開発中のソフトウエアを既存のソフトウエアに含めた新たなソフトウエアを検証する行程とを有することを特徴とするものである。
【００２５】
本発明に係るソフトウエア開発方法によれば、ソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する場合に、既存のソフトウエアを書き込んだＲＯＭと、開発中のソフトウエアを読み込んだＲＡＭとを、ソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発することができる。
【発明の効果】
【００２６】
本発明に係るソフトウエア開発システム及びソフトウエア開発方法によれば、ソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発する場合に、既存のソフトウエア及びＲＯＭに追記された第１のプログラムを起動して情報処理装置から電子機器のインターフェースを通じてＲＡＭに開発中のソフトウエアを読み込み、その後、ＲＡＭに読み込まれた開発中のソフトウエアを第２のプログラムに基づいて起動し、電子機器で起動された開発中のソフトウエアを既存のソフトウエアに含めた新たなソフトウエアを情報処理装置で検証するようになされる。
【００２７】
この構成によって、既存のソフトウエアを書き込んだＲＯＭと、開発中のソフトウエアを読み込んだＲＡＭとを、ソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発することができる。従って、再コンパイル、再アセンブル、再リンクを実行しても、既存のソフトウエアを含めて開発中のソフトウエアを毎回ＲＯＭ化する必要が無くなり、低コスト、且つ、迅速に、極力実機に近い状況で効率的に新たなソフトウエア開発・デバッグ処理・動作検証処理等を実行することができる。また、ＩＣＥ装置等の高価な専用機に依存することなく、通常のパソコンを使用してプログラム等を開発できるようになる。
【発明を実施するための最良の形態】
【００２８】
続いて、この発明に係るソフトウエア開発システム及びソフトウエア開発方法の一実施例について、図面を参照しながら説明をする。
【００２９】
図１は本発明に係る実施例としてのソフトウエア開発システムの構成例を示す概念図である。
この実施例では、開発中のソフトウエアの読込み用のプログラムと、当該ソフトウエアの起動用のプログラムとが予め追記されたＲＯＭを有した電子機器と、この電子機器の既存のソフトウエアに対して開発中のソフトウエアを供給可能な情報処理装置とを通信手段を介して接続するようになされる。
【００３０】
電子機器は、既存のソフトウエア及びＲＯＭに追記された読込み用のプログラムを起動して情報処理装置から電子機器のＲＡＭに開発中のソフトウエアを読み込み、その後、ＲＡＭに読み込まれた開発中のソフトウエアを起動用のプログラムに基づいて起動する。情報処理装置は、電子機器で起動された開発中のソフトウエアを含めた既存のソフトウエアを検証するようになされる。
【００３１】
この例では、既存のソフトウエアを書き込んだＲＯＭと、開発中のソフトウエアを読み込んだＲＡＭとをソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発できるようにすると共に、ソフトウエアの開発期間を従来方式に比べて大幅に短縮できるようにしたものである。
【００３２】
図１に示すソフトウエア開発システム１００は、ソフトウエア組み込み型の電子機器２００に関して新たなプログラム等のソフトウエアを開発するシステムである。電子機器２００は、例えば、携帯電話機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ等の組込み機器全てを想定しており、当該システム１００は、これらの組込み機器全てのソフトウエア開発に適用が可能である。
【００３３】
［電子機器］
これらの電子機器２００は、少なくとも、中央演算装置（Central Processing Unit；以下ＣＰＵという）１、データ読出専用メモリ（Read Only Memory；以下ＲＯＭという）２、シリアルインターフェース（以下シリアルＩ／Ｆという）３、随時データ書込み読出しメモリ（Random Access Memory；以下ＲＡＭという）７及びシステムバス９を有している。このシステムバス９には、ＣＰＵ１、ＲＯＭ２、シリアルＩ／Ｆ３及びＲＡＭ７が接続される。
【００３４】
ＣＰＵ１は、当該電子機器全体をする一般的なものである。ＣＰＵ１は、１６ｂｉｔのＣＰＵでも３２ｂｉｔのＣＰＵであっても、特に性能、種類に限定されるものではない。ＲＯＭ２は、プログラムを格納するものである。ＲＯＭ２には、開発済みの例えば、基本的なソフトウエア（以下開発済みのモジュールという）が既に書き込まれている。ＲＡＭ７には一般的な随時データ書込み読出しメモリが使用される。この例では、ＳＲＡＭ、ＤＲＡＭと言った種別の指定はない。
【００３５】
この例で、ソフトウエア開発システムを構築するに当たり、ＲＯＭ２には、第１のプログラムの一例となるダウンローダー８Ａが格納（追記）される。ダウンローダー８Ａは、開発中のソフトウエアをシリアルＩ／Ｆ３を通じてＲＡＭ７に読み込むための読込み用のプログラムである。ＲＯＭ２には、ダウンローダー８Ａの他に第２のプログラムの一例となるランチャー８Ｂが格納（追記）される。ランチャー８Ｂは、任意のアドレスにジャンプし、ＲＡＭ７上に読み込まれたソフトウエアをＣＰＵ１によって起動するための起動用のプログラムである。ダウンローダー８Ａ及びランチャー８Ｂは、基本的なソフトウエアに最初から組み入れておくことが望ましい。後発的に追加する場合は、ＲＯＭライターを使用して書き込むことで対処する。
【００３６】
シリアルＩ／Ｆ３は通信手段の一例となるシリアルケーブル５に接続される。シリアルケーブル５は、情報処理装置の一例となる汎用のパーソナルコンピュータ（以下パソコンという）３００に接続される。シリアルケーブル５にはＵＳＢ規格の通信ケーブルが使用される。シリアルＩ／Ｆ３には、ＵＳＢ規格の通信インターフェースが使用される。この例では、シリアルインターフェースを使用しているが、特に通信インターフェースの種類や通信プロトコルに限定されるものではない。例えば、ＲＳ２３２Ｃ等のインターフェースを使用するものであってもよい。
【００３７】
電子機器２００は、開発済みのモジュールからＲＯＭ２に追記されたダウンローダー８Ａを起動してパソコン３００から上述のシリアルＩ／Ｆ３を通じてＲＡＭ７に開発中のモジュールを読み込み、その後、ＲＡＭ７に読み込まれた開発中のモジュールをランチャー８Ｂに基づいて起動する。ＣＰＵ１は、開発済みのモジュール及びＲＯＭ２に追記されたダウンローダー８Ａに基づいて開発中ソフトウエアの読出し開始（絶対）アドレスをＲＡＭ７上に設定するようになされる。
【００３８】
［情報処理装置］
上述の電子機器２００に接続されたパソコン３００には、一般的なＷｉｎｄｏｗｓ（登録商標）等のオペレーティングシステム（ＯＳ）が起動できるデスクトップ型や、ノート型等のパーソナルコンピュータが使用される。この例で、パソコン３００は、電子機器２００の開発済みのモジュール（既存のソフトウエア）に対して開発中のソフトウエア（以下開発中のモジュールという）を供給可能なようになされる。情報処理装置には、パソコン３００は、電子機器２００で起動された開発中のモジュールを開発済みのモジュールに含めた新たなソフトウエアを検証するように操作される。
【００３９】
パソコン３００は、制御装置２５、モニタ２６、キーボード２８及びマウス２９を有している。制御装置２５には、ターミナルソフト６やハードディスク２７等が備えられる。制御装置２５は、キーボード２８及びマウス２９の入力操作に基づいて、モニタ２６を表示制御したり、ハードディスク２７へのデータ書き込み制御及びデータ読み出し制御を実行する。
【００４０】
ターミナルソフト６は、制御装置２５で動作するターミナルソフトプログラムである。他のプログラムで代用が可能であれば、ターミナルソフト６に限定されることはなく、例えば、ＸＭＯＤＥＭやＺＭＯＤＥＭと言った、一般的によく知られているバイナリコード転送用のプロトコルを装備しているものであればよい。ＸＭＯＤＥＭは、通信モデム間の無手順通信で利用されるバイナリ転送プロトコルである。この例でバイナリコードが転送できれば、これらの転送プロトコルに特に限定されるものではない。
【００４１】
モニタ２６には、ＣＲＴや液晶表示ディスプレイが使用され、例えば、開発中のモジュールのリストや、新たなソフトウエアの検証結果リスト等を表示するようになされる。キーボード２８又はマウス２９は、開発中のモジュールを電子機器２００に転送する際や、新たなソフトウエアの検証結果を取り込む際に、制御装置２５へその指示を与えるように操作される。
【００４２】
ハードディスク（以下ＨＤＤという）２７は記憶装置の一例であり、新たなソフトウエアを記憶するようになされる。例えば、制御装置２５は、キーボード２８又はマウス２９の入力操作によるオペレータの指示を受けて新たなソフトウエアを検証して修復要又は不要を判別し、検証結果によって新たなソフトウエアが修復不要であると判別した場合に、当該新たなソフトウエアをＨＤＤ２７に更新保存するようになされる。このようにすると、ＨＤＤ２７に保存し更新されたプログラムモジュール等の新たなソフトウエアの開発完成後にＲＯＭに１回だけ書き込めば済むようになる。
【００４３】
図２は、サンプルプログラムの呼出例を示す相関図である。この例では、サンプルプログラムをＲＯＭ化部分とＲＡＭへダウンロードする部分とに規則性を持たせて分割するようになされる。例えば、図１に示したパソコン側又はＣＰＵ１から見たメモリ空間において、新たなソフトウエアに至る段階のソフトウエアをサンプルプログラム（ソフトウエア）ＰＳとし、このサンプルプログラムＰＳを開発済みのモジュールと対象となる開発中のモジュールとに分割する。
【００４４】
以下、これらを開発済みモジュール１７及び開発中モジュール１８としたとき、この開発済みモジュール１７をＲＯＭ化領域２０に割り付け、開発中モジュール１８をＲＡＭ領域２１に割り付けるようになされる。ＲＯＭ化領域２０はＲＯＭ２に対応しており、開発済モジュール１７が格納される。ＲＡＭ領域２１はＲＡＭ７に対応しており、開発中モジュール１８が、シリアルＩ／Ｆ３等を経由してダウンロードされる。
【００４５】
図２に示すサンプルプログラムＰＳは、例えば、パソコン側のＨＤＤ２７等のメモリ空間（領域）において、未使用エリア２２を間に挟んでＲＯＭ化領域２０及びＲＡＭ領域２１に区分される。未使用エリア２２は、特に何もマップされないエリアである。開発済みモジュール１７は、ＲＯＭ化領域２０にマッピング（ＲＯＭ化）され、対象となる開発中のモジュールはＲＡＭ領域２１にマッピングされる。
【００４６】
この例では、ＲＯＭ化領域２０にマッピングされた開発済みモジュール１７及びＲＡＭ領域２１にマッピングされた開発中モジュール１８の呼出方法に規則性を持たせている。なお、開発言語や開発環境は特に指定はない。次に、サンプルプログラムの構成例について説明をする。
【００４７】
開発済みモジュール１７は、開発が既に完了しており、ＲＯＭ化するプログラム群から構成される。この例で、開発済みモジュール１７は、メインルーチン１０及びサブルーチンＡ１１を有している。メインルーチン１０は、サンプルプログラムＰＳのメインルーチンを意味する。この開発済モジュール１７の中には、上述したダウンローダー８Ａ及びランチャー８ＢがＲＯＭ化されている。
【００４８】
この例で、メインルーチン１０は既にＲＯＭ２に格納されており、ＲＯＭ化領域２０にマッピングされていることが前提である。従って、電子機器２００をリセットした後に、必ずこのメインルーチン１０にジャンプするという条件が満たせれば、その他の制約を受けるものではない。
【００４９】
サブルーチンＡ１１は、メインルーチン１０のサブルーチンであり、メインルーチン１０と共に、既にＲＯＭ２に格納されており、ＲＯＭ化領域２０にマッピングされるものである。この例で、ＲＯＭ化領域２０からメインルーチン１０及びサブルーチンＡ１１を除いた部分がＲＯＭ未使用エリア２３となっている。ＲＯＭ未使用エリア２３は、図１に示したＲＯＭ２の未使用エリアである。
【００５０】
また、ＲＡＭ領域２１は、開発中モジュール１８及びＲＡＭ未使用エリア２４を有している。ＲＡＭ未使用エリア２４は、図１に示したＲＡＭ７の未使用エリアである。
【００５１】
開発中モジュール１８は、開発中のプログラム群から構成され、例えば、サブルーチンＢ１２及びサブルーチンＣ１３を有している。サブルーチンＢ１２は、メインルーチン１０又はサブルーチンＡ１１から呼出し（コール）可能な一般的なサブルーチンである。サブルーチンＣ１３はサブルーチンＢ１２から呼出し可能な一般的なサブルーチンである。
【００５２】
この例では、サンプルプログラムＰＳのコール・リターン相互関係の説明上、３つのサブルーチンＡ１１、Ｂ１２、Ｃ１３を例に挙げたが、これらのサブルーチンの数、サイズ及び構成はいずれも任意であり、何らの限定されるものではない。また、図中の点線矢印１４は呼出経路（パス）であり、メインルーチン１０や、それぞれのサブルーチン等が矢印の先のサブルーチンを呼び出せることを意味している。例えば、メインルーチン１０はサブルーチンＢ１２を呼び出すことができる。
【００５３】
このサンプルプログラムＰＳで、例えば、サブルーチンＡ１１は、開発済モジュール１７及び開発中モジュール１８から呼出可能なＲＯＭ化ルーチンである。この例で、サブルーチンＡ１１は、開発済みモジュール１７のプログラム群を読み出すことができる。サブルーチンＡ１１には、開発済モジュール１７及び開発中モジュール１８で共通に使われる入出力処理プログラム等が記述（格納）される。そのため、サブルーチンＢ１２やサブルーチンＣ１３からサブルーチンＡ１１を呼び出すことは可能であるが、その逆であるサブルーチンＡ１１から、サブルーチンＢ１２やサブルーチンＣ１３は呼び出すことはできない構成となっている。
【００５４】
サブルーチンＢ１２は、開発中モジュール１８のエントリーポイントを含むサブルーチンである。エントリーポイントとは、開発中モジュール１８を呼び出すためのＲＡＭ７に設定されたアドレスをいう。このアドレスを開発中モジュール１８の読出し開始ＲＡＭ絶対アドレス１９といい、メインルーチン１０からサブルーチンＢ１２のエントリーポイントへ飛ぶためのアドレスとなる。
【００５５】
例えば、サブルーチンＢ１２は、ＲＯＭ化されたメインルーチン１０から読出し開始ＲＡＭ絶対アドレス１９が指定されて呼出される。この例で、アドレス番地に限定はしないが、どこかの任意のアドレスを決めた後は、開発が完了するまで、基本的に変更しないで当該アドレス１９が固定して使用される。これは、エントリーポイントを変更すると、開発済モジュール１７をＲＯＭ化し直す必要が生じるためである。このアドレスを変更するには、開発済モジュール１７を再アセンブル、もしくは、再コンパイル、再リンクし、ＲＯＭ化し直せばよい。サブルーチンＢ１２からは、開発済みモジュール１７、例えばサブルーチンＡ１１や、開発中モジュール１８、例えばサブルーチンＣ１３を呼び出すことができる。
【００５６】
サブルーチンＣ１３は、開発中モジュール１８のサブルーチンである。サブルーチンＣ１３からは、開発済みモジュール１７、例えばサブルーチンＡ１１や、開発中モジュール１８、例えばサブルーチンＢ１２を呼び出すことが可能である。
【００５７】
図３は、サンプルプログラムＰＳによる処理例を示す図である。図３に示す処理例は、図２に示した呼出例をわかり易くするため、簡単なＣ言語に置き換えたものである。この例ではＣ言語を用いているが、Ｃ言語に限定されるものではない。
【００５８】
図３に示すサンプルプログラムＰＳによる処理例によれば、電子機器２００をリセットした後、ｍａｉｎ関数処理３０を実行し、その後、ＳｕｂＢ関数処理３２を実行する。そしてＳｕｂＡ関数処理３１、ＳｕｂＣ関数処理３３を実行して終了するような内容が記述される。サンプルプログラムＰＳには、スタンダードＩ／Ｏライブラリーを示す「＃ｉｎｃｌｕｄｅ  ＜ｓｔｄｉｏ．ｈ＞」が記述される。この記述領域の下方には、サブルーチンＡ〜Ｃを示す「ｖｉｏｄ  ＳｕｂＡ（ｖｏｉｄ）；ｖｉｏｄ  ＳｕｂＢ（ｖｏｉｄ）；ｖｉｏｄ  ＳｕｂＣ（ｖｏｉｄ）」が記述される。
【００５９】
この記述領域の下方の点線で囲んだ記述領域３４には、開発済モジュール１７における処理内容が記述され、同様に点線で囲んだ記述領域３５には、開発中モジュール１８における処理内容が各々の記述されている。開発済モジュール１７の記述領域３４には、「ｉｎｔ  ｍａｉｎ（ｉｎｔ  ａｒｇｃ，ｃｈａｒ  ＊  ａｒｇｖ［］）」が記述され、続いて、図２に示したメインルーチン１０に対応するｍａｉｎ関数処理３０として、「｛ｐｒｉｎｔｆ（”−−−Ｍａｉｎ  ｒｏｕｔｉｎｅ−−−￥ｎ”）；ＳｕｂＢ（  ）；｝」が記述される。
【００６０】
更に続けて、「ｖｉｏｄ  ＳｕｂＡ（ｖｏｉｄ）」が記述され、その処理内容である図２に示したサブルーチンＡ１１に対応するＳｕｂＡ関数処理３１として、「｛ｐｒｉｎｔｆ（”−−−Ｓｕｂｒｏｕｔｉｎｅ  Ａ−−−￥ｎ”）；ＳｕｂＢ（  ）；｝」が記述される。
【００６１】
また、開発中モジュール１８の記述領域３５には、「ｖｉｏｄ  ＳｕｂＢ（ｖｏｉｄ）」が記述され、その処理内容である図２に示したサブルーチンＢ１２に対応するＳｕｂＢ関数処理３２として、「｛ｐｒｉｎｔｆ（”−−−Ｓｕｂｒｏｕｔｉｎｅ  Ｂ−−−￥ｎ”）；ＳｕｂＡ（  ）；ＳｕｂＣ（  ）；｝」が記述される。
【００６２】
更に続けて、「ｖｉｏｄ  ＳｕｂＣ（ｖｏｉｄ）」が記述され、その処理内容である図２に示したサブルーチンＣ１３に対応するＳｕｂＣ関数処理３３として「｛ｐｒｉｎｔｆ（”−−−Ｓｕｂｒｏｕｔｉｎｅ  Ｃ−−−￥ｎ”）；｝」が記述される。
【００６３】
この例でパソコン３００は、サンプルプログラムＰＳの開発環境に対して、記述領域３４の開発済モジュール１７における処理内容に関しては、ＲＯＭ化するオブジェクトコードとして生成し、記述領域３５の開発中モジュール１８における処理内容に関しては、ＲＡＭ７へダウンロードするオブジェクトコードとして生成するように設定される。このような２つのオブジェクトコードが生成されれば、これらの設定方法については、開発環境に依存し、特に限定されることはない。
【００６４】
図４は、パソコン３００におけるサンプルプログラムＰＳの検証結果格納例を示す図である。
この実施例では、検証の結果、最終的に当該サンプルプログラムＰＳが修復不要であると判別された場合、ソフトウエア開発完成時には、新たなソフトウエアの内のＲＡＭ領域２１に割り付けられたソフトウエアを引き抜いてＲＯＭ化領域２０に移行するようになされる。
【００６５】
図４に示すサンプルプログラムＰＳの検証結果は、パソコン３００のＨＤＤ２７のメモリ領域Ｍａに割り当てられた、所定のＲＯＭ化領域２０に格納され保存される。例えば、図２に示したＲＡＭ７にダウンロードされたサブルーチンＢ１２について、修復要であると判別された後、その修復等がなされ、修復ＯＫと判別された場合に、ＲＡＭ領域２１からサブルーチンＢ１２が引き抜かれてＲＯＭ化領域２０に移行するようになされる。
【００６６】
最終的にＲＡＭ領域２１から全てのサブルーチンＢ１２が引き抜かれてＲＯＭ化領域２０に移行するようになされ、ＲＡＭ領域２１が空き領域となる。このようにすると、ソフトウエア開発完成後に、ＨＤＤ２７に保存し更新されたメインルーチン１０、サブルーチンＡ１１、Ｂ１２、Ｃ１３・・・等から成る新たなソフトウエアをＲＯＭに１回だけ書き込めば、ＲＯＭの原版を作成できるようになる。電子機器に搭載するＲＯＭの大量生産に対処することができる。
【００６７】
続いて、本発明に係るソフトウエア開発方法について説明をする。図５は、ソフトウエア開発システム１００のパソコン３００における情報処理例、図６は、その電子機器２００における情報処理例を各々示すフローチャートである。
【００６８】
この実施例では、少なくとも、ＣＰＵ１、ＲＯＭ２、ＲＡＭ７及びシリアルＩ／Ｆ３を有して当該ＲＯＭ２に開発済モジュール１７が書き込まれたソフトウエア組み込み型の電子機器２００に関して新たなソフトウエアを開発する場合を前提とする。
【００６９】
この例では、開発済モジュール１７と開発中モジュール１８を一緒にリンクするが、結果として開発済モジュール１７の内容は変更されず、開発中モジュール１８だけを更新・ダウンロードする場合を例に挙げ、読み出し終了後、開発中モジュール開始絶対アドレス１９にジャンプする仕組みを提供する。
【００７０】
つまり、このソフトウエア開発システムでは、開発済モジュール１７は基本的に変更できないものとする。これは変更を認めると、再ＲＯＭ化作業が必要となるためである。また、開発済モジュール１７から開発中モジュール１８に対して呼出し可能なのは、開発中モジュール開始絶対アドレス１９へのジャンプのみであるとする。
【００７１】
従って、図２に示した例でサブルーチンＡ１１からサブルーチンＢ１２、サブルーチンＣ１３への呼出しはしない。メインルーチン１０とサブルーチンＡ１１との間、及び、開発中モジュール１８内から、開発済モジュール１７内のサブルーチンへは自由に呼び出し可能である。また、開発中モジュール１８内は自由に相互呼出し可能である。例えば、サブルーチンＢ１２からサブルーチンＣ１３を呼出したり、サブルーチンＣ１３からサブルーチンＢ１２を呼び出すことが可能である。
【００７２】
開発中モジュール１８内では、自由にサブルーチンの追加・削除・変更が可能であるとする。以上の条件に則してソフトウエアを開発し、且つ、電子機器２００のＲＡＭ７に開発中モジュール１８を読み込むためのダウンローダー８Ａ及び当該ＲＡＭ７上に読み込まれたソフトウエアをＣＰＵ１によって起動するためのランチャー８ｂ等のプログラムを用意する。ここで用意されたダウンローダー８Ａと、ランチャー８Ｂとが予めＲＯＭ２に格納されている場合を前提とする。
【００７３】
このようなダウンローダー８Ａ及びランチャー８ＢがＲＯＭ２に格納された電子機器２００と、当該電子機器２００の開発済みモジュール１７に対して開発中モジュール１８を供給可能なパソコン３００とがシリアルケーブル５を使用して接続される場合を例に挙げる。
【００７４】
これらをソフトウエア開発条件にして、まず、パソコン３００では、図５に示すフローチャートのステップＲ１で電源をオンしてＰＣを起動する。この例で、パソコン３００は、開発しているプログラムを、開発済モジュール１７と開発中モジュール１８に分割する。即ち、エディタ等で追加・編集する必要があるサブルーチンを含むものは開発中モジュール１８とする。残りのプログラムは、全て開発済モジュール１７に分類している。
【００７５】
開発済モジュール１７と開発中モジュール１８は全て、一緒にコンパイルもしくはアセンブル、リンクを行うが、開発中モジュール１８と開発済モジュール１７は、それぞれ別のオブジェクトコードになるようにしている。つまり、生成されるオブジェクトコードは、開発中モジュール１８の部分と、開発済モジュール１７の部分の２つに分割される。それぞれのオブジェクトコードは、任意のアドレスにマッピングされるが、マッピングなどの具体的な方法は全て開発環境に依存し、特に限定されるものではない。この例で、２つのオブジェクトコードのうち、開発済モジュール１７のオブジェクトコードをＲＯＭ化する。ＲＯＭ２に書き込む方法には何らの限定を受けないものとする。
【００７６】
また、電子機器２００では、図６に示すフローチャートのステップＳＴ１０で当該電子機器２００の電源をオンしてリセットする。その後、ステップＳＴ１１に移行して開発済モジュール１７に基づく任意の処理を実行する。例えば、電子機器２００は、各種インターフェースの初期化や、アプリケーションのイニシャライズなどを実行する。開発済モジュール１７は、ＲＯＭ２内のメインルーチン及びサブルーチンＡ１１で実行される。
【００７７】
ステップＳＴ１２では、シリアルＩ／Ｆ３を用いて開発中モジュール１８をＲＡＭ７へダウンロードする場合を想定しているので、シリアルＩ／Ｆ３を初期化する。この例では、ＲＡＭ７に開発中モジュール１８を最初に読み込む際に、ＲＯＭ２に追記されたダウンローダー８Ａに基づいて開発中モジュール開始絶対アドレス１９を当該電子機器２００のＲＡＭ７上に設定しエントリーポイントを決定する。
【００７８】
この開発中モジュール開始絶対アドレス１９は任意のアドレスで特に指定はない。エントリーポイントを決定後、当該アドレス２９に対して任意のサブルーチン、即ち、サブルーチンＢ１２に相当するサブルーチンを割り当てる。例えば、ハードウエアリセット後の初期化処理をメインルーチン１０で実行する。もちろん、これに限定されることはない。
【００７９】
この開発中モジュール開始絶対アドレス１９が設定されると、パソコン３００は、図５に示したフローチャートのステップＲ２で開発中モジュール１８を電子機器２００のシリアルＩ／Ｆ３等によるシリアルケーブル５を通じてＲＡＭ７に書き込むようになされる。シリアルケーブル５には、ＲＳ２３２Ｃの通信規格のケーブルが使用されるが、ＵＳＢやＩＥＥＥ１３９４等の通信規格のケーブルであってもよい。
【００８０】
この書込みを受けた電子機器２００は、ステップＳＴ１３でパソコン３００からダウンロードした開発中モジュール１８を当該ＲＡＭ７に読み込まれる。図２に示した例では、サブルーチンＢ１２がＲＡＭ７上に読み出される。ダウロードは、ターミナルソフト６で準備されるＸＭＯＤＥＭ／ＺＭＯＤＥＭ等に基づいて実行する。ターミナルソフト６は、既知のプロトコルでも独自プロトコルでも指定はしない。オブジェクトコード（バイナリコード）がＲＡＭ７へダウロードできれば良い。
【００８１】
その後、電子機器２００は、ステップＳＴ１４に移行して、エントリーポイントへジャンプする。即ち、開発中モジュール開始絶対アドレス１９へジャンプする。そして、エントリーポイントへジャンプした後に、電子機器２００は、ステップＳＴ１５で開発中モジュール１８を実行する。この開発中モジュール１８は、ＲＡＭ７内で実行される。
【００８２】
一方、パソコン３００では、ステップＲ３で開発中モジュール１８を開発済モジュール１７に含めた新たなソフトウエアを検証する。例えば、パソコン３００は、キーボード２８又はマウス２９の入力操作によるオペレータの指示を受けて新たなソフトウエアを検証する。そして、ステップＲ４でパソコン３００はオペレータの指示を受けて新たなソフトウエアが修復要又は不要を判別する。
【００８３】
検証結果によって新たなソフトウエアの修復が必要であると判別された場合は、ステップＲ５に移行して開発中モジュール１８を修復する。この検証結果によって新たなソフトウエアが修復不要であると判別された場合は、ステップＲ６に移行して当該新たなソフトウエアをパソコン３００のＨＤＤ２７等に保存し更新する。
【００８４】
なお、電子機器２００では図６に示したステップＳＴ１６に移行して開発中モジュール１８の実行終了を判断する。例えば、ＣＰＵ１は電源オフ情報を検出してモジュール実行処理を終了する。モジュール実行処理を継続する場合は、ステップＳＴ１３に戻ってその開発中モジュール１８の実行を継続する。
【００８５】
また、パソコン３００では、図５に示したステップＲ７でソフトウエア開発の終了か否かを判断する。この際の判断は、オペレータである。ソフトウエア開発終了の場合は、新たなソフトウエアの検証・修復・保存等の処理を終了する。ソフトウエアの開発が終了していない場合は、ステップＲ２に戻って上述した処理を継続するようになされる。
【００８６】
このように、本発明に係る実施例としてのソフトウエア開発システム及びソフトウエア開発方法によれば、ソフトウエア組み込み型の電子機器２００に関して新たなソフトウエアを開発する場合に、ダウンローダー８Ａ及びランチャー８Ｂ等のプログラムが追記されたＲＯＭ２を有した電子機器２００と、この電子機器２００の開発済モジュール１７に対して開発中モジュール１８を供給可能なパソコン３００とがシリアルケーブル５を介して接続される。
【００８７】
その後、電子機器２００は、開発済モジュール１７に基づいてＲＯＭ２に追記されたダウンローダー８Ａを起動してパソコン３００から電子機器２００のインターフェースを通じてＲＡＭ７に開発中モジュール１８を読み込み、その後、ＲＡＭ７に読み込まれた開発中モジュール１８をランチャー８Ｂに基づいて起動する。また、パソコン３００は、電子機器２００で起動された開発中モジュール１８に開発済モジュール１７を含めた新たなソフトウエアを検証するようになされる。
【００８８】
従って、開発済モジュール１７を書き込んだＲＯＭ２と、開発中モジュール１８を読み込んだＲＡＭ７とを、ソフトウエア開発完成後の新たなＲＯＭに見立てて新たなソフトウエアを開発することができる。この結果、開発途中の試行錯誤の段階のソフトウエアに基づいて一々動作検証のためのＲＯＭ２を実際に作成しないでも済み、ＲＯＭ書き換え時間が不要となる。
【００８９】
しかも、新たなソフトウエアで修復が生じた場合に、従来方式ではＲＯＭの書き換え及び交換作業が必要であったものが、本発明方式では、開発済モジュール１７を書き込んだＲＯＭ２をそのまま利用するので、ＲＡＭ７へのデータ書き換え処理のみで済むようになる。
【００９０】
万が一、開発中モジュール１８のプログラムが暴走しても、ハードウエアリセット後、ステップＳＴ１３から繰り返すことで、いわゆるプログラムのトライ＆エラーが可能となる。また、開発中モジュール１８内のプログラムに修正が発生しても、開発中モジュール開始絶対アドレス１９に変更がない限り、再コンパイル・再アセンブル、再リンクし、ステップＳＴ１３から繰り返すことで変更後のプログラムを動作させることが可能となる。
【００９１】
従って、非常に効率的に開発・デバッグ・検証作業を実行することができ、ソフトウエアの開発期間を従来方式に比べて大幅に短縮することができる。また、ＩＣＥ装置等の高価な専用機に依存することなく、通常のパソコンを使用してプログラム等を開発することができる。
【００９２】
この実施例によれば、現在開発中モジュール１８のみをＲＡＭ７に置くため、ＲＡＭ７の容量が少ない電子機器でも応用が可能となる。しかも、パワーオンリセット、もしくは、任意のタイミングで対象となる開発中モジュール１８のみをシリアルＩ／Ｆ３等を使用してダウンロードするので、必要最低限の開発中モジュール１８を短時間でＲＡＭ７にダウンロードすることができる。
【００９３】
この他に次のような効果がある。この例では、基本的に電子機器２００にシリアルＩ／Ｆ３さえあれば良く、１台数十万〜数百万円というＩＣＥ装置等が不要であり、低コストである。シリアルＩ／Ｆ３は、大抵用意されている場合が多いので、電子機器２００上に特別なインターフェースを準備する必要がない。ＩＣＥ装置を使用しないことから、当然ながらＩＣＥ装置によるトラブルが無い。
【産業上の利用可能性】
【００９４】
本発明は、既存のソフトウエアがＲＯＭに書き込まれたソフトウエア組み込み型の電子機器に関して新たなソフトウエアを開発するシステムに適用して極めて好適である。
【図面の簡単な説明】
【００９５】
【図１】本発明に係る実施例としてのソフトウエア開発システム１００の構成例を示す概念図である。
【図２】サンプルプログラムの呼出例を示す相関図である。
【図３】サンプルプログラムＰＳによる処理例を示す図である。
【図４】パソコン３００におけるサンプルプログラムＰＳの検証結果格納例を示す図である。
【図５】ソフトウエア開発システム１００のパソコン３００における情報処理例を示すフローチャートである。
【図６】その電子機器２００における情報処理例を示すフローチャートである。
【符号の説明】
【００９６】
１・・・ＣＰＵ（中央演算装置）、２・・・ＲＯＭ（データ読出し専用メモリ）、３・・・シリアルＩ／Ｆ、５・・・シリアルケーブル（通信手段）、６・・・ターミナルソフト、８Ａ・・・ダウンローダー（第１のプログラム）、８Ｂ・・・ランチャー（第２のプログラム）、２５・・・制御装置、２７・・・ハードウエアディスク（ＨＤＤ，記憶装置）、１００・・・ソフトウエア開発システム、２００・・・電子機器、３００・・・パソコン（情報処理装置）
【図１】
2005228149.tif 000003
【図２】
2005228149.tif 000004
【図３】
2005228149.tif 000005
【図４】
2005228149.tif 000006
【図５】
2005228149.tif 000007
【図６】
2005228149.tif 000008