(58)【調査した分野】(Int.Cl.,DB名)
前記外部サポートデバイスの前記少なくとも1つのメモリ要素が初期化されたか否かを判定する工程(230)は、メモリ初期化フラグ(167)が前記外部サポートデバイスにおいてセットされているか否かを検査する、検査工程(230)を備える、請求項2に記載の方法(200)。
デバイス較正が前記MCUデバイスに対して有効にされたか否かを判定する工程(220)は、較正パッケージ信号がセットされたか否かを検査する工程を備える、請求項7に記載の方法(200)。
前記少なくとも1つのメモリ要素が初期化されたか否かを判定するように構成された前記起動初期化コンポーネントは、前記外部サポートデバイスにおいてメモリ初期化フラグがセットされたか否かを検査するように、さらに構成される、請求項11に記載の集積回路デバイス。
【発明を実施するための形態】
【0005】
本発明は、添付の特許請求の範囲に記載されるように、マイクロコントローラユニットの起動中に較正を有効にする方法および集積回路デバイスを提供する。
本発明の具体的な実施形態は従属請求項に記載される。
【0006】
本発明のこれらの態様および他の態様は、以下に記載される実施形態から明らかとなり、それらを参照することによって明瞭になるであろう。
本発明のさらなる詳細、態様、および実施形態を、例としてのみ、図面を参照して記載する。図面において、同様の参照符号は同様のまたは機能的に類似の要素を特定するために使用される。図面の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいない。
【0007】
ここで本発明の例示的な実施形態は、例えば自動車業界において使用されるエンジン制御ユニット(ECU)に、またはECUと結合されて使用されてもよく、かつ本発明の例が特に適用可能であると企図される、マイクロコントローラユニット(MCU)の例を参照して説明する。しかしながら、本発明の例はこのような用途に限定されることなく、同様に、マイクロコントローラユニット(MCU)デバイスの他のいかなる用途における起動中の較正に適用され得ることが理解されるであろう。
【0008】
まず
図1を参照すると、本発明のいくつかの例示的な実施形態に応じて構成されたマイクロコントローラユニット(MCU)デバイス100が例示される。示される例において、MCUデバイス100は集積回路デバイス105において提供されており、中央処理装置(CPU)120という形態として信号処理論理部を備える。CPU120はアプリケーションプログラムコードを実行するように構成されており、従って、命令コード、データなどを記憶するためのデバイスメモリ125と動作可能に結合される。示される例において、デバイスメモリ125は、オンチップフラッシュメモリの形態として不揮発性なソリッドステート記憶部を備える。
【0009】
MCUデバイスの分野において、具体的には自動車ECUの分野において、このようなMCUは、広範囲の条件に渡ってエンジンが最適に動作することを保証するために、例えば自動車ECUの場合、大量のデータに依存することが知られている。従って、示される例において、このようなデータはオンチップフラッシュメモリ125に記憶されてもよい。このようなデータは、例えば自動車ECUの場合、新しいECUが開発されるたびに、または既存のECUが新しいエンジンを制御するなどの必要があるたびに、「調整(チューニング)」される必要があり得る。この調整プロセスは、較正として広く知られている。このような較正を容易にするように、MCUデバイス100はメモリマッピング機能を備えており、示される例において、メモリマッピング機能は、CPU120とデバイスメモリ125との間に動作可能に結合されたマッピング機構130によって実装される。マッピング機構は、ハードウェア内部に、例えばアドレス変換論理部によって実装されてもよい。ソフトウェア実装も可能であるが、そのような実装は、算出のオーバヘッドを増加させる。マッピング機構130は、下記においてさらに詳細に説明するように、デバイスメモリ125の少なくとも一部分に記憶されたデータに、例えば外部サポートデバイス150に記憶された較正データをオーバーレイするように設定可能である。
【0010】
自動車ECUなどの用途において、MCUデバイス100の起動中にこのような較正を行う必要があり得る。さらに、このような起動較正では、MCUデバイス100(または、その任意の部分)は、冷間始動時の挙動を変化させる可能性のある任意の加熱効果を回避するように、起動較正を行う前、例えばECUの「冷間始動較正」の最中に、電源を投入しないことが重要となり得る。
【0011】
加えておよび/または代替えとして、このような起動較正中にMCUデバイス100の動作が通常動作と大きく異ならない必要があり得る。従って、示される例において、MCUデバイス100は、MCUデバイス100の少なくとも一部分を起動時に初期化するように構成される起動初期化コンポーネント110を含む。具体的には、初期化コンポーネント110は、MCUデバイス100が起動されると、MCUデバイス100と動作可能に結合された外部サポートデバイス150の1つまたは複数のメモリ要素155からオーバーレイ初期化データ160を読み取り、MCUデバイス100のマッピング機構130を初期化して、オーバーレイ初期化データ160に応じて、MCUデバイス100のデバイスメモリ125に記憶されたランタイムデータに、外部サポートデバイス150の1つまたは複数のメモリ要素155に記憶された較正データ165をマッピングするように構成される。
【0012】
示される例において、MCUデバイス100は、具体的にはマッピング機構130は、サポートデバイスインタフェース140を通じて外部サポートデバイスと動作可能に結合される。このようなインタフェースは、例えば、外部サポートデバイス150におけるフルレンジのメモリ155を扱うのに十分なアドレスビットを備える従来のアドレスおよびデータのパラレルインタフェースバスを含んでもよい。このようなインタフェースバスのデータ幅は、外部サポートデバイス150におけるメモリ要素155へのCPUアクセスが、デバイスメモリ125へのCPUアクセスと同様のタイミングを備えるよう選択されてもよい。
【0013】
このように、MCUデバイス100の起動に際し、マッピング機構130は、サポートデバイス150における較正データ165をフラッシュデバイスメモリ125のデータにマッピングするよう自動的に設定されることが可能であってもよい。有意には、外部サポートデバイス150における初期化データ160および較正データ165を提供することによって、MCUデバイス100の任意の部分に電源を投入する必要なく、このようなデータが1つまたは複数のメモリ要素155のそれぞれにロードされてもよい。例えば、このようなデータ160、165は、外部サポートデバイス150がMCUデバイス100から切断されたとき、または単にMCUデバイス100の電源が切られたときに、外部サポートデバイス150の1つまたは複数のメモリ要素155にロードされてもよい。次いで、MCUデバイス100の起動前に、外部サポートデバイス150は、較正手順を有効にするように、MCUデバイス100と結合されてもよい。代替えとして、外部サポートデバイス150は、例えば専用の較正システムなどの一部分を形成するが、MCUデバイス100から独立して動力を供給され得る場合、MCUデバイス100と「永続的に」接続されてもよく、MCUデバイスに電源が投入される前に、データ160、165はロードされることが可能になる。このように、MCUデバイス100の冷間始動時の挙動を変化させる可能性のある、通常の起動ルーチン(例えば、較正データのメモリへのロード)以外の、MCUデバイス100の任意の部分に電源を投入することに起因するいかなる加熱効果は、回避されてもよい。このような回避は、較正オーバーレイデータ165などの較正データを、例えば前日に十分前もってメモリにロードさせる必要なく実現することができ、MCUデバイス100は冷間始動較正が必要とされる極度な低温条件に達することが可能となる。
【0014】
明瞭にするために、
図1に示される起動初期化コンポーネント110は、MCUデバイス100の一般的な分離されたコンポーネントとして記載されており、例えばハードウェア状態機械、特定用途向け集積回路(ASIC)、またはプログラム可能マイクロコントローラなどの専用ハードウェアを含む。しかしながら、本発明の例はこのような分離された/専用ハードウェアコンポーネントへの実装に限定されず、例えばCPU120において実行されるソフトウェアによって同等に実装(全体的または部分的に)されてもよい。例えば、起動初期化コンポーネント110は、CPU120が起動時にロードおよび実行するように構成されたブートアシストモジュール(BAM)の一部分を形成してもよい。このように、起動初期化コンポーネント110は、例えば起動初期化コンポーネント110がソフトウェア実装の場合はCPU120上で実行するBAM(図示せず)における関数呼出しの手段によって、またはハードウェア実装の場合はMCUデバイス100のハードウェア初期化手順の一部分として、「アクティブ化」されてもよい。
【0015】
示される例において、マッピング機構130は、デバイスメモリ125の1つまたは複数のメモリの領域に、1つまたは複数の「オーバーレイメモリ」の領域をマッピングまたはオーバーレイするように構成されてもよい。このように、CPU120がアクセス要求(例えば、読み取り要求)を、オーバーレイメモリの領域がマッピングされた、またはオーバーレイされたメモリの領域に割り当てられたデバイスメモリ125へ送信するとき、マッピング機構130は対応するオーバーレイメモリの領域へそのアクセス要求を再び割り当てる。従って、起動初期化コンポーネント110は、MCUデバイス100の起動時に、マッピング機構を設定および/または初期化して、所望の/必要なメモリマッピングを実装するように構成されてもよい。例えば、起動初期化コンポーネント110は、MCUデバイス100と動作可能に結合される外部サポートデバイス150における1つまたは複数のメモリ要素155からオーバーレイ初期化データ160を読み取り、かつMCUデバイス100のマッピング機構130を初期化して、オーバーレイ初期化データ160に応じて、MCUデバイスメモリ125の1つまたは複数のメモリの領域に外部サポートデバイス150における1つまたは複数のメモリ要素155の領域(以降、単に「オーバーレイメモリ」と称する)をマッピングまたはオーバーレイするよう構成されてもよい。オーバーレイ初期化データ160は、外部サポートデバイス150のオーバーレイメモリ155における所定の(例えば、固定の)位置に記憶されてもよい。このように、起動初期化コンポーネント110は、常にオーバーレイメモリ155における同じ位置からオーバーレイ初期化データ160を読み取るように構成され得る。
【0016】
本発明のいくつかの例に応じて、起動初期化コンポーネント110は、オーバーレイメモリ155に記憶されたデータが有効な初期化データ160および/または較正データ165を含むことを保証するために、1つまたは複数の検査を行うように構成されてもよい。例えば、外部サポートデバイス150によって提供されるオーバーレイメモリ155は、データ保存技術の任意の適切な形態を含んでもよい。しかしながら、本発明のいくつかの例に対して、外部サポートデバイス150のオーバーレイメモリ155は、RAM(ランダムアクセスメモリ)または別の形式の揮発性メモリを含んでもよい。このような揮発性メモリは、データの完全性を保つために、記憶されたデータが常にリフレッシュされるか、またはそうでない場合は能動的に維持されるように、継続した電源の供給が必要となり得る。従って、オーバーレイメモリ155が例えばRAMを備える場合、オーバーレイメモリ155から電源が除かれる(例えば、サポートデバイス150の電源が切られる)たびに、電源が復旧する(例えば、サポートデバイス150の電源が再投入される)と、有効データがオーバーレイメモリ155に再ロードされるか、またはそうでない場合はオーバーメモリ155が初期化される必要がある。
【0017】
すなわち、いくつかの例において、起動初期化コンポーネント110は、外部サポートデバイス150のオーバーレイメモリ155が初期化された(例えば、電源投入後に有効データが(再)ロードされた)か否かを判定するように、かつ外部サポートデバイス150のオーバーレイメモリ155が初期化された場合、外部サポートデバイス150のオーバーレイメモリ155からのデータ読み取りのみを行うように構成されてもよい。例えば、外部サポートデバイス150は、例えば電源が投入されるに際し、例えば
図1に示すオーバーレイメモリ155にメモリ初期化フラグ167をセットするか、またはオーバーレイメモリ155が初期化されていないことを示す他のインジケータをセットするように構成されてもよい。較正ツール(一般的に170において例示される)は、次いで、初期化データ160および較正データ165(例えば、較正データ)をオーバーレイメモリ155にロードしてもよく、かつメモリ初期化フラグ167をセットして、オーバーレイメモリ155が初期化されたこと、および有効データを含むことを示してもよい。
【0018】
このように、サポートデバイス150の電源が切られる場合(かつ、これによりオーバーレイメモリ155の任意のデータの完全性が損なわれる場合)、サポートデバイス150の電源が再投入されると、メモリ初期化フラグ167はオーバーレイメモリ155が初期化を要求することを示すように自動的にセットされる。起動初期化コンポーネント110は、次いで、メモリ初期化フラグ167を読み取ることによってオーバーレイメモリ155の状態を判定することができる。オーバーレイメモリ155が初期化されておらず、サポートデバイス150の電源が切られた前にそのデバイスに記憶されていた可能性のあるいかなるデータも失われる場合、起動初期化コンポーネント110は、オーバーレイメモリ155の破損/無作為なデータを分別なく使用して、デバイスメモリ125の領域に、オーバーレイメモリ155に位置する無作為/破損したデータをオーバーレイするマッピング機構を不正確に(かつ害を及ぼす可能性があるように)設定することはしない。代替えとして、1つの例において、オーバーレイメモリ155が初期化されていないと判定されるに際し、起動初期化コンポーネント110は、デバイスメモリ125のメモリマッピングを行わない、あるいは少なくとも、外部サポートデバイス150のオーバーレイメモリ155のメモリの任意の領域をオーバーレイしないように、マッピング機構130を設定するように構成されてもよい。このように、MCUデバイス100は、通常条件の下、起動および実行を行うことができる(例えば、通常の方法において、指示コードを実行し、かつデバイスメモリ125に記憶されたデータにアクセスするCPU120の手段によって)。
【0019】
従って、MCUデバイス100は、MCUデバイス100の動作を有害に損わせるオーバーレイメモリ155の破損/無作為なデータを用いずに起動することができ、これはECUの場合には、エンジンなどに結果的にダメージをもたらす可能性があるともいえる。逆に、オーバーレイメモリ155が初期化され、有効データがオーバーレイメモリ155にロードされた場合、起動初期化コンポーネント110は、外部サポートデバイス150のオーバーレイメモリ155からオーバーレイ初期化データ160を読み取り続けてもよい。起動初期化コンポーネント110は、さらにマッピング機構130を初期化し、外部サポートデバイス150のオーバーレイメモリ155に記憶された較正データ165を、オーバーレイ初期化データ160に応じて、MCUデバイス100のデバイスメモリ125のランタイムデータにマッピングしてもよい。
【0020】
いくつかの例において、外部サポートデバイス150のオーバーレイメモリ155が初期化されたか否かを判定するのに加えて、起動初期化コンポーネント110はさらに、外部サポートデバイス150のオーバーレイメモリ155からオーバーレイ初期化データ160を読み取るに際し、オーバーレイ初期化データ160が有効か否かを判定するよう構成されてもよい。その後、オーバーレイ初期化データ160が有効であると判定された場合のみ、起動初期化コンポーネント110はマッピング機構130を初期化し、外部サポートデバイス150のオーバーレイメモリ155に記憶された較正データ165を、オーバーレイ初期化データ160に応じて、MCUデバイス100のデバイスメモリ125のランタイムデータにマッピングしてもよい。例えば、オーバーレイメモリ155からオーバーレイ初期化データ160を読み取るに際し、起動初期化コンポーネント110は、オーバーレイ初期化データ160のチェックサム算出を行ってそのデータの有効性を検査するように構成されてもよい。
【0021】
加えておよび/または代替えとして、起動初期化コンポーネント110は、オーバーレイ初期化データ160の形式を検査して、オーバーレイ初期化データ160が予測される形式を含むか否かを判定するように構成されてもよい。
【0022】
初期化データの形式を検査する方法の1つの例は、初期化データ配列の有効な開始位置および終了位置を示すように、データ構造の所定の位置において、有効なヘッダ/フッタがあってもよい。さらに、1つの例において、個々のデータコンポーネントが、その有効性を示すようにヘッダデータまたはフッタデータとともに、前または終わりに付されてもよい。
【0023】
このようなオーバーレイ初期化データ160は、一般的に、少容量のデータ(例えば、200バイトよりも小さい)のみを含み得ると予測される。従って、このような検査を行うことは、過度の時間消費または資源の集中にならないであろう。いかなる事象において、このような検査は、外部サポートデバイス150のオーバーレイメモリ155の破損が起こる可能性が高いとみなされる場合のみ、必要と考えられる。
【0024】
オーバーレイ初期化データ160のこのような検査が一度行われ、続いてオーバーレイメモリ155から読み取ったオーバーレイ初期化データ160が有効であると判定される場合、起動初期化コンポーネント110は、次いで、MCUデバイス100のメモリマッピング機構130の初期化/設定を続行し、MCUデバイス100のデバイスメモリ125の少なくとも一部分に記憶されたデータに、オーバーレイ初期化データ160に応じて、外部サポートデバイス150のオーバーレイメモリ155に記憶された較正データ165をオーバーレイしてもよい。
【0025】
多くの場合、起動較正手順の間、較正中のMCUデバイス100の動作は可能な限り通常動作に近いことが重要である。これを実現するため、MCUデバイス100は、製品のMCUデバイスと(ハードウェアおよびソフトウェアの両方に関して)可能な限り類似しているべきである。起動初期化コンポーネント110は、CPU130が起動時にロードおよび実行するよう構成された、ブートアシストモジュール(BAM)の一部分を形成してもよい。このように、起動初期化コンポーネント110は、例えば起動初期化コンポーネント110がソフトウェア実装の場合はCPU130において実行するBAM(図示せず)の関数呼出しにより、「アクティブ化」してもよい。代替えとして、起動初期化コンポーネント110は、ハードウェア実装の場合はMCUデバイス100のハードウェア初期化手順の一部分を形成してもよい。いずれの場合においても、較正起動手順をMCUデバイス100の通常の(製品の)起動手順に近くするために、起動初期化コンポーネント110はMCUデバイス100の製品バージョンにおいて存在してもよく、かつ起動初期化コンポーネント110の「アクティブ化」はMCUデバイス100の通常の起動手順の一部分を形成してもよいことが考慮される。しかしながら、いくつかの例において、MCUデバイス100の通常の(製品の)動作の間、MCUデバイスのデバイスメモリ125に記憶されたデータにおける較正データのオーバーレイは要求されることはなく、オーバーレイ初期化データ160または較正データ165を含むMCUデバイス100と動作可能に結合される外部サポートデバイス150も(一般的に)存在しない。
【0026】
従って、起動初期化コンポーネント100はさらに、デバイス較正がMCUデバイス100に対して有効であるか否かを判定し、かつデバイス較正がMCUデバイス100に対して有効であると判定された場合にのみ、MCUデバイス100と動作可能に結合された外部サポートデバイス150におけるオーバーレイメモリ155から、オーバーレイ初期化データ160の読み取りを続行するよう構成されてもよいことが考慮される。例えば、一般的に180において示される「pkg−config」信号などの、製品のパッケージにパッケージされたか較正パッケージにパッケージングされたかを示す1つまたは複数の信号が、MCUデバイス100で利用可能であってもよいことが考慮される。デバイス較正がMCUデバイス100に対して有効で「ない」と判定された場合、起動初期化コンポーネント110は、MCUデバイス100のマッピング機能130を初期化/設定して、MCUデバイス100のデバイスメモリ125に記憶されたデータに、外部サポートデバイス150のオーバーレイメモリ155に記憶された較正データ165をオーバーレイするための、上述した個々の工程を行わないよう構成されてもよい。
【0027】
多くの場合、起動較正手順の間、較正中のMCUデバイス100の動作は可能な限り通常動作に近いことも重要である。これを実現するため、較正の間、MCUデバイス100は、通常動作中の製品MCUデバイスと(ハードウェアおよびソフトウェアの両方に関して)可能な限り類似しているべきである。従って、いくつかの例において、デバイス較正が有効でないと判定される場合(前の段落でおいて説明されるように)、起動初期化コンポーネント110は、MCUデバイス100のマッピング機能130を初期化/設定して、MCUデバイス100のデバイスメモリ125に記憶されたデータに、外部サポートデバイス150のオーバーレイメモリ155に記憶された較正データ165をオーバーレイするための、上述した個々の工程を行う代わりに、および実質的に等しいタイミングを備える、ヌルルーチンを実行するように構成されてもよい。このように、較正が有効である場合の起動初期化コンポーネント110のパスフローのタイミングは、較正が有効でない場合の起動初期化コンポーネント110のパスフローのタイミングと実質的に一致する。従って、較正中のMCUデバイス100の起動手順全体は、MCUデバイス100の通常の起動手順全体(すなわち、較正が有効でない場合)と(少なくともタイミングに関して)可能な限り、相違しない。
【0028】
いくつかの例において、デバイスの較正が有効の場合、起動初期化コンポーネント110は、MCUデバイス100のマッピング機能130を初期化/設定するための上述した個々の工程を行う代わりに、そのようなヌルルーチンを実行するよう構成されてもよいが、外部サポートデバイス150のデータは有効でないと判定される(例えば、オーバーレイメモリ155が初期化されていないか、または初期化データ160が形式検査のチェックサムを受け渡さない)。このように、起動初期化コンポーネント110のすべてのパスフローのタイミングは、実質的に一致してもよい。
【0029】
また、
図1に示されるように、MCUデバイス100は、動作可能に結合された較正/デバッグツール170などを有効にするための較正/デバッグインタフェース175を備えてもよく、例えば操作されるおよび/またはデバッグログファイルの設定および/またはデータを有効にし、またはアップロードされる他の設定および/またはデータを有効にする。MCUデバイスの起動較正を行う従来の技術に対して、このような較正/デバッグツールは、一般的に、起動中に使用するMCUデバイスのメモリの領域に較正データを設定するように使用される。このような従来の技術の問題点は、このようなデータを設定するために、MCUデバイスの少なくとも一部分に、較正/デバッグツールがデバイスメモリにアクセスできるように電源が投入され、起動手順が開始される前にデータを設定する必要があるか、または較正/デバッグツールが、起動手順を中断してデバイスメモリのデータを設定する必要があるということであり、このような中断は起動手順において十分早いうちに行い、要求される前にデータを確実に設定する必要がある。
【0030】
MCUにおいて較正データを設定するためのこれら2つの従来の技術のうち、1つ目における問題点は、MCUデバイスの一部分に電源を投入する必要があることが、MCUデバイスの冷間状態の挙動を変化させる可能性のある加熱効果の原因となる可能性が高いことである。従って、冷間始動較正に対して、MCUデバイスが後に冷間始動較正にとって必要とされる極度の低温状態に到達できるよう、このような設定が実際の較正より十分前に行われる必要がある。較正を行えるようになることの遅延は、明らかに望ましくない。
【0031】
MCUデバイスにおいて較正データを設定するための上述した2つの従来の技術のうち、2つ目における問題点は、起動手順への中断が、行われた任意の較正の有効性に影響を与え得ることである。従って、このような技術が起動較正に適さないことは明らかである。
【0032】
図1に示される本発明の例において、外部サポートデバイス150に提供されるオーバーレイメモリ155に較正データを提供することによって、較正データはMCUデバイス100と独立して設定されてもよく、それにより実質的にMCUデバイスに電源を投入するいかなる必要性をも回避し、従っていかなる潜在的な加熱効果をも回避するか、または少なくとも削減する。さらに、起動初期化コンポーネント110を、MCUデバイス100のマッピング機能130が自動的に外部サポートデバイス150における較正データ165を、オーバーレイメモリに提供される初期化データに応じて、MCUデバイスメモリ125にオーバーレイするよう構成することによって、いかなる較正/デバッグツール170も起動中にMCUデバイスに接続される必要がない。このように、通常(製品)起動手順の一部ではない冷間始動較正手順の前または最中のMCUデバイス100との望ましくない相互作用は、実質的に回避されてもよい。
【0033】
ここで
図2を参照すると、例えば
図1の起動初期化コンポーネント110によって実装され得るような、マイクロコントローラユニット(MCU)デバイスの起動中の較正を有効にする方法の簡略化したフローチャート200の例が示される。本方法は工程210において開始され、工程220に移動して、示される例においてはここでデバイス較正がMCUデバイスに対して有効にされるか(否か)を判定する。例えば、工程220は、
図1のpkg_config180などの較正パッケージ信号がセットされるか否かを検査することを含んでもよい。デバイス較正が工程220において有効にされると判定される場合、本方法は工程230へ移動して、示される例においてはここで、
図1に示すオーバーレイメモリ155などの外部サポートデバイスにおけるメモリの領域が初期化されたか(否か)を判定する。例えば、外部サポートデバイスにおいてメモリの領域が初期化されたか(否か)を判定する工程は、
図1のメモリ初期化フラグ167などのメモリ初期化フラグが外部サポートデバイスにおいてセットされたが否かを検査することを含んでもよい。外部サポートデバイスにおいてメモリの領域が工程230で初期化されたと判定された場合、本方法は工程240に移動して、ここで外部サポートデバイスにおいてメモリの領域からオーバーレイ初期化データが読み取られる。オーバーレイ初期化データが読み取られると、
図1で示す方法は工程250に移動して、ここで例えばチェックサム算出および/または読み取られたデータの形式検査を行うことによって、オーバーレイ初期化データが有効か(否か)を判定する。工程250においてオーバーレイ初期化データが有効であると判定された場合、本方法は工程260に移動して、ここで
図1に示されるメモリマッピング機構130などのメモリマッピング機能は、外部サポートデバイスのメモリに記憶された較正データを、事前に読み取られたオーバーレイ初期化データに応じて、MCUデバイスのデバイスメモリのランタイムデータへマッピングするように初期化/設定される。本方法はその後、工程270において終了する。
【0034】
工程220および工程230では、較正が有効にされないと判定されるか(工程220)、または外部デバイスにおけるメモリの領域が初期化されていないと判定される場合(工程230)、本方法は工程280および工程290に移動して、ここでオーバーレイ初期化データを読み取りかつ認証する工程240および250(工程280)およびマッピング機能を初期化/設定する工程260(工程290)と実質的に等しいタイミングで、およびこれらの工程の代わりに、ヌルルーチンが実行される。加えて、示される例において、工程250においてオーバーレイ初期化データが有効でないと判定される場合、本方法は工程290に移動して、ここでマッピング機能を初期化/設定する工程260と実質的に等しいタイミングで、およびこの工程の代わりに、ヌルルーチンが実行される。本方法はその後、工程270において終了する。
【0035】
図3を参照すると、本発明のさらなる態様のいくつかの実施形態に応じた、マイクロコントローラユニット(MCU)デバイスの起動中に較正を有効にする方法の簡略化されたフローチャート300の例が示される。
図3の方法は工程310において開始され、工程320に移動して、ここで較正データおよびオーバーレイ初期化データが、
図1の外部サポートデバイス150などの外部サポートデバイスの少なくとも1つのメモリ要素にロードされる。次いで、工程330においてメモリ初期化フラグが外部サポートデバイスにおいてセットされる。本方法はさらに、工程340において、外部サポートデバイスをMCUデバイスと動作可能に結合することを含んでおり、MCUデバイスは、MCUデバイスの起動時に、外部サポートデバイスの少なくとも1つのメモリ要素から読み取ることができるようになる。本方法はその後工程350に移動して、ここで較正有効信号がMCUデバイスにおいてセットされ、本方法は工程360において終了する。
【0036】
示される例において、外部サポートデバイスのメモリにデータをロードし、かつメモリ初期化フラグのセットを行う工程320、330が、外部サポートデバイスをMCUデバイスと動作可能に結合する前に行われるように図示され、かつ、説明されたが、その一方で外部サポートデバイスのメモリにデータをロードし、かつメモリ初期化フラグのセットを行う工程320、330の前に、外部サポートデバイスが、同様に、MCUデバイスと動作可能に結合(少なくとも、物理的または機械的に)されてもよいことが理解されるであろう。同様に、MCUデバイスにおいて較正有効信号をセットさせる工程は、
図3の方法の示される例の他の工程320〜340に関して、最後に行われることに限定され得ないことが理解されるであろう。
【0037】
本発明の例示される実施形態は、大部分について、当業者に既知の電子コンポーネントおよび回路を使用して実装され得るため、本発明の基礎となる概念の理解および評価のために、ならびに本発明の教示を分かりにくくせず当該教示から注意を逸らさせないように、詳細は上記で例示されているような必要と考えられる範囲を超えては説明されない。
【0038】
本発明は、全体としてまたは部分的に、少なくとも、コンピュータ処理ユニット(CPU)などのプログラム可能装置において実行されるときに本発明による方法の工程を実行するか、または、プログラム可能装置が本発明によるデバイスもしくはシステムの機能を実行することを可能にするためのコード部分を含む、コンピュータシステムにおいて実行させるためのコンピュータプログラムに実装されることもできる。
【0039】
コンピュータプログラムは、特定のアプリケーションプログラムおよび/またはオペレーティングシステムなどの、命令のリストである。コンピュータプログラムは例えば、サブルーチン、関数、プロシージャ、オブジェクトメソッド、オブジェクト実装、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ/動的ロードライブラリ、および/または、コンピュータシステムにおいて実行のために設計される他の一連の命令のうちの1つまたは複数を含むことができる。
【0040】
コンピュータプログラムはコンピュータ可読記憶媒体に内部的に記憶されるか、またはコンピュータ可読伝送媒体を介してコンピュータシステムに送信されることができる。コンピュータプログラムのすべてまたはいくつかは、情報処理システムに永続的に、取り外し可能に、または遠隔的に結合されるコンピュータ可読媒体において提供されることができる。コンピュータ可読媒体は例えば、限定されることなく、いくつか例を挙げると、ディスクおよびテープ記憶媒体を含む磁気記憶媒体、コンパクトディスク媒体(例えば、CD−ROM、CD−Rなど)およびデジタルビデオディスク記憶媒体を含む光学記憶媒体、フラッシュメモリ、EEPROM、EPROM、ROMなどの半導体ベースのメモリユニットを含む不揮発性メモリ記憶媒体、強磁性デジタルメモリ、MRAM、レジスタ、バッファまたはキャッシュ、メインメモリ、RAMなどを含む揮発性記憶媒体、ならびにコンピュータネットワーク、ポイントツーポイント通信機器、および搬送波伝送媒体を含むデータ伝送媒体のうちの任意の数を含むことができる。
【0041】
コンピュータプロセスは通常、実行している(作動している)プログラムまたはプログラムの一部分、現在のプログラム値および状態情報、ならびにプロセスの実行を管理するようにオペレーティングシステムによって使用されるリソースを含む。オペレーティングシステム(OS)は、コンピュータのリソースの共有を管理するとともにプログラマにこれらのリソースにアクセスするために使用されるインタフェースを提供するソフトウェアである。オペレーティングシステムは、システムデータおよびユーザ入力を処理して、タスクおよび内部システムリソースをシステムのユーザおよびプログラムに対するサービスとして配分および管理することによって応答する。
【0042】
コンピュータシステムは例えば、少なくとも1つの処理装置、関連付けられるメモリ、および多数の入出力(I/O)デバイスを含むことができる。コンピュータプログラムを実行するとき、コンピュータシステムはコンピュータプログラムに応じて情報を処理して、結果としての出力情報をI/Oデバイスを介して生成する。
【0043】
上記の明細書において、本発明が本発明の実施形態の具体例を参照して説明された。しかしながら、添付の特許請求の範囲に記載されている本発明のより広い精神および範囲から逸脱することなく、そこにさまざまな修正および変更を行うことができることは明らかであろう。
【0044】
例えば、本明細書において記載される集積回路デバイス105は、ガリウムヒ素、シリコンゲルマニウム、シリコン・オン・インシュレータ(SOI)、シリコン、単結晶シリコンなど、および上記の組み合わせなどの、任意の半導体材料または材料の組み合わせの半導体基板を備えていてもよい。
【0045】
本明細書において説明される接続は、例えば中間のデバイスを介してそれぞれのノード、ユニットまたデバイスから、またはそれらへと信号を転送するのに適切な任意のタイプの接続であることができる。従って、別途暗示または提示されていない限り、接続は例えば直接接続であってもよいし、間接接続であってもよい。接続は、単一の接続、複数の接続、一方向性接続、または双方向性接続であることに関連して例示または記載され得る。しかしながら、実施形態が異なれば、接続の実施態様は変化してもよい。例えば、双方向性接続ではなく別個の一方向性接続が使用されてもよく、その逆であってもよい。さらに、複数の接続が、シリアル化または時分割多重方式で複数の信号を伝送する単一の接続と置き換わってもよい。同様に、複数の信号を搬送する単一の接続が、これらの信号のサブセットを搬送するさまざまな異なる接続に分離されてもよい。それゆえ、信号の伝送には多くの選択肢が存在する。
【0046】
本明細書において記載される各信号は正または負の論理として設計され得る。負論理信号の場合、信号は、論理的真状態が論理レベル0に対応するアクティブ・ローである。正論理信号の場合、信号は、論理的真状態が論理レベル1に対応するアクティブ・ハイである。本明細書に記載される信号はいずれも負または正論理信号のいずれかとして設計され得ることに留意されたい。それゆえ、代替の実施形態において、正論理信号として記載される信号は、負論理信号として実装されてもよく、負論理信号として記載される信号は、正論理信号として実装されてもよい。
【0047】
さらに、「アサート」または「セット」および「ネゲート」(または「アサート停止」もしくは「クリア」)という用語は、本明細書においては、信号、ステータスビット、または類似の機構をそれぞれ、その論理的に真または論理的に偽の状態にすることを指す場合に使用される。論理的に真の状態が論理レベル1である場合、論理的に偽の状態は論理レベル0である。そして、論理的に真の状態が論理レベル0である場合、論理的に偽の状態は論理レベル1である。
【0048】
論理ブロック間の境界は例示にすぎないこと、および、代替的な実施形態は、論理ブロックもしくは回路要素を融合し、またはさまざまな論理ブロックもしくは回路要素に対する代替的な機能の分解を課してもよいことを、当業者であれば認識するであろう。従って、本明細書において描写したアーキテクチャは例示にすぎないこと、および、事実、同じ機能を達成する多くの他のアーキテクチャを実装できることを理解されたい。
図1に示される例において、起動初期化コンポーネント110は分離された論理要素として示されており、示された例においてCPU120による実行を対象としたコンピュータ実行可能コードによって同様に実装され得る。代替えとして、起動初期化コンポーネント110は、MCUデバイス100における1つまたは複数の他のコンポーネントにおいて統合されたハードウェアによって実装されてもよい。例えば、起動初期化コンポーネントは、少なくとも部分的には、例えばマッピング機構130において統合されたハードウェアによって実装されてもよい。
【0049】
同じ機能を達成するための構成要素の任意の構成が、所望の機能が達成されるように効果的に「関連付けられる」。従って、本明細書における、特定の機能を達成するように結合される任意の2つの構成要素は互いに「関連付けられる」とみなされることができ、それによって、中間の構成要素またはアーキテクチャにかかわりなく、所望の機能が達成される。同様に、そのように関連付けられる任意の2つの構成要素も、所望の機能を達成するように互いに「動作可能に接続される」または「動作可能に結合される」とみなされ得る。
【0050】
さらに、上述の動作間の境界は例示にすぎないことを当業者であれば認識するであろう。複数の動作を単一の動作に組み合わせ、単一の動作を追加の動作に分散させて、複数の動作を少なくとも部分的に時間的に重ね合わせて実行することができる。さらに、代替的な実施形態は、特定の動作の複数のインスタンスを含んでもよく、動作の順序はさまざまな他の実施形態においては変更してもよい。
【0051】
さらに例として、1つの実施形態において、例示される実施例は、
図1で示されるように、単一の集積回路105または同じデバイス100において構成される回路として実装されることができる。しかしながら、MCUデバイス100の1つまたは複数のコンポーネントは、適切な様式で互いに相互接続される任意の数の別個の集積回路または別個のデバイスとして実装されてもよいことが考慮される。例えば、デバイスメモリ要素125は、図示される例でおいてはオンチップフラッシュメモリを備えているが、同様に、オフチップメモリなどによって実装されてもよい。
【0052】
さらに例として、実施例、またはその一部は、任意の適切なタイプのハードウェア記述言語などによって、実回線または実回線に転換可能な論理表現のソフトまたはコード表現として実装されることができる。
【0053】
さらに、本発明は、プログラム不可能なハードウェアにおいて実装される物理デバイスまたはユニットに限定されるものではなく、本出願においては一般的に「コンピュータシステム」として示される、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、携帯情報端末、電子ゲーム、自動車および他の組込みシステム、携帯電話、ならびに、さまざまな他の無線デバイスなどの、適切なプログラムコードに応じて操作することによって所望のデバイス機能を実行できるプログラム可能なデバイスまたはユニットにおいて適用されることもできる。
【0054】
しかしながら、他の修正形態、変更形態および代替形態も可能である。従って、明細書および図面は限定的な意味においてではなく例示的に考慮されるべきである。
特許請求の範囲において、括弧間に置かれる任意の参照符号は特許請求の範囲を限定するものとして解釈されるべきではない。「備える(comprising)」という文言は、特許請求項内にリストされているもの以外の要素または工程の存在を除外するものではない。さらに、本明細書において使用される場合、「1つ(“a” or “an”)」という用語は、1つまたは2つ以上として定義される。さらに、特許請求の範囲における「少なくとも1つの」および「1つまたは複数の」などの前置きの語句の使用は、不定冠詞「1つの (“a” or “an”)」による別の請求項要素の導入が、このように導入された請求項要素を含む任意の特定の請求項を、たとえ同じ請求項が前置きの語句「1つまたは複数の」または「少なくとも1つの」および「1つの (“a” or “an”)」のような不定冠詞を含む場合であっても、1つだけのこのような要素を含む発明に限定することを暗示するように解釈されるべきではない。同じことが、定冠詞の使用についても当てはまる。別途記載されない限り、「第1の」および「第2の」などの用語は、そのような用語が説明する要素間で適宜区別するように使用される。従って、これらの用語は必ずしも、このような要素の時間的なまたは他の優先順位付けを示すようには意図されていない。特定の手段が相互に異なる特許請求項において記載されるというだけの事実は、これらの手段の組み合わせを有利に使用することができないということを示すものではない。