(57)【要約】【課題】  複数のモジュールが順次起動するよう構成された組み込み装置において、あるモジュールが起動する時、そのモジュールは、その時点で未起動である次に起動するモジュールのリビジョン番号を知ることができないため、次に起動するモジュールのリビジョン番号に合わせて自身の動作形態を変更することができない。【解決手段】  複数のモジュールのリビジョン番号を保持する外部記憶部が設けられ、各モジュールは起動時に、次に起動するモジュールのリビジョン番号を該外部記憶部から取得し、取得したリビジョン番号が自モジュールのリビジョン番号より小さい場合、次に起動するモジュールのリビジョン番号に対応する動作形態で動作するように自モジュールの内部処理を切り替え、一方、上記取得したリビジョン番号が自モジュールのリビジョン番号以上の場合は、自モジュールの内部処理を切り替えることはせずに、自モジュールのリビジョン番号に従った通常の動作を行う。【選択図】      図１
2014106759.tif 000002
【特許請求の範囲】
【請求項１】
予め定めた順番に順次起動する複数のモジュールと、各前記モジュール内に設けられ自モジュールのリビジョンを示すリビジョン番号を保持する内部記憶部と、前記複数のモジュールの外部に設けられ前記複数のモジュールのリビジョンを示すリビジョン番号を保持する外部記憶部とを備え、
最初に起動する前記モジュールは、起動時に、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替え、
最後に起動する前記モジュールは、起動時に、
直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替え、
最初および最後に起動する前記モジュール以外の各前記モジュールは、起動時に、
直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替えるとともに、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える
ことを特徴とする組み込み装置。
【請求項２】
各前記モジュールにおいて、
前記外部記憶部から取得した自モジュールの前記リビジョン番号と自モジュールの前記内部記憶部に保持されている前記リビジョン番号とが一致しない場合、前記外部記憶部に保持されている自モジュールの前記リビジョン番号を自モジュールの前記内部記憶部に保持されている前記リビジョン番号で書き換えた後、最初に起動する前記モジュールから起動処理を再度行う
ことを特徴とする請求項１記載の組み込み装置。
【請求項３】
各前記モジュールにおいて、
前記外部記憶部から取得した自モジュールの前記リビジョン番号と自モジュールの前記内部記憶部に保持されている前記リビジョン番号とが一致しない場合、前記外部記憶部に保持されている自モジュールの前記リビジョン番号を自モジュールの前記内部記憶部に保持されている前記リビジョン番号で書き換えた後、直前に起動した前記モジュールから起動処理を再度行う
ことを特徴とする請求項１記載の組み込み装置。
【請求項４】
予め定めた順番に順次起動する複数のモジュールと、各前記モジュール内に設けられ自モジュールのリビジョンを示すリビジョン番号を保持する内部記憶部と、前記複数のモジュールの外部に設けられ前記複数のモジュールのリビジョンを示すリビジョン番号を保持する外部記憶部とを備えた組み込み装置の起動方法において、
最初に起動する前記モジュールの起動時に、次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える第１のステップと、
最初および最後に起動する前記モジュール以外の各前記モジュールの起動時に、直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替えるとともに、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える第２のステップと、
最後に起動する前記モジュールの起動時に、直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替える第３のステップと
を含むことを特徴とする組み込み装置起動方法。
【請求項５】
各前記モジュールにおいて、
前記外部記憶部から取得した自モジュールの前記リビジョン番号と自モジュールの前記内部記憶部に保持されている前記リビジョン番号とが一致しない場合、前記外部記憶部に保持されている自モジュールの前記リビジョン番号を自モジュールの前記内部記憶部に保持されている前記リビジョン番号で書き換えた後、最初に起動する前記モジュールから起動処理を再度行う
ことを特徴とする請求項４記載の組み込み装置起動方法。
【請求項６】
各前記モジュールにおいて、
前記外部記憶部から取得した自モジュールの前記リビジョン番号と自モジュールの前記内部記憶部に保持されている前記リビジョン番号とが一致しない場合、前記外部記憶部に保持されている自モジュールの前記リビジョン番号を自モジュールの前記内部記憶部に保持されている前記リビジョン番号で書き換えた後、直前に起動した前記モジュールから起動処理を再度行う
ことを特徴とする請求項４記載の組み込み装置起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数モジュールで構成された組み込み装置および組み込み装置起動方法に関し、特に、複数のモジュールが順次起動されるよう構成された組み込み装置および組み込み装置起動方法。
【背景技術】
【０００２】
様々なシステムに組み込まれ、固有の機能や処理を実行する装置は「組み込み装置」と呼ばれることがある。このような組み込み装置は、該装置を組み込んだシステムの基本的な制御を行うための階層化された複数のモジュールを含む。
【０００３】
図８を参照すると、例えば、組み込み装置２０１が、ＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）２０２、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）２０３、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ  ）プログラム（以下、単に「ＢＩＯＳ」と言う。）２０４およびＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム（以下、単に「ＯＳ」と言う。）２０５の４つのモジュールから構成され、最上位モジュールがＯＳ２０５、その下位モジュールがＢＩＯＳ２０４、その下位モジュールがＦＰＧＡ２０３、その下位モジュールすなわち最下位モジュールがＢＭＣ２０２であるとする。
【０００４】
ここで、ＢＭＣ２０２は組み込み装置全体のハードウェアの動作状態および各部の温度等の監視やハードウェアイベント（電源の入／切等）の記録等を行う。なお、ＦＰＧＡ２０３、ＢＩＯＳ２０４およびＯＳ２０５は一般的によく知られているものであるので、それらについての説明は省略する。
【０００５】
このような構成の組み込み装置に電源が投入された際には、最下位モジュールから順次最上位モジュールまで、すなわち、ＢＭＣ２０２、ＦＰＧＡ２０３、ＢＩＯＳ２０４およびＯＳ２０５の順番に各モジュールが起動される。
【０００６】
また、各モジュールにはリビジョン番号が付与されており、組み込み装置に電源が投入された際には、下位モジュールが起動した後に、その下位モジュールの直上のモジュールにその下位モジュールのリビジョン番号が通知され、直上のモジュールはそのリビジョン番号に適した動作形態で起動し、同様に、当該直上のモジュールの動作形態を示すリビジョン番号をさらに直上のモジュールに通知するという動作を、最上位モジュールが起動するまで繰り返す。
【０００７】
なお、関連技術として、特許文献１には、端末装置とプリンタ装置という互いに独立した装置が接続されたときに、プリンタ装置側のファームウェアを利用者の望む最適なバージョンのものに維持または更新する技術が記載されている。
【０００８】
さらに、関連技術として、特許文献２には、１つの装置を構成する複数の部位に含まれるそれぞれのファームウェアの間に、動作可能なバージョンの依存関係（ある部位のファームウェアが正常に動作するためには、他の部位のファームウェアが特定のバージョンであることが必要であるような関係）がある場合、その依存関係を維持しながら、それぞれのファームウェアを最適なバージョンに更新するための技術が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−１３４４７４号広報
【特許文献２】特開２００９−０８０５５０号広報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、図８に示した組み込み装置では、起動時における各モジュールのリビジョン番号の通知が下位モジュールから上位モジュールへの一方通行であり、下位モジュールが起動する時には、当該モジュールは、その時に未起動である上位モジュールのリビジョン番号を知ることはできない。
【００１１】
すなわち、上位モジュールは下位モジュールのリビジョン番号に合わせて自身の動作形態を変更することができるが、逆に、下位モジュールは上位モジュールのリビジョン番号に合わせて動作形態を変更することができない。そのため、図５において、例えば、古いリビジョン番号のＯＳ２０５を起動したい場合に、その下位のＢＩＯＳ２０４は新しいリビジョン番号の動作形態で起動しているため、不具合が発生する可能性があるという問題点がある。
【００１２】
なお、特許文献１および２のいずれにも、階層化された複数のモジュールを順次起動する構成および動作に相当するものは何ら開示されていない。
【００１３】
本発明の目的は、上述した問題点を解決できる組み込み装置およびその起動方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の組み込み装置は、
予め定めた順番に順次起動する複数のモジュールと、各前記モジュール内に設けられ自モジュールのリビジョンを示すリビジョン番号を保持する内部記憶部と、前記複数のモジュールの外部に設けられ前記複数のモジュールのリビジョンを示すリビジョン番号を保持する外部記憶部とを備え、
最初に起動する前記モジュールは、起動時に、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替え、
最後に起動する前記モジュールは、起動時に、
直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替え、
最初および最後に起動する前記モジュール以外の各前記モジュールは、起動時に、
直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替えるとともに、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える。
【００１５】
また、本発明の組み込み装置起動方法は、
予め定めた順番に順次起動する複数のモジュールと、各前記モジュール内に設けられ自モジュールのリビジョンを示すリビジョン番号を保持する内部記憶部と、前記複数のモジュールの外部に設けられ前記複数のモジュールのリビジョンを示すリビジョン番号を保持する外部記憶部とを備えた組み込み装置の起動方法において、
最初に起動する前記モジュールの起動時に、次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える第１のステップと、
最初および最後に起動する前記モジュール以外の各前記モジュールの起動時に、直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替えるとともに、
次に起動する前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、次に起動する前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、次に起動する前記モジュールとの連携関連の自モジュールの内部処理を切り替える第２のステップと、
最後に起動する前記モジュールの起動時に、直前に起動した前記モジュールの前記リビジョン番号を前記外部記憶部から取得し、取得した前記リビジョン番号が自モジュールの前記内部記憶部に保持されている前記リビジョン番号より小さい場合、直前に起動した前記モジュールの前記リビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、直前に起動した前記モジュールとの連携関連の自モジュールの内部処理を切り替える第３のステップとを含む。
【発明の効果】
【００１６】
本発明には、各モジュールが、自モジュールより後に起動するモジュールのリビジョン番号に合わせて自身の動作形態を変更することができるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の第１の実施形態を示すブロック図である。
【図２】図２は、本発明の第１の実施形態における各モジュールのリビジョン番号および外部記憶部１０６に保持されるリビジョン番号の一例を示す図である。
【図３】図３は、本発明の第１の実施形態におけるＢＭＣ１０２の起動時の動作の概要を示すフローチャートである。
【図４】図４は、本発明の第１の実施形態におけるＦＰＧＡ１０３の起動時の動作の概要を示すフローチャートである。
【図５】図５は、本発明の第１の実施形態におけるＢＩＯＳ１０４の起動時の動作の概要を示すフローチャートである。
【図６】図６は、本発明の第１の実施形態におけるＯＳ１０５の起動時の動作の概要を示すフローチャートである。
【図７】図７は、本発明の第２の実施形態におけるＢＩＯＳ１０４の起動時の動作の概要を示すフローチャートである。
【図８】図８は、階層化された複数モジュールを備えた一般的な組み込み装置の構成の一例を示す図である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１９】
［第１の実施形態］
図１は本発明の第１の実施形態を示すブロック図である。
【００２０】
図１を参照すると、本実施形態に係る組み込み装置１０１は、ＢＭＣ１０２、ＦＰＧＡ１０３、ＢＩＯＳ１０４およびＯＳ１０５の４つのモジュールと、外部記憶部１０６とから構成される。
【００２１】
上記４つのモジュールにおいて、最上位モジュールがＯＳ１０５、その下位モジュールがＢＩＯＳ１０４、その下位モジュールがＦＰＧＡ１０３、その下位モジュールすなわち最下位モジュールがＢＭＣ１０２であるとする。
【００２２】
また、各モジュールの内部記憶部には当該モジュールのリビジョンを示すリビジョン番号が保持されており、各モジュールは自身のリビジョン番号をこの内部記憶部からいつでも参照できる。
【００２３】
なお、リビジョン番号は、当該モジュールが何らかの理由で修正されたタイミングで数が１つ加算されるので、数が大きいほどそのモジュールが新しいということを表す。
【００２４】
さらに、各モジュールは、自身より上位のモジュールに対する動作および自身より下位のモジュールに対する動作を、当該上位のモジュールおよび当該下位のモジュールのリビジョン番号に対応して、それぞれ切り替えることができるように構成される。
【００２５】
すなわち、上位および下位のモジュールのリビジョン番号が自身のリビジョン番号より古い（すなわち、リビジョン番号が小さい）場合、各モジュールは当該上位および下位のモジュールのリビジョン番号に対応して自身の動作を切り替え、上位および下位のモジュールのリビジョン番号が自身のリビジョン番号と同じかまたは新しい（すなわち、リビジョン番号が等しいかまたは大きい）場合、各モジュールは自身の動作を切り替えることはせずに自身のリビジョン番号に従った通常の動作を行う。
【００２６】
例えば、図２を参照すると、ＢＩＯＳ１０４の内部記憶部に保持されているリビジョン番号が「３」であり、後述する外部記憶部１０６に保持されている、ＢＭＣ１０４の上位モジュールであるＯＳ１０５のリビジョン番号が「２」であり、下位モジュールであるＦＰＧＡ１０３のリビジョン番号が「３」である場合、ＢＩＯＳ１０４は下位のＦＰＧＡ１０３と連携して動作するときには、自身はリビジョン番号が「３」であるとして動作するが、上位のＯＳ１０５と連携して動作するときには、自身はＯＳ１０５のリビジョン番号と同じリビジョン番号「２」相当の動作を行う。
【００２７】
もし、上位のＯＳ１０５のリビジョン番号が「３」以上の場合は、ＢＩＯＳ１０４は自身の動作を切り替えることはせずに、自身のリビジョン番号である「３」に従った通常の動作を行う。
【００２８】
外部記憶部１０６は、不揮発性の記憶装置から構成され、ＢＭＣ１０２、ＦＰＧＡ１０３、ＢＩＯＳ１０４およびＯＳ１０５の各モジュールのリビジョンを示すリビジョン番号を保持する。
【００２９】
例えば、図２の場合、外部記憶部１０６には、ＯＳ１０５のリビジョン番号として「２」が、ＢＩＯＳ１０４のリビジョン番号として「３」が、ＦＰＧＡ１０３のリビジョン番号として「３」が、および、ＢＭＣ１０２のリビジョン番号として「３」がそれぞれ保持されている。
【００３０】
次に、本実施形態の動作について、図３、図４、図５および図６のフローチャートを用いて詳細に説明する。
【００３１】
図３は本実施形態におけるＢＭＣ１０２の起動時の動作の概要を示すフローチャート、図４はＦＰＧＡ１０３の起動時の動作の概要を示すフローチャート、図５はＢＩＯＳ１０４の起動時の動作の概要を示すフローチャート、および、図６はＯＳ１０５の起動時の動作の概要を示すフローチャートである。
【００３２】
まず、組み込み装置１０１に電源が投入されると、最下位モジュールから最上位モジュールまで順番に、すなわち、ＢＭＣ１０２、ＦＰＧＡ１０３、ＢＩＯＳ１０４およびＯＳ１０５の順番に、これらのモジュールが順次起動される。
【００３３】
最初に、図３のフローチャートを用いてＢＭＣ１０２の起動時の動作を説明する。
【００３４】
図３を参照すると、ＢＭＣ１０２は、まず、初期処理を実行し（ステップＳ３０１）、次に、外部記憶部１０６から自身の上位のモジュールであるＦＰＧＡ１０３のリビジョン番号を取得する（ステップＳ３０２）。
【００３５】
次に、ＢＭＣ１０２は、ステップＳ３０２で取得したＦＰＧＡ１０３のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ３０３）。
【００３６】
ＦＰＧＡ１０３のリビジョン番号がＢＭＣ１０２のリビジョン番号より小さい場合（ステップＳ３０３でＮＯの場合）、ＢＭＣ１０２は、ＦＰＧＡ１０３のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように自身の内部処理を切り替える（ステップＳ３０４）。その結果、ＢＭＣ１０２はＦＰＧＡ１０３と連携した動作が可能となる。
【００３７】
なお、ステップＳ３０３でＦＰＧＡ１０３のリビジョン番号がＢＭＣ１０２のリビジョン番号以上の場合（ステップＳ３０３でＹＥＳの場合）、ＢＭＣ１０２は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００３８】
以上で、ＢＭＣ１０２は起動時の動作を終了し、ＦＰＧＡ１０３の起動処理に移る。
【００３９】
次に、図４のフローチャートを用いてＦＰＧＡ１０３の起動時の処理を説明する。
【００４０】
図４を参照すると、ＦＰＧＡ１０３は、まず、初期処理を実行し（ステップＳ４０１）、次に、外部記憶部１０６から自身の上位モジュールであるＢＩＯＳ１０４のリビジョン番号と自身の下位モジュールであるＢＭＣ１０２のリビジョン番号とを取得する（ステップＳ４０２）。
【００４１】
次に、ＦＰＧＡ１０３は、ステップＳ４０２で取得したＢＩＯＳ１０４のリビジョン番号情報と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ４０３）。
【００４２】
ＢＩＯＳ１０４のリビジョン番号がＦＰＧＡ１０３のリビジョン番号より小さい場合（ステップＳ４０３でＮＯの場合）、ＦＰＧＡ１０３は、ＢＩＯＳ１０４のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、ＢＩＯＳ１０４との連携関連の自身の内部処理を切り替える（ステップＳ４０４）。その結果、ＦＰＧＡ１０３はＢＩＯＳ１０４と連携した動作が可能となる。
【００４３】
なお、上記ステップＳ４０３でＢＩＯＳ１０４のリビジョン番号がＦＰＧＡ１０３のリビジョン番号以上の場合（ステップＳ４０３でＹＥＳの場合）、ＦＰＧＡ１０３は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００４４】
次に、ＦＰＧＡ１０３は、ステップＳ４０２で取得したＢＭＣ１０２のリビジョン番号情報と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ４０５）。
【００４５】
ＢＭＣ１０２のリビジョン番号がＦＰＧＡ１０３のリビジョン番号より小さい場合（ステップＳ４０５でＮＯの場合）、ＦＰＧＡ１０３は、ＢＭＣ１０２のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、ＢＭＣ１０２との連携関連の自身の内部処理を切り替える（ステップＳ４０６）。その結果、ＦＰＧＡ１０３はＢＭＣ１０２と連携した動作が可能となる。
【００４６】
なお、ステップＳ４０５でＢＭＣ１０２のリビジョン番号がＦＰＧＡ１０３のリビジョン番号以上の場合（ステップＳ４０５でＹＥＳの場合）、ＦＰＧＡ１０３は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００４７】
以上で、ＦＰＧＡ１０３は起動時の動作を終了し、ＢＩＯＳ１０４の起動処理に移る。
【００４８】
次に、図５のフローチャートを用いてＢＩＯＳ１０４の起動時の処理を説明する。
【００４９】
図５を参照すると、ＢＩＯＳ１０４は、まず、初期処理を実行し（ステップＳ５０１）、次に、外部記憶部１０６から自身の上位モジュールであるＯＳ１０５のリビジョン番号と自身の下位モジュールであるＦＰＧＡ１０３のリビジョン番号とを取得する（ステップＳ５０２）。
【００５０】
次に、ＢＩＯＳ１０４は、ステップＳ５０２で取得したＯＳ１０５のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ５０３）。
【００５１】
ＯＳ１０５のリビジョン番号がＢＩＯＳ１０４のリビジョン番号より小さい場合（ステップＳ５０３でＮＯの場合）、ＢＩＯＳ１０４は、ＯＳ１０５のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、ＯＳ１０５との連携関連の自身の内部処理を切り替える（ステップＳ５０４）。その結果、ＢＩＯＳ１０４はＯＳ１０５と連携した動作が可能となる。
【００５２】
例えば、図２を参照すると、外部記憶部１０６に保持されているリビジョン番号によると、ＢＩＯＳ１０４の上位モジュールであるＯＳ１０５のリビジョン番号は「２」であり、ＯＳ１０５のリビジョン番号がＢＩＯＳ１０４の内部記憶部に保持しているリビジョン番号より小さいため、ＢＩＯＳ１０４は、ＯＳ１０５のリビジョン番号「２」と同じリビジョン番号「２」に対応する動作形態で動作するように自身の内部処理を切り替える。このように内部処理を切り替えることにより、以降、ＢＩＯＳ１０４は、上位モジュールのＯＳ１０５と連携して動作できるようになる。
【００５３】
なお、ステップＳ５０３でＯＳ１０５のリビジョン番号がＢＩＯＳ１０４のリビジョン番号以上の場合（ステップＳ５０３でＹＥＳの場合）、ＢＩＯＳ１０４は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００５４】
次に、ＢＩＯＳ１０４は、ステップＳ５０２で取得したＦＰＧＡ１０３のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ５０５）。
【００５５】
ＦＰＧＡ１０３のリビジョン番号が自身のリビジョン番号より小さい場合（ステップＳ５０５でＮＯの場合）、ＢＩＯＳ１０４は、ＦＰＧＡ１０３のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、ＦＰＧＡ１０３との連携関連の自身の内部処理を切り替える（ステップＳ５０６）。その結果、ＢＩＯＳ１０４はＦＰＧＡ１０３と連携した動作が可能となる。
【００５６】
なお、上記ステップＳ５０５でＦＰＧＡ１０３のリビジョン番号がＢＩＯＳ１０４のリビジョン番号以上の場合（ステップＳ５０５でＹＥＳの場合）、ＢＩＯＳ１０４は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００５７】
以上で、ＢＩＯＳ１０４は起動時の動作を終了し、ＯＳ１０５の起動処理に移る。
【００５８】
次に、図６のフローチャートを用いてＯＳ１０５の起動時の処理を説明する。
【００５９】
図６を参照すると、ＯＳ１０５は、まず、初期処理を実行し（ステップＳ６０１）、次に、外部記憶部１０６から自身の下位モジュールであるＢＩＯＳ１０４のリビジョン番号を取得する（ステップＳ６０２）。
【００６０】
次に、ＯＳ１０５は、ステップＳ６０２で取得したＢＩＯＳ１０４のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とを比較する（ステップＳ６０３）。
【００６１】
ＢＩＯＳ１０４のリビジョン番号がＯＳ１０５のリビジョン番号より小さい場合（ステップＳ６０３でＮＯの場合）、ＯＳ１０５は、ＢＩＯＳ１０４のリビジョン番号と同じリビジョン番号に対応する動作形態で動作するように、ＢＩＯＳ１０４との連携関連の自身の内部処理を切り替える（ステップＳ６０４）。その結果、ＯＳ１０５はＢＩＯＳ１０４と連携した動作が可能となる。
【００６２】
なお、上記ステップＳ６０３でＢＩＯＳ１０４のリビジョン番号がＯＳ１０５のリビジョン番号以上の場合（ステップＳ６０３でＹＥＳの場合）、ＯＳ１０５は、自身の内部処理を切り替えることはせず、自身の内部記憶部に保持しているリビジョン番号に従った通常の動作を行う。
【００６３】
以上で、ＯＳ１０５は起動時の動作を終了し、組み込み装置１０１に含まれる各モジュールの起動処理が終了する。
【００６４】
以上、説明したように、本実施形態では、各モジュールが、上位モジュールのリビジョン番号に合わせて自身の動作形態を変更することができるという効果がある。
【００６５】
その理由は、外部記憶部１０６に各モジュールのリビジョン番号が保持され、各モジュールの起動時に、各モジュールが、自身より少なくとも上位のモジュールのリビジョン番号を取得し、自身の内部記憶部に保持しているリビジョン番号と比較することにより、当該上位モジュールとの連携関連の自身の内部処理を、当該上位モジュールのリビジョン番号に従って、切り替えることができるためである。
【００６６】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。
【００６７】
なお、本実施形態についての以下の説明では、第１の実施形態の構成要素および動作と同一のそれらについてはその説明を省略する。
【００６８】
第１の実施形態では、各モジュールが、外部記憶部１０６に保持されているリビジョン番号を取得し、自身の上位および下位モジュールのリビジョン番号により自身の内部処理を切り替えているが、何らかの原因で、上位または下位モジュールの内部記憶部に保持しているリビジョン番号と外部記憶部１０６に保持している当該上位または下位モジュールのリビジョン番号とが異なっている場合、各モジュールは誤った動作をしてしまうという問題がある。
【００６９】
そこで、第２の実施形態では、各モジュールが、その起動時に、外部記憶部１０６に保持されている自身のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とが一致しているか否かを確認し、一致していなかった場合には、自身の内部記憶部に保持しているリビジョン番号に合わせて外部記憶部１０６に保持されているリビジョン番号を書き換える。
【００７０】
本実施形態の構成は、図１に示す第１の実施形態の構成と同様である。
【００７１】
次に、本実施形態の動作について、図７のフローチャートを用いて詳細に説明する。
【００７２】
図７は、ＢＩＯＳ１０４の起動時の動作の概要を示すフローチャートである。
【００７３】
図７を参照すると、第１の実施形態との違いは、ＢＩＯＳ１０４が、外部記憶部１０６から取得した自身のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とを比較し（ステップＳ７０３）、一致していない場合（ステップＳ７０３でＮＯの場合）、外部記憶部１０６から取得した自身のリビジョン番号を自身の内部記憶部に保持しているリビジョン番号で書き換える（ステップＳ７０４）ことにある。
【００７４】
そして、ＢＩＯＳ１０４は、自身が含まれる組み込み装置１０１の再起動処理を行う（ステップＳ７０５）。
【００７５】
再起動した組み込み装置１０１は、電源投入時と同様に、最下位モジュールから順次最上位モジュールまで順番に、すなわち、ＢＭＣ１０２、ＦＰＧＡ１０３、ＢＩＯＳ１０４およびＯＳ１０５の順番に、これらのモジュールが順次起動される。
【００７６】
そして、外部記憶部１０６にはＢＩＯＳ１０４の正しいリビジョン番号が設定されているため、ＢＩＯＳ１０４の下位モジュールであるＦＰＧＡ１０３の起動処理および上位モジュールであるＯＳ１０５の起動処理では、正しい動作が行われることになる。
【００７７】
なお、図７のステップＳ７０６以降の動作は、第１の実施形態の図５のステップＳ５０３以降の動作と同様のため、説明は省略する。
【００７８】
また、ＢＩＯＳ１０４以外の各モジュールにおける第１の実施形態との動作の違いについても、上記ＢＩＯＳ１０４の動作の説明と同様のため、説明は省略する。
【００７９】
以上、説明したように、本実施形態では、何らかの原因で、あるモジュールの内部記憶部に保持しているリビジョン番号と外部記憶部１０６に保持されている当該モジュールのリビジョン番号とが異なっている場合でも、各モジュールに正しい起動処理動作を行わせることができるという効果がある。
【００８０】
その理由は、各モジュールが、その起動時に、外部記憶部１０６に保持されている自身のリビジョン番号と自身の内部記憶部に保持しているリビジョン番号とが一致しているか否かを確認し、不一致の場合には、自身の内部記憶部に保持しているリビジョン番号に合わせて外部記憶部１０６の当該リビジョン番号を書き換えるからである。
【００８１】
［第３の実施形態］
次に、本発明の第３の実施形態について説明する。
【００８２】
なお、本実施形態についての以下の説明では、第１および第２の実施形態の構成要素および動作と同一のそれらについてはその説明を省略する。
【００８３】
本実施形態の構成は、図１に示す第１および第２の実施形態の構成と同様である。
【００８４】
次に、本実施形態の動作について説明する。
【００８５】
まず、各モジュールは、第２の実施形態と同様に、外部記憶部１０６から取得した自身のリビジョン番号が示すリビジョン番号と自信の内部記憶部に保持しているリビジョン番号とを比較し、一致していない場合、外部記憶部１０６から取得した自身のリビジョン番号を自身の内部記憶部に保持しているリビジョン番号で書き換え、自身の直下のモジュールに対し再起動処理を促し、再起動した当該直下のモジュールから順次最上位モジュールまで順番に起動処理が行われる。
【００８６】
ただし、最下位のモジュールであるＢＭＣ１０２で、上述したリビジョン番号の不一致が検出された場合に限っては、ＢＭＣ１０２から順次最上位モジュールまで順番に起動処理が行われる。
【００８７】
以上、本実施形態では、あるモジュールが外部記憶部１０６に保持されている自身のリビジョン番号を書き換えた場合でも、第１および第２の実施形態に比べて、起動処理の時間短縮を図ることができるという効果がある。
【００８８】
その理由は、あるモジュールが外部記憶部１０６に保持されている自身のリビジョン番号を書き換えた場合、当該モジュールの直下のモジュールから起動処理を行うのみで、さらに下位のモジュールの起動処理を行う必要が無いからである。
【符号の説明】
【００８９】
１０１    組み込み装置
１０２    ＢＭＣ
１０３    ＦＰＧＡ
１０４    ＢＩＯＳ
１０５    ＯＳ
１０６    外部記憶部
【図１】
2014106759.tif 000003
【図２】
2014106759.tif 000004
【図３】
2014106759.tif 000005
【図４】
2014106759.tif 000006
【図５】
2014106759.tif 000007
【図６】
2014106759.tif 000008
【図７】
2014106759.tif 000009
【図８】
2014106759.tif 000010