(57)【要約】  本発明は、コンピュータ技術の分野に関し、ドライバをロードする方法及びデバイスを開示する。この方法は、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するステップと、コンポーネントに対応するモデル識別子に関連するドライバを検索するステップと、見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御するステップとを含む。この対策では、ドライバがロードされるべきコンポーネントにドライバがロードされる場合、関連するドライバは、ドライバがロードされるべきコンポーネントのモデル識別子に従って検索され、関連するドライバがロードされ得る。複数のコンポーネントのドライバの組み合わせが検索される必要はなく、また、複数のコンポーネントのドライバに対応する識別子の組み合わせが生成される必要はない。従って、消費される時間が低減され、ロード効率が改善される。
2016519385.tif 000002
【特許請求の範囲】
【請求項１】
ドライバをロードする方法であって、
組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するステップであり、前記コンポーネントは、ドライバがロードされるべきコンポーネントであるステップと、
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップと、
見つかったドライバを前記組み込みデバイスのメモリにロードし、前記コンポーネントを駆動するために、前記組み込みデバイスの前記メモリにロードされた前記ドライバを制御するステップと
を有する方法。
【請求項２】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップは、
前記組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバを検索するステップを具体的に有し、
前記最小オペレーティングシステムミラーは、前記組み込みデバイスを開始し、サービス機能を実行し、前記組み込みデバイスに含まれる前記コンポーネントの前記ドライバをロードするために使用される、請求項１に記載の方法。
【請求項３】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索する前に、
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するステップを更に有する、請求項２に記載の方法。
【請求項４】
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するステップは、
初期の最小オペレーティングシステムミラーを生成するために、前記組み込みデバイスの前記サービス機能に基づいて開発された元のコードをコンパイルするステップであり、前記初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを有し、前記元のコードは、前記組み込みデバイスの前記サービス機能を実現するために使用されるステップと、
前記実行可能及びリンク可能フォーマットの前記ファイルからシンボルテーブルを抽出するステップであり、前記実行可能及びリンク可能フォーマットの前記ファイルは、前記初期の最小オペレーティングシステムミラーに含まれるステップと、
前記シンボルテーブルに従ってCファイルを生成し、前記生成されたCファイルを前記元のコードに追加するステップと、
前記組み込みデバイスの前記最小オペレーティングシステムミラーを取得するために、前記Cファイルが追加された前記元のコードをコンパイルするステップと
を有する、請求項３に記載の方法。
【請求項５】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索する前に、
前記コンポーネントと同じタイプのコンポーネントの各モデル識別子と、前記同じタイプの前記コンポーネントのそれぞれに対応する各ドライバとを決定するステップであり、前記同じタイプの前記コンポーネントは、前記コンポーネントと同じ属性又は機能を有するコンポーネントであるステップと、
前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するステップと
を更に有する、請求項１ないし４のうちいずれか１項に記載の方法。
【請求項６】
前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するステップは、
前記同じタイプの各コンポーネントの前記ドライバを予め設定されたフォーマットのファイルにコンパイルするステップであり、前記予め設定されたフォーマットの前記ファイルは、再配置の属性を有するステップと、
予め設定されたルールに従って前記予め設定された前記フォーマットのファイルを格納し、前記予め設定されたフォーマットの前記ファイルが格納された論理アドレスを取得するステップと、
前記モデル識別子のいずれか１つと前記取得された論理アドレスとの間の対応を格納するステップと
を具体的に有する、請求項５に記載の方法。
【請求項７】
前記予め設定されたフォーマットのファイルのアドレスフィールドは初期の予め設定された値であり、予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納した後に、
前記予め設定されたフォーマットの前記ファイルの前記アドレスフィールドの前記初期の予め設定された値を前記論理アドレスに変更するステップを更に有する、請求項６に記載の方法。
【請求項８】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップは、
前記格納された関連付け関係から、前記コンポーネントに対応する前記モデル識別子に対応する論理アドレスを決定するステップと、
前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバとして予め設定されたフォーマットのファイルを使用するステップであり、前記予め設定されたフォーマットの前記ファイルは、前記決定された論理アドレスに格納されるステップと
を具体的に有する、請求項６又は７に記載の方法。
【請求項９】
見つかったドライバを前記組み込みデバイスのメモリにロードするステップは、
前記組み込みデバイスの前記メモリにロードされる前記ドライバの物理アドレスを決定するステップと、
前記ドライバのアドレスフィールドを論理アドレスから前記物理アドレスに変更するステップと
を具体的に有する、請求項７又は８に記載の方法。
【請求項１０】
見つかったドライバを前記組み込みデバイスのメモリにロードするステップは、
ダイナミックロード方式で前記最小オペレーティングシステムミラーを使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにロードするステップを有する、請求項２ないし９のうちいずれか１項に記載の方法。
【請求項１１】
ダイナミックロード方式で前記最小オペレーティングシステムミラーを使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにロードするステップは、
前記最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにコピーするステップと、
前記最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、前記見つかったドライバのインタフェース関数を呼び出し、前記組み込みデバイスの前記メモリにコピーされた前記ドライバをリンクするステップと
を具体的に有する、請求項１０に記載の方法。
【請求項１２】
ドライバをロードする組み込みデバイスであって、
前記組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するように構成された決定ユニットであり、前記コンポーネントは、ドライバがロードされるべきコンポーネントである決定ユニットと、
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するように構成された検索ユニットと、
見つかったドライバを前記組み込みデバイスのメモリにロードし、前記コンポーネントを駆動するために、前記組み込みデバイスの前記メモリにロードされた前記ドライバを制御するように構成されたロードユニットと
を有する組み込みデバイス。
【請求項１３】
前記検索ユニットは、前記組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバを検索するように具体的に構成され、
前記最小オペレーティングシステムミラーは、前記組み込みデバイスを開始し、サービス機能を実行し、前記組み込みデバイスに含まれる前記コンポーネントの前記ドライバをロードするために使用される、請求項１２に記載の組み込みデバイス。
【請求項１４】
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するように構成された生成ユニットを更に有する、請求項１３に記載の組み込みデバイス。
【請求項１５】
前記生成ユニットは、
初期の最小オペレーティングシステムミラーを生成するために、前記組み込みデバイスの前記サービス機能に基づいて開発された元のコードをコンパイルするように構成されたコンパイルモジュールであり、前記初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを有し、前記元のコードは、前記組み込みデバイスの前記サービス機能を実現するために使用されるコンパイルモジュールと、
前記実行可能及びリンク可能フォーマットの前記ファイルからシンボルテーブルを抽出するように構成された抽出モジュールであり、前記実行可能及びリンク可能フォーマットの前記ファイルは、前記初期の最小オペレーティングシステムミラーに含まれ、前記シンボルテーブルに従ってCファイルを生成し、前記生成されたCファイルを前記元のコードに追加するように構成された抽出モジュールと
を有し、
前記コンパイルモジュールは、前記組み込みデバイスの前記最小オペレーティングシステムミラーを取得するために、前記Cファイルが追加された前記元のコードをコンパイルするように更に構成される、請求項１４に記載の組み込みデバイス。
【請求項１６】
前記コンポーネントと同じタイプのコンポーネントの各モデル識別子と、前記同じタイプの前記コンポーネントのそれぞれに対応する各ドライバとを決定し、前記同じタイプの前記コンポーネントは、前記コンポーネントと同じ属性又は機能を有するコンポーネントであり、前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するように具体的に構成された記憶ユニットを更に有する、請求項１２ないし１５のうちいずれか１項に記載の組み込みデバイス。
【請求項１７】
前記記憶ユニットは、前記同じタイプの各コンポーネントの前記ドライバを予め設定されたフォーマットのファイルにコンパイルし、前記予め設定されたフォーマットの前記ファイルは、再配置の属性を有し、予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納し、前記予め設定されたフォーマットの前記ファイルが格納された論理アドレスを取得し、前記モデル識別子のいずれか１つと前記取得された論理アドレスとの間の対応を格納するように具体的に構成される、請求項１６に記載の組み込みデバイス。
【請求項１８】
前記予め設定されたフォーマットの前記ファイルのアドレスフィールドは初期の予め設定された値であり、
前記記憶ユニットは、前記予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納した後に、前記予め設定されたフォーマットの前記ファイルの前記アドレスフィールドの前記初期の予め設定された値を前記論理アドレスに変更するように更に構成される、請求項１７に記載の組み込みデバイス。
【請求項１９】
前記検索ユニットは、前記格納された関連付け関係から、前記コンポーネントに対応する前記モデル識別子に対応する論理アドレスを決定し、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバとして予め設定されたフォーマットのファイルを使用するように具体的に構成され、前記予め設定されたフォーマットの前記ファイルは、前記決定された論理アドレスに格納される、請求項１７又は１８に記載の組み込みデバイス。
【請求項２０】
前記ロードユニットは、前記組み込みデバイスの前記メモリにロードされる前記ドライバの物理アドレスを決定し、前記ドライバのアドレスフィールドを論理アドレスから前記物理アドレスに変更するように具体的に構成される、請求項１８又は１９に記載の組み込みデバイス。
【請求項２１】
前記ロードユニットは、前記最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにコピーし、前記最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、前記見つかったドライバのインタフェース関数を呼び出し、前記組み込みデバイスの前記メモリにコピーされた前記ドライバをリンクするように具体的に構成される、請求項１３ないし２０のうちいずれか１項に記載の組み込みデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、特にドライバをロードする方法及び組み込みデバイスに関する。
【背景技術】
【０００２】
通信技術の急速な進展により、コンピュータ分野は、PC（Personal  Computer、パーソナルコンピュータ）時代及びネットワーク時代を経験しており、次に、いわゆるポストPC時代に直面している。PC時代及びポストネットワーク時代の新規参入者として、組み込みデバイスはますます重要である。
【０００３】
現在では、ますます多くのコンポーネントがスマートフォン及び装着可能デバイスのような組み込みデバイスにおいてサポートされている。各コンポーネントは、対応するドライバがロードされた後にのみ実行することができる。同じモデルの組み込みデバイスにおける同じコンポーネントは、通常では異なる製造者により提供されており、異なる製造者により提供される同じコンポーネントに対応するドライバも異なる。実際の用途では、各組み込みデバイスの出荷の前に、組み込みデバイスを保持するユーザがコンポーネントを直接使用することができるように、組み込みデバイスの各コンポーネントのドライバは完全にロードされる必要がある。
【０００４】
従来技術では、ドライバがロードされる前に、コンポーネントにより使用され得るドライバの識別子は、まず、ドライバ識別子の組み合わせを取得するために組み合わされる必要があり、複数のドライバ識別子の組み合わせがレジストリに追加される。ドライバをロードする場合、組み込みデバイスは、組み込みデバイスに対応するドライバ識別子の組み合わせを決定するためにレジストリにおいて検索し、ドライバ識別子の組み合わせに含まれるコンポーネントのドライバ識別子に従って対応するドライバを検索し、ロードを実行する。
【０００５】
例えば、組み込みデバイスは２つのコンポーネント、すなわち、ジャイロスコープ及び重力センサを有する。ジャイロスコープは２つの製造者により提供され、製造者1により提供されるジャイロスコープのドライバ1に対応する識別子は識別子1であり、製造者2により提供されるジャイロスコープのドライバ2に対応する識別子は識別子2である。重力センサも２つの製造者により提供され、製造者3により提供される重力センサのドライバ3に対応する識別子は識別子3であり、製造者4により提供される重力センサのドライバ4に対応する識別子は識別子4である。この場合、４つのドライバ識別子の組み合わせ、すなわち、ドライバ識別子の組み合わせ1：識別子1及び識別子3、ドライバ識別子の組み合わせ2：識別子1及び識別子4、ドライバ識別子の組み合わせ3：識別子2及び識別子3、並びに、ドライバ識別子の組み合わせ4：識別子2及び識別子4が生成される必要がある。組み込みデバイスの各バッチは、１つのドライバ識別子の組み合わせに対応しており、対応するドライバ識別子の組み合わせは、製造が完了した後に決定される。従って、ドライバをロードするために、組み込みデバイスは、まず、４つのドライバ識別子の組み合わせ、すなわち、ドライバ識別子の組み合わせ1、ドライバ識別子の組み合わせ2、ドライバ識別子の組み合わせ3及びドライバ識別子の組み合わせ4から組み込みデバイスのバッチに対応するドライバ識別子の組み合わせをレジストリにおいて検索する必要があり、ドライバ識別子の組み合わせに含まれるドライバ識別子に従ってドライバを検索し、ロードを実行する。
【０００６】
組み込みデバイスがドライバをロードする場合、組み込みデバイスは、ドライバ識別子の組み合わせに対応しており、対応するドライバ識別子の組み合わせに含まれるコンポーネントのドライバの識別子が見つけられ、ドライバの識別子に対応するドライバがロードされる。組み込みデバイスのコンポーネントの増加及び各コンポーネントの製造者の多様性により、ますます多くのドライバ識別子の組み合わせが存在する。従って、時間がかかり、低いロード効率という欠点が存在する。
【発明の概要】
【０００７】
本発明の実施例は、従来技術における時間がかかり、低いロード効率という問題を解決するために使用される、ドライバをロードする方法及び装置を提供する。
【０００８】
本発明の実施例は、以下の具体的な技術的対策を提供する。
【０００９】
第１の態様によれば、ドライバをロードする方法が提供され、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するステップであり、コンポーネントは、ドライバがロードされるべきコンポーネントであるステップと、コンポーネントに対応するモデル識別子に関連するドライバを検索するステップと、見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御するステップとを含む。
【００１０】
第１の態様を参照して、第１の可能な実現方式では、コンポーネントに対応するモデル識別子に関連するドライバを検索するステップは、組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、コンポーネントに対応するモデル識別子に関連するドライバを検索するステップを具体的に含み、最小オペレーティングシステムミラーは、組み込みデバイスを開始し、サービス機能を実行し、組み込みデバイスに含まれるコンポーネントのドライバをロードするために使用される。
【００１１】
第１の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、コンポーネントに対応するモデル識別子に関連するドライバを検索する前に、この方法は、組み込みデバイスの最小オペレーティングシステムミラーを生成するステップを更に含む。
【００１２】
第１の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、組み込みデバイスの最小オペレーティングシステムミラーを生成するステップは、初期の最小オペレーティングシステムミラーを生成するために、組み込みデバイスのサービス機能に基づいて開発された元のコードをコンパイルするステップであり、初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを含み、元のコードは、組み込みデバイスのサービス機能を実現するために使用されるステップと、実行可能及びリンク可能フォーマットのファイルからシンボルテーブルを抽出するステップであり、実行可能及びリンク可能フォーマットのファイルは、初期の最小オペレーティングシステムミラーに含まれるステップと、シンボルテーブルに従ってCファイルを生成し、生成されたCファイルを元のコードに追加するステップと、組み込みデバイスの最小オペレーティングシステムミラーを取得するために、Cファイルが追加された元のコードをコンパイルするステップとを含む。
【００１３】
第１の態様又は第１の態様の第１〜第３の可能な実現方式を参照して、第４の可能な実現方式では、コンポーネントに対応するモデル識別子に関連するドライバを検索する前に、この方法は、コンポーネントと同じタイプのコンポーネントの各モデル識別子と、同じタイプのコンポーネントのそれぞれに対応する各ドライバとを決定するステップであり、同じタイプのコンポーネントは、コンポーネントと同じ属性又は機能を有するコンポーネントであるステップと、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納するステップとを更に含む。
【００１４】
第１の態様の第４の可能な実現方式を参照して、第５の可能な実現方式では、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納するステップは、同じタイプの各コンポーネントのドライバを予め設定されたフォーマットのファイルにコンパイルするステップであり、予め設定されたフォーマットのファイルは、再配置の属性を有するステップと、予め設定されたルールに従って予め設定されたフォーマットのファイルを格納し、予め設定されたフォーマットのファイルが格納された論理アドレスを取得するステップと、モデル識別子のいずれか１つと取得された論理アドレスとの間の対応を格納するステップとを具体的に含む。
【００１５】
第１の態様の第５の可能な実現方式を参照して、第６の可能な実現方式では、予め設定されたフォーマットのファイルのアドレスフィールドは初期の予め設定された値であり、予め設定されたルールに従って予め設定されたフォーマットのファイルを格納した後に、この方法は、予め設定されたフォーマットのファイルのアドレスフィールドの初期の予め設定された値を論理アドレスに変更するステップを更に含む。
【００１６】
第１の態様の第５又は第６の可能な実現方式を参照して、第７の可能な実現方式では、コンポーネントに対応するモデル識別子に関連するドライバを検索するステップは、格納された関連付け関係から、コンポーネントに対応するモデル識別子に対応する論理アドレスを決定するステップと、コンポーネントに対応するモデル識別子に関連するドライバとして予め設定されたフォーマットのファイルを使用するステップであり、予め設定されたフォーマットのファイルは、決定された論理アドレスに格納されるステップとを具体的に含む。
【００１７】
第１の態様の第６又は第７の可能な実現方式を参照して、第８の可能な実現方式では、見つかったドライバを組み込みデバイスのメモリにロードするステップは、組み込みデバイスのメモリにロードされるドライバの物理アドレスを決定するステップと、ドライバのアドレスフィールドを論理アドレスから物理アドレスに変更するステップとを具体的に含む。
【００１８】
第１の態様の第１〜第８の可能な実現方式を参照して、第９の可能な実現方式では、見つかったドライバを組み込みデバイスのメモリにロードするステップは、ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードするステップを含む。
【００１９】
第１の態様の第９の可能な実現方式を参照して、第１０の可能な実現方式では、ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードするステップは、最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、見つかったドライバを組み込みデバイスのメモリにコピーするステップと、最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、見つかったドライバのインタフェース関数を呼び出し、組み込みデバイスのメモリにコピーされたドライバをリンクするステップとを具体的に含む。
【００２０】
第２の態様によれば、ドライバをロードする組み込みデバイスが提供され、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するように構成された決定ユニットであり、コンポーネントは、ドライバがロードされるべきコンポーネントである決定ユニットと、コンポーネントに対応するモデル識別子に関連するドライバを検索するように構成された検索ユニットと、見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御するように構成されたロードユニットとを含む。
【００２１】
第２の態様を参照して、第１の可能な実現方式では、検索ユニットは、組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、コンポーネントに対応するモデル識別子に関連するドライバを検索するように具体的に構成され、最小オペレーティングシステムミラーは、組み込みデバイスを開始し、サービス機能を実行し、組み込みデバイスに含まれるコンポーネントのドライバをロードするために使用される。
【００２２】
第２の態様の第１の可能な実現方式を参照して、第２の可能な実現方式では、組み込みデバイスは、組み込みデバイスの最小オペレーティングシステムミラーを生成するように構成された生成ユニットを更に含む。
【００２３】
第２の態様の第２の可能な実現方式を参照して、第３の可能な実現方式では、生成ユニットは、初期の最小オペレーティングシステムミラーを生成するために、組み込みデバイスのサービス機能に基づいて開発された元のコードをコンパイルするように構成されたコンパイルモジュールであり、初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを含み、元のコードは、組み込みデバイスのサービス機能を実現するために使用されるコンパイルモジュールと、実行可能及びリンク可能フォーマットのファイルからシンボルテーブルを抽出するように構成された抽出モジュールであり、実行可能及びリンク可能フォーマットのファイルは、初期の最小オペレーティングシステムミラーに含まれ、シンボルテーブルに従ってCファイルを生成し、生成されたCファイルを元のコードに追加するように構成された抽出モジュールとを含み、コンパイルモジュールは、組み込みデバイスの最小オペレーティングシステムミラーを取得するために、Cファイルが追加された元のコードをコンパイルするように更に構成される。
【００２４】
第２の態様又は第２の態様の第１〜第３の可能な実現方式を参照して、第４の可能な実現方式では、組み込みデバイスは、記憶ユニットを更に含み、記憶ユニットは、コンポーネントと同じタイプのコンポーネントの各モデル識別子と、同じタイプのコンポーネントのそれぞれに対応する各ドライバとを決定し、同じタイプのコンポーネントは、コンポーネントと同じ属性又は機能を有するコンポーネントであり、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納するように具体的に構成される。
【００２５】
第２の態様の第４の可能な実現方式を参照して、第５の可能な実現方式では、記憶ユニットは、同じタイプの各コンポーネントのドライバを予め設定されたフォーマットのファイルにコンパイルし、予め設定されたフォーマットのファイルは、再配置の属性を有し、予め設定されたルールに従って予め設定されたフォーマットのファイルを格納し、予め設定されたフォーマットのファイルが格納された論理アドレスを取得し、モデル識別子のいずれか１つと取得された論理アドレスとの間の対応を格納するように具体的に構成される。
【００２６】
第２の態様の第５の可能な実現方式を参照して、第６の可能な実現方式では、予め設定されたフォーマットのファイルのアドレスフィールドは初期の予め設定された値であり、記憶ユニットは、予め設定されたルールに従って予め設定されたフォーマットのファイルを格納した後に、予め設定されたフォーマットのファイルのアドレスフィールドの初期の予め設定された値を論理アドレスに変更するように更に構成される。
【００２７】
第２の態様の第５又は第６の可能な実現方式を参照して、第７の可能な実現方式では、検索ユニットは、格納された関連付け関係から、コンポーネントに対応するモデル識別子に対応する論理アドレスを決定し、コンポーネントに対応するモデル識別子に関連するドライバとして予め設定されたフォーマットのファイルを使用するように具体的に構成され、予め設定されたフォーマットのファイルは、決定された論理アドレスに格納される。
【００２８】
第２の態様の第６又は第７の可能な実現方式を参照して、第８の可能な実現方式では、ロードユニットは、組み込みデバイスのメモリにロードされるドライバの物理アドレスを決定し、ドライバのアドレスフィールドを論理アドレスから物理アドレスに変更するように具体的に構成される。
【００２９】
第２の態様の第１〜第８の可能な実現方式を参照して、第９の可能な実現方式では、ロードユニットは、最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、見つかったドライバを組み込みデバイスのメモリにコピーし、最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、見つかったドライバのインタフェース関数を呼び出し、組み込みデバイスのメモリにコピーされたドライバをリンクするように具体的に構成される。
【００３０】
本発明の有利な効果は以下の通りである。
【００３１】
従来技術では、ドライバがロードされる場合、組み込みデバイスは、組み込みデバイスに対応するドライバ識別子の組み合わせをレジストリにおいて検索し、ドライバ識別子の組み合わせに含まれるドライバ識別子に従って各ドライバ識別子に対応するドライバを検索する。ますます多くのドライバ識別子の組み合わせが存在するため、時間がかかり、低いロード効率という欠点が存在する。本発明の実施例では、組み込みデバイスに含まれるコンポーネントに現在対応するモデル識別子が決定され、コンポーネントは、ドライバがロードされるべきコンポーネントであり、コンポーネントに対応するモデル識別子に関連するドライバが検索され、見つかったドライバが組み込みデバイスのメモリにロードされ、組み込みデバイスのメモリにリンクされたドライバが、コンポーネントを駆動するように制御される。この対策では、ドライバがロードされるべきコンポーネントにドライバがロードされる場合、関連するドライバは、ドライバがロードされるべきコンポーネントのモデル識別子に従って検索され、関連するドライバがロードされ得る。複数のドライバ識別子の組み合わせが生成される必要はなく、また、複数のドライバ識別子の組み合わせが検索される必要はない。従って、消費される時間が低減され、ロード効率が改善される。
【図面の簡単な説明】
【００３２】
【図１Ａ】本発明の実施例に従ってドライバをロードするフローチャート
【図１Ｂ】本発明の実施例に従って最小オペレーティングシステムミラーを生成する概略図
【図１Ｃ】本発明の実施例に従ってドライバを予め設定されたフォーマットのファイルにコンパイルする概略図
【図１Ｄ】本発明の実施例に従ってロードする実現の概略図
【図２】本発明の実施例に従ってドライバをロードする実施例
【図３】本発明の実施例による組み込みデバイスの機能の概略構成図
【図４】本発明の実施例による組み込みデバイスの物理装置の概略構成図
【発明を実施するための形態】
【００３３】
本発明の実施例の目的、技術的対策及び利点を明確にするために、以下に、本発明の実施例の添付図面を参照して本発明の実施例の技術的対策について明確に説明する。明らかに、説明する実施例は、本発明の実施例の全てではなく、一部である。創造的取り組みを行うことなく本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００３４】
この明細書において、用語“及び／又は”は、単に関連するオブジェクトの関連付け関係を記載するものに過ぎず、３つの関係が存在し得ることを表す。例えば、A及び／又はBは、Aのみが存在する場合と、A及びBの双方が存在する場合と、Bのみが存在する場合との３つの場合を表してもよい。更に、この明細書において文字“／”は、関連するオブジェクトの間の“又は”の関係を一般的に示す。
【００３５】
実際の用途では、１つの組み込みデバイスは、一般的に、ディスプレイ、センサ、プロセッサ及びカメラのような複数のコンポーネントを含む。各コンポーネントが実行する前に、ドライバがロードされる必要がある。従って、本発明の実施例では、ドライバをロードする方法が提供される。この方法では、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子が決定され、コンポーネントは、ドライバがロードされるべきコンポーネントであり、コンポーネントに対応するモデル識別子に関連するドライバが検索され、見つかったドライバが組み込みデバイスのメモリにロードされ、組み込みデバイスのメモリにロードされたドライバが、コンポーネントを駆動するように制御される。この対策では、ドライバがロードされるべきコンポーネントにドライバがロードされる場合、関連するドライバは、ドライバがロードされるべきコンポーネントのモデル識別子に従って検索され、関連するドライバがロードされ得る。複数のドライバの組み合わせが検索される必要はなく、また、複数のコンポーネントのドライバに対応する識別子の組み合わせが検索される必要はない。従って、消費される時間が低減され、ロード効率が改善される。
【００３６】
本発明の例示的な実現方式について、添付図面を参照して以下に詳細に説明する。
【００３７】
図１Ａを参照すると、本発明の実施例は、ドライバをロードする方法を提供する。この方法の具体的な処理は以下の通りである。
【００３８】
ステップ100：組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定する。コンポーネントは、ドライバがロードされるべきコンポーネントである。
【００３９】
ステップ110：コンポーネントに対応するモデル識別子に関連するドライバを検索する。
【００４０】
ステップ120：見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御する。
【００４１】
本発明のこの実施例では、ステップ100〜ステップ120の対策について多くの起動条件が存在する。例えば、ドライバをロードするための命令が受信された場合、ステップ100〜ステップ120が実行され始める。明らかに、実際の用途では、他の起動条件が存在し、詳細はここでは説明しない。
【００４２】
本発明のこの実施例では、ドライバをロードするための多くの受信した命令が存在する。例えば、組み込みデバイスを初期化するための命令は、ドライバをロードするための命令として使用されてもよい。他の例では、周辺機器デバイスが組み込みデバイスに挿入されたことが検出された場合、検出情報は、ドライバをロードするための命令として使用されてもよい。明らかに、実際の用途では、多くの他の形式が存在し、詳細はここでは説明しない。
【００４３】
本発明のこの実施例では、モデル識別子は、製造者により製造された同じタイプのコンポーネントを一意に識別するために使用され、異なる製造者により製造された同じタイプのコンポーネントは、異なるモデル識別子により区別される。すなわち、モデル識別子は、特定のコンポーネントが特定の製造者により製造されたことを表すために使用される。例えば、モデル識別子1：A10376BZHは、ジャイロスコープが製造者XXにより製造されたことを表すために使用され、モデル識別子2：B10376ASDは、重力センサが製造者LLLにより製造されたことを表すために使用される。一般的に、モデル識別子の最初の2ビットは、コンポーネントを識別するために使用され、モデル識別子の最後の3ビットは、製造者を示すために使用され、モデル識別子の他のビットは、コンポーネントの製造バッチ等を識別してもよい。これは、異なる用途事例によって変化してもよく、詳細はここでは説明しない。同様に、モデル識別子も、異なる用途事例によって変化してもよく、詳細はここでは説明しない。
【００４４】
本発明のこの実施例では、コンポーネントに対応するモデル識別子に関連するドライバを検索する多くの方式が存在し、任意選択で以下の方式が使用されてもよい。
【００４５】
コンポーネントに対応するモデル識別子に関連するドライバは、組み込みデバイスの最小オペレーティングシステムミラーを使用することにより検索される。最小オペレーティングシステムミラーは、組み込みデバイスを開始し、サービス機能を実行し、組み込みデバイスに含まれるコンポーネントのドライバをロードするために使用される。最小オペレーティングシステムミラーは、BSP（Board  Support  Package、ボードサポートパッケージ）、オペレーティングシステム及びアプリケーション層ソフトウェアのみを含む。
【００４６】
従来技術のオペレーティングシステムミラーは、一般的に、BSP、オペレーティングシステム及びアプリケーション層ソフトウェアを含み、加えて、コンポーネントのドライバを更に含む点に留意すべきである。従って、従来技術では、コンポーネントのドライバのロードは、ドライバの初期化のみを示す。しかし、本発明のこの実施例では、最小オペレーティングシステムミラーは、BSP、オペレーティングシステムミラー及びアプリケーション層ソフトウェアのみを含むため、ドライバは、まず組み込みデバイスのメモリにロードされる必要があり、次に、ドライバが初期化される。従来技術のオペレーティングシステムミラーの機能に比べて、本発明のこの実施例の最小オペレーティングシステムミラーの機能は、もう１つのドライバロード機能を有する。
【００４７】
明らかに、実際の用途では、コンポーネントに対応するモデル識別子に関連するドライバの検索はまた、他の方式で実現されてもよく、詳細はここでは説明しない。
【００４８】
この場合、コンポーネントに対応するモデル識別子に関連するドライバが検索される前に、以下の動作が更に含まれる。組み込みデバイスの最小オペレーティングシステムミラーを生成する。
【００４９】
本発明のこの実施例では、組み込みデバイスの最小オペレーティングシステムミラーの生成は、２回のコンパイルを用いて実現される必要がある。具体的に、図１Ｂに示す以下の方式が使用されてもよい。初期の最小オペレーティングシステムミラーを生成するために、組み込みデバイスのサービス機能に基づいて開発された元のコードをコンパイルする。初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを含み、元のコードは、組み込みデバイスのサービス機能を実現するために使用される。実行可能及びリンク可能フォーマットのファイルからシンボルテーブルを抽出する。実行可能及びリンク可能フォーマットのファイルは、初期の最小オペレーティングシステムミラーに含まれる。シンボルテーブルをCファイルに生成し、生成されたCファイルを元のコードに追加する。組み込みデバイスの最小オペレーティングシステムミラーを取得するために、Cファイルが追加された元のコードをコンパイルする。
【００５０】
本発明のこの実施例では、第２のコンパイルの後に取得された最小オペレーティングシステムミラーに含まれる関数及びグローバル変数の実行アドレスを、第１のコンパイルを用いて生成されたシンボルテーブルのアドレスに正確に一致させるために、最小オペレーティングシステムミラーにおいて、２つのセグメント空間が分割を用いて取得された第２のコンパイル処理におけるリンクスクリプトセグメントの末尾部に新たに追加され、シンボルテーブルにおいて生成されたdata及び文字列を格納するために使用される。
【００５１】
実際の用途では、コンポーネントに対応するモデル識別子に関連するドライバが検索される前に、ドライバがロードされるべきコンポーネントに対応するモデル識別子に関連するドライバが、まず格納される必要がある。従って、本発明のこの実施例では、コンポーネントに対応するモデル識別子に関連するドライバが検索される前に、以下の動作が更に含まれる。コンポーネントと同じタイプのコンポーネントの各モデル識別子と、同じタイプのコンポーネントのそれぞれに対応する各ドライバとを決定する。同じタイプのコンポーネントは、コンポーネントと同じ属性又は機能を有するコンポーネントである。コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納する。
【００５２】
本発明のこの実施例では、同じタイプのコンポーネントは、多くの形式になってもよく、例えば、同じ機能又は属性を有し、異なる製造者により製造されたコンポーネントでもよい。例えば、製造者A、B及びCにより別々に製造されたディスプレイ画面では、３つの製造者により別々に製造されたディスプレイ画面は、同じタイプのコンポーネントである。或いは、製造者A、B及びCにより別々に製造された重力センサでは、３つの製造者により別々に製造された重力センサは、同じタイプのコンポーネントである。他の例では、同じタイプのコンポーネントはまた、異なるバッチ又はバージョンにおいて同じ製造者により製造された同じ機能又は属性を有するコンポーネントでもよい。例えば、製造者Aにより製造された500W画素のカメラ及び800W画素のカメラでは、２つのタイプのカメラもまた、同じタイプのコンポーネントである。
【００５３】
例えば、ディスプレイ画面Sは、３つの製造者により製造され、製造者Aからのディスプレイ画面Sに対応するモデル識別子は、モデル識別子1であり、ドライバ1に対応する。製造者Bからのディスプレイ画面Sに対応するモデル識別子は、モデル識別子2であり、ドライバ2に対応する。製造者Cからのディスプレイ画面Sに対応するモデル識別子は、モデル識別子3であり、ドライバ3に対応する。ディスプレイ画面Sは３つのモデル識別子に対応し、各モデル識別子は１つのドライバに対応する。そして、ディスプレイ画面Sについて３つの関連付け関係、すなわち、第１の関連付け関係：モデル識別子1とドライバ1との間の関連付け関係、第２の関連付け関係：モデル識別子2とドライバ2との間の関連付け関係、及び第３の関連付け関係：モデル識別子3とドライバ3との間の関連付け関係が記録される。
【００５４】
本発明のこの実施例では、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納する多くの方式が存在する。任意選択で、以下の方式が使用されてもよい。同じタイプの各コンポーネントのドライバを予め設定されたフォーマットのファイルにコンパイルする。予め設定されたフォーマットのファイルは、再配置の属性を有する。予め設定されたルールに従って予め設定されたフォーマットのファイルを格納し、予め設定されたフォーマットのファイルが格納された論理アドレスを取得する。モデル識別子のいずれか１つと取得された論理アドレスとの間の対応を格納する。
【００５５】
本発明のこの実施例では、予め設定されたフォーマットの多くのファイルが存在する。任意選択で、予め設定されたフォーマットのファイルは、ELF（Executable  and  Linkable  Format、実行可能及びリンク可能フォーマット）のファイルでもよい。この場合、予め設定されたフォーマットのファイルのサフィックスは、.oである。明らかに、実際の用途では、用途事例が変化すると、予め設定されたフォーマットのファイルもまた、他の形式になってもよく、詳細はここでは説明しない。
【００５６】
本発明のこの実施例では、同じタイプの各コンポーネントのドライバを予め設定されたフォーマットのファイルにコンパイルする多くの方式が存在する。ドライバに含まれるサフィックスが.cである各ファイルは、コンパイルコマンドを使用することにより、予め設定されたフォーマットのファイルにコンパイルされ、予め設定されたフォーマットの全てのコンパイルされたファイルは、リンクコマンドを使用することにより、予め設定されたフォーマットの１つのファイルにリンクされる。予め設定されたフォーマットのファイルは、ELFファイルでもよい。
【００５７】
図１Ｃに示すように、n個のファイルが１つのドライバに含まれ、各ファイルが格納される前に、各ファイルのサフィックスは.cである。ドライバにおいてサフィックスが.cである各ファイルは、まずコンパイルコマンドを使用することにより、サフィックスが.oであるファイルにコンパイルされ、次に、サフィックスが.oである全てのコンパイルされたファイルは、リンクコマンドを使用することにより、サフィックスが.oである１つのELFファイルフォーマットにリンクされる。ELFファイルフォーマットのファイルは、再配置の属性を有する。
【００５８】
本発明のこの実施例では、予め設定されたフォーマットのファイルは、以下の方式で予め設定されたルールに従って格納されてもよい。例えば、ドライバ及びレイアウト記述は、大きいミラーを生成するためにパッケージツールimagebuildを使用することによりパッケージ化され、生成された大きいミラーは、Flashに融合される。明らかに、最小オペレーティングシステムミラー、ドライバ及びレイアウト記述は、大きいミラーを生成するようにパッケージ化されてもよい。この場合、最小オペレーティングシステムミラー、ドライバ及びレイアウト記述を含む大きいミラーのデータ記憶構造記述フォーマットは、表１に示される。
【表１】
2016519385.tif 000003
【００５９】
前述の処理において、予め設定されたルールにより設定されたルールは、レイアウト記述に含まれる。すなわち、予め設定されたルールにより設定された形式は、レイアウト記述から取得されてもよい。
【００６０】
本発明のこの実施例では、予め設定されたルールは、多くの形式、例えば、連続的記憶及び間欠性記憶のような方式になってもよい。明らかに、他の方式が存在し、詳細はここでは説明しない。
【００６１】
本発明のこの実施例では、レイアウト記述のデータ構造は以下の通りである。
typedef  struct
{
uint32_t      file_count;
sh_file_node_t      file_list[];
}sh_section_desc_t;
sh_file_node_t  構造:
typedef  struct
{
uint32_t      file_id;//順に1から増加する番号、繰り返されない
uint32_t      file_size;
uint32_t      file_offset;//セグメントデータの開始アドレスSECTION_DATA_STARTに対するオフセット値
uint8_t      file_type;//1:ドライバ、2:アルゴリズム、3:その他
uint8_t      file_branch;//分岐
uint8_t      file_model;//コンポーネントモデル識別子
uint8_t      dyn_pol;//キャンプ／管理ポリシー、0:自動、1:永続的、他の値は要件に従って後に定義される
uint8_t      dyn_module_or_device_tag_list[SH_FILE_TAG_LIST];
char      file_vendor[SH_FILE_VENDOR_LEN];//プロバイダ
//このtagの定義はパケットのtagのものと一貫性を保持し、１つのモジュールはせいぜい8個のtagをサポートすることができる
char      file_name[SH_FILE_NAME_LEN];
uint32_t      file_crc;//巡回冗長検査コード
}sh_file_node_t;
【００６２】
ドライバが格納される場合、大きいミラーが生成され、Flashにプログラムされる。この場合、モデル識別子のいずれか１つと取得された論理アドレスとの間の対応は、レイアウト記述に格納される。
【００６３】
本発明のこの実施例では、予め設定されたフォーマットのファイルのアドレスフィールドは初期の予め設定された値であり、予め設定されたフォーマットのファイルが予め設定されたルールに従って格納された後に、この方法は、予め設定されたフォーマットのファイルのアドレスフィールドの初期の予め設定された値を論理アドレスに変更することを更に含む。
【００６４】
本発明のこの実施例では、コンポーネントに対応するモデル識別子に関連するドライバを検索する多くの方式が存在し、任意選択で、以下の方式が使用されてもよい。格納された関連付け関係から、コンポーネントに対応するモデル識別子に対応する論理アドレスを決定し、コンポーネントに対応するモデル識別子に関連するドライバとして予め設定されたフォーマットのファイルを使用する。予め設定されたフォーマットのファイルは、決定された論理アドレスに格納される。
【００６５】
例えば、コンポーネントに対応するモデル識別子に対応する論理アドレスは、Flashのレイアウト記述に格納された対応から検索され、決定された論理アドレスに格納された予め設定されたフォーマットのファイルは、コンポーネントに対応するモデル識別子に関連するドライバとして使用される。
【００６６】
本発明のこの実施例では、見つかったドライバを組み込みデバイスのメモリにロードする多くの方式が存在し、任意選択で、以下の方式が使用されてもよい。組み込みデバイスのメモリにロードされるドライバの物理アドレスを決定し、ドライバのアドレスフィールドを論理アドレスから物理アドレスに変更する。
【００６７】
本発明のこの実施例では、見つかったドライバを組み込みデバイスのメモリにロードする多くの方式が存在し、任意選択で、以下の方式が使用されてもよい。ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードする。
【００６８】
明らかに、実際の用途では、他の実現方式が存在し、詳細はここでは説明しない。
【００６９】
本発明のこの実施例では、ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードする多くの方式が存在し、任意選択で、以下の方式が使用されてもよい。最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、見つかったドライバを組み込みデバイスのメモリにコピーする。この方式は、正依存方式と呼ばれる。最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、見つかったドライバのインタフェース関数を呼び出し、組み込みデバイスのメモリにコピーされたドライバをリンクする。この方式は、負依存方式と呼ばれる。
【００７０】
具体的な実現において、図１Ｄに示す以下のステップが使用されてもよい。
【００７１】
ステップ1：最小オペレーティングシステムミラーは、ロードされるべきドライバに従って、呼び出されるべきインタフェース関数のポインタを初期化する、すなわち、インタフェース関数に論理アドレスを割り当てる。
【００７２】
しかし、論理アドレスが割り当てられた後に、インタフェース関数は、依然として呼び出されることができない。
【００７３】
ステップ2：最小オペレーティングシステムミラーは、ロードされるべきドライバの定義されたシンボル及び定義されていないシンボルを解析し、解析を用いて取得されたシンボルを、最小オペレーティングシステムミラーのシンボルテーブルに追加し、シンボルテーブルを更新し、更新されたシンボルテーブルから、呼び出されるべきインタフェース関数の物理アドレスを取得する。
【００７４】
ステップ3：物理アドレスに従って、呼び出されるべきインタフェース関数のポインタに値を割り当てる、すなわち、呼び出されるべきインタフェース関数の論理アドレスを物理アドレスに変更する。
【００７５】
実際の用途では、組み込みデバイスのいくつかのメモリは、デバイスに大きく影響を与える。例えば、メモリに格納された多くのリソースは、組み込みデバイスの低い動作効率をもたらす。従って、ドライバがロードされた後に組み込みデバイスの動作効率が大きく影響されることを妨げるために、本発明のこの実施例では、ドライバがロードされるときに分散ロードがサポートされる。全てのコンポーネントのドライバをコアのメモリにロードするのではなく、重要である或いは頻繁に使用されるいくつかのコンポーネントのドライバは、高い優先度を有するメモリにロードされ、あまり重要でない或いは頻繁に使用されないいくつかのコンポーネントのドライバは、低い優先度のメモリにロードされる。これにより、ドライバがロードされた後に組み込みデバイスの動作効率が大きく影響されることを妨げる。
【００７６】
例えば、SRAM（Static  Random  Access  Memory、スタティックランダムアクセスメモリ）空間が不十分である場合、初期化されたドライバ及びあまり頻繁に使用されないドライバは、DDR（Double  Data  Rate、ダブルデータレート・シンクロナス・ダイナミックランダムアクセスメモリ）にロードされる。
【００７７】
具体的な実現処理では、以下の方式が使用されてもよい。
【００７８】
リンクスクリプトを使用することにより、セグメント属性は、ロードされるべきドライバのデータ及び関数について構成されてもよい。ダイナミックロード処理では、ロードされるべきドライバのデータ及び関数について構成されたセグメント属性が分析され、ロードされるべきドライバは、分散方式でDDRメモリ又はSRAMメモリにロードされる。
【００７９】
本発明のこの実施例で説明したロードは、少なくとも２つの意味を含む。１つの意味は、組み込みデバイスのメモリにドライバをコピーする動作を示し、他の意味は、組み込みデバイスのメモリにコピーされたドライバをリンクする動作を示す。明らかに、実際の用途では、ロードの意味は、異なる具体的な用途事例によって変化してもよく、詳細はここでは説明しない。
【００８０】
本発明のこの実施例を良く理解するために、以下に、具体的な用途事例を提供し、図２に示すように、ドライバをロードする処理について更なる詳細な説明を行う。
【００８１】
ステップ200：組み込みデバイスの最小オペレーティングシステムミラーを生成する。
【００８２】
ステップ210：ドライバが組み込みデバイスにロードされるべき10個のコンポーネントのそれぞれのコンポーネントに対応する予め設定されたモデル識別子と、各モデル識別子に対応するドライバとを決定する。
【００８３】
ステップ220：レイアウト記述を用いて、ドライバがロードされるべき各コンポーネントに対応する予め設定されたモデル識別子と、対応するドライバが格納される物理アドレスとの対応をFlashに格納する。
【００８４】
ステップ230：ドライバをロードするための命令が受信された場合、ドライバが組み込みデバイスにロードされるべき10個のコンポーネントに対応するモデル識別子を決定し、決定されたモデル識別子のいずれか１つについて、最小オペレーティングシステムミラーを使用することにより、Flashに格納されたレイアウト記述からモデル識別子のいずれか１つに対応するドライバの論理アドレスを検索する動作を別々に実行する。
【００８５】
ステップ240：最小オペレーティングシステムミラーを使用することにより、それぞれ見つかった論理アドレスに位置するドライバを決定し、決定されたドライバを組み込みデバイスのメモリにロードし、ドライバがロードされるべきコンポーネントのいずれか１つを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御する。
【００８６】
前述の技術的対策に基づいて、図３を参照して、本発明の実施例は、ドライバをロードする組み込みデバイスを対応して提供する。組み込みデバイスは、決定ユニット30と、検索ユニット31と、ロードユニット32とを含む。決定ユニット30は、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するように構成される。コンポーネントは、ドライバがロードされるべきコンポーネントである。検索ユニット31は、コンポーネントに対応するモデル識別子に関連するドライバを検索するように構成される。ロードユニット32は、見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御するように構成される。
【００８７】
本発明のこの実施例では、任意選択で、検索ユニット31は、組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、コンポーネントに対応するモデル識別子に関連するドライバを検索するように具体的に構成される。最小オペレーティングシステムミラーは、組み込みデバイスを開始し、サービス機能を実行し、組み込みデバイスに含まれるコンポーネントのドライバをロードするために使用される。具体的に、最小オペレーティングシステムミラーは、BSP、オペレーティングシステム及びアプリケーション層ソフトウェアのみを含んでもよい。
【００８８】
本発明のこの実施例では、生成ユニット33が更に含まれ、生成ユニット33は、組み込みデバイスの最小オペレーティングシステムミラーを生成するように構成される。
【００８９】
本発明のこの実施例では、任意選択で、生成ユニット33は、初期の最小オペレーティングシステムミラーを生成するために、組み込みデバイスのサービス機能に基づいて開発された元のコードをコンパイルするように構成されたコンパイルモジュールであり、初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを含み、元のコードは、組み込みデバイスのサービス機能を実現するために使用されるコンパイルモジュールと、実行可能及びリンク可能フォーマットのファイルからシンボルテーブルを抽出するように構成された抽出モジュールであり、実行可能及びリンク可能フォーマットのファイルは、初期の最小オペレーティングシステムミラーに含まれ、シンボルテーブルをCファイルに生成し、生成されたCファイルを元のコードに追加するように構成された抽出モジュールとを含み、コンパイルモジュールは、組み込みデバイスの最小オペレーティングシステムミラーを取得するために、Cファイルが追加された元のコードをコンパイルするように更に構成される。
【００９０】
本発明のこの実施例では、記憶ユニット34が更に含まれ、記憶ユニット34は、コンポーネントと同じタイプのコンポーネントの各モデル識別子と、同じタイプのコンポーネントに対応するドライバとを決定し、同じタイプのコンポーネントは、コンポーネントと同じ属性又は機能を有するコンポーネントであり、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納するように具体的に構成される。
【００９１】
本発明のこの実施例では、任意選択で、記憶ユニット34が、コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、同じタイプのコンポーネントの決定されたドライバとの間の関連付け関係を格納することは、具体的に、同じタイプの各コンポーネントのドライバを予め設定されたフォーマットのファイルにコンパイルし、予め設定されたフォーマットのファイルは、再配置の属性を有し、予め設定されたルールに従って予め設定されたフォーマットのファイルを格納し、予め設定されたフォーマットのファイルが格納された論理アドレスを取得し、モデル識別子のいずれか１つと取得された論理アドレスとの間の対応を格納することである。
【００９２】
本発明のこの実施例では、更に、記憶ユニット34は、予め設定されたフォーマットのファイルのアドレスフィールドの初期の予め設定された値を論理アドレスに変更するように更に構成される。予め設定されたフォーマットのファイルのアドレスフィールドは、初期の予め設定された値である。
【００９３】
本発明のこの実施例では、任意選択で、検索ユニット31は、格納された関連付け関係から、コンポーネントに対応するモデル識別子に対応する論理アドレスを決定し、コンポーネントに対応するモデル識別子に関連するドライバとして予め設定されたフォーマットのファイルを使用するように具体的に構成され、予め設定されたフォーマットのファイルは、決定された論理アドレスに格納される。
【００９４】
本発明のこの実施例では、任意選択で、ロードユニット32は、組み込みデバイスのメモリにロードされるドライバの物理アドレスを決定し、ドライバのアドレスフィールドを論理アドレスから物理アドレスに変更するように具体的に構成される。
【００９５】
本発明のこの実施例では、任意選択で、ロードユニット32は、ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードするように具体的に構成される。
【００９６】
本発明のこの実施例では、任意選択で、ロードユニット32が、ダイナミックロード方式で最小オペレーティングシステムミラーを使用することにより、見つかったドライバを組み込みデバイスのメモリにロードすることは、具体的に、最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、見つかったドライバを組み込みデバイスのメモリにコピーし、最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、見つかったドライバのインタフェース関数を呼び出し、組み込みデバイスのメモリにコピーされたドライバをリンクすることである。
【００９７】
図４に示すように、図４は、本発明の実施例による組み込みデバイスの物理装置の概略図である。組み込みデバイスは、少なくとも１つのプロセッサ401と、通信バス402と、メモリ403と、少なくとも１つの通信インタフェース404とを含む。
【００９８】
通信バス402は、前述のコンポーネントの間の接続及び通信を実現するように構成され、通信インタフェース404は、外部デバイスとの接続及び通信を実現するように構成される。
【００９９】
メモリ403は、実行可能プログラムコード4031を格納するように構成される。プログラムコード4031を実行することにより、プロセッサ401は、組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定し、コンポーネントは、ドライバがロードされるべきコンポーネントであり、コンポーネントに対応するモデル識別子に関連するドライバを検索し、見つかったドライバを組み込みデバイスのメモリにロードし、コンポーネントを駆動するために、組み込みデバイスのメモリにロードされたドライバを制御するように構成される。
【０１００】
任意選択で、プロセッサ401は、メモリ403の実行可能コードを指定することにより、前述の実施例の他のステップ及び機能を実現するように更に構成されてもよい。詳細はここでは説明しない。
【０１０１】
結論として、本発明の実施例では、ドライバをロードする方法が提供される。この方法では、組み込みデバイスに含まれるコンポーネントに現在対応するモデル識別子が決定され、コンポーネントは、ドライバがロードされるべきコンポーネントであり、コンポーネントに対応するモデル識別子に関連するドライバが検索され、見つかったドライバが組み込みデバイスのメモリにロードされ、組み込みデバイスのメモリにロードされたドライバが、コンポーネントを駆動するように制御される。この対策では、ドライバがロードされるべきコンポーネントにドライバがロードされる場合、関連するドライバは、ドライバがロードされるべきコンポーネントのモデル識別子に従って検索され、関連するドライバがロードされ得る。複数のドライバ識別子の組み合わせが検索される必要はなく、また、複数のコンポーネントのドライバに対応する識別子の組み合わせが生成される必要はない。従って、消費される時間が低減され、ロード効率が改善される。
【０１０２】
本発明について、本発明の実施例による方法、デバイス（システム）及びコンピュータプログラムプロダクトのフローチャート及び／又はブロック図を参照して説明した。コンピュータプログラム命令は、フローチャート及び／又はブロック図の各処理及び／又は各ブロック、並びに、フローチャート及び／又はブロック図の処理及び／又はブロックの組み合わせを実現するために使用されてもよいことを認識するべきである。これらのコンピュータプログラム命令は、フローチャートの１つ以上の処理及び／又はブロック図の１つ以上のブロックの機能を実現する装置がコンピュータ又は他のプログラム可能データ処理デバイスのプロセッサにより実行される命令を使用することにより生成されるように、機械を生成するために、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、他のプログラム可能データ処理デバイスのプロセッサに提供されてもよい。
【０１０３】
これらのコンピュータプログラム命令はまた、コンピュータ読み取り可能メモリに格納された命令が命令装置を含むプロダクトを生成するように、コンピュータ又は他のプログラム可能データ処理デバイスに対して具体的な方式で動作するように命令し得るコンピュータ読み取り可能メモリに格納されてもよい。命令装置は、フローチャートの１つ以上の処理及び／又はブロック図の１つ以上のブロックの機能を実現する。
【０１０４】
これらのコンピュータプログラム命令はまた、コンピュータにより実現された処理を生成するために、一連の動作及びステップがコンピュータ又は他のプログラム可能デバイスで実行されるように、コンピュータ又は他のプログラム可能データ処理デバイスにロードされてもよい。従って、コンピュータ又は他のプログラム可能デバイスで実行される命令は、フローチャートの１つ以上の処理及び／又はブロック図の１つ以上のブロックの機能を実現するためのステップを提供する。
【０１０５】
本発明の例示的な実施例について説明したが、当業者は、基本的な発明の概念を学ぶことにより、これらの実施例に変更及び変形を行うことができる。従って、添付の特許請求の範囲は、例示的な実施例と、本発明の範囲内に入る全ての変更及び変形とをカバーするように解釈されることを意図する。
【０１０６】
明らかに、当業者は、本発明の実施例の要旨及び範囲を逸脱することなく、本発明の実施例に様々な変更及び変形を行うことができる。本発明は、これらの変更及び変形が添付の特許請求の範囲及びこれらの等価な技術の保護範囲内に入るという前提で、本発明の実施例に対するこれらの変更及び変形をカバーすることを意図する。
【図１Ａ】
2016519385.tif 000004
【図１Ｂ】
2016519385.tif 000005
【図１Ｃ】
2016519385.tif 000006
【図１Ｄ】
2016519385.tif 000007
【図２】
2016519385.tif 000008
【図３】
2016519385.tif 000009
【図４】
2016519385.tif 000010
【手続補正書】
【提出日】平成27年9月8日(2015.9.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ドライバをロードする方法であって、
組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するステップであり、前記コンポーネントは、ドライバがロードされるべきコンポーネントであるステップと、
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップと、
見つかったドライバを前記組み込みデバイスのメモリにロードし、前記コンポーネントを駆動するために、前記組み込みデバイスの前記メモリにロードされた前記ドライバを制御するステップと
を有する方法。
【請求項２】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップは、
前記組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバを検索するステップを有し、
前記最小オペレーティングシステムミラーは、前記組み込みデバイスを開始し、サービス機能を実行し、前記組み込みデバイスに含まれる前記コンポーネントの前記ドライバをロードするために使用される、請求項１に記載の方法。
【請求項３】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索する前に、
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するステップを更に有する、請求項２に記載の方法。
【請求項４】
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するステップは、
初期の最小オペレーティングシステムミラーを生成するために、前記組み込みデバイスの前記サービス機能に基づいて開発された元のコードをコンパイルするステップであり、前記初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを有し、前記元のコードは、前記組み込みデバイスの前記サービス機能を実現するために使用されるステップと、
前記実行可能及びリンク可能フォーマットの前記ファイルからシンボルテーブルを抽出するステップであり、前記実行可能及びリンク可能フォーマットの前記ファイルは、前記初期の最小オペレーティングシステムミラーに含まれるステップと、
前記シンボルテーブルに従ってCファイルを生成し、前記生成されたCファイルを前記元のコードに追加するステップと、
前記組み込みデバイスの前記最小オペレーティングシステムミラーを取得するために、前記Cファイルが追加された前記元のコードをコンパイルするステップと
を有する、請求項３に記載の方法。
【請求項５】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索する前に、
前記コンポーネントと同じタイプのコンポーネントの各モデル識別子と、前記同じタイプの前記コンポーネントのそれぞれに対応する各ドライバとを決定するステップであり、前記同じタイプの前記コンポーネントは、前記コンポーネントと同じ属性又は機能を有するコンポーネントであるステップと、
前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するステップと
を更に有する、請求項４に記載の方法。
【請求項６】
前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するステップは、
前記同じタイプの各コンポーネントの前記ドライバを予め設定されたフォーマットのファイルにコンパイルするステップであり、前記予め設定されたフォーマットの前記ファイルは、再配置の属性を有するステップと、
予め設定されたルールに従って前記予め設定された前記フォーマットのファイルを格納し、前記予め設定されたフォーマットの前記ファイルが格納された論理アドレスを取得するステップと、
前記モデル識別子のいずれか１つと前記取得された論理アドレスとの間の対応を格納するステップと
を有する、請求項５に記載の方法。
【請求項７】
前記予め設定されたフォーマットのファイルのアドレスフィールドは初期の予め設定された値であり、予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納した後に、
前記予め設定されたフォーマットの前記ファイルの前記アドレスフィールドの前記初期の予め設定された値を前記論理アドレスに変更するステップを更に有する、請求項６に記載の方法。
【請求項８】
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するステップは、
前記格納された関連付け関係から、前記コンポーネントに対応する前記モデル識別子に対応する論理アドレスを決定するステップと、
前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバとして予め設定されたフォーマットのファイルを使用するステップであり、前記予め設定されたフォーマットの前記ファイルは、前記決定された論理アドレスに格納されるステップと
を有する、請求項７に記載の方法。
【請求項９】
見つかったドライバを前記組み込みデバイスのメモリにロードするステップは、
前記組み込みデバイスの前記メモリにロードされる前記ドライバの物理アドレスを決定するステップと、
前記ドライバのアドレスフィールドを論理アドレスから前記物理アドレスに変更するステップと
を有する、請求項８に記載の方法。
【請求項１０】
見つかったドライバを前記組み込みデバイスのメモリにロードするステップは、
ダイナミックロード方式で前記最小オペレーティングシステムミラーを使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにロードするステップを有する、請求項２ないし９のうちいずれか１項に記載の方法。
【請求項１１】
ダイナミックロード方式で前記最小オペレーティングシステムミラーを使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにロードするステップは、
前記最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにコピーするステップと、
前記最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、前記見つかったドライバのインタフェース関数を呼び出し、前記組み込みデバイスの前記メモリにコピーされた前記ドライバをリンクするステップと
を有する、請求項１０に記載の方法。
【請求項１２】
ドライバをロードする組み込みデバイスであって、
前記組み込みデバイスに含まれるコンポーネントに対応するモデル識別子を決定するように構成された決定ユニットであり、前記コンポーネントは、ドライバがロードされるべきコンポーネントである決定ユニットと、
前記コンポーネントに対応する前記モデル識別子に関連するドライバを検索するように構成された検索ユニットと、
見つかったドライバを前記組み込みデバイスのメモリにロードし、前記コンポーネントを駆動するために、前記組み込みデバイスの前記メモリにロードされた前記ドライバを制御するように構成されたロードユニットと
を有する組み込みデバイス。
【請求項１３】
前記検索ユニットは、前記組み込みデバイスの最小オペレーティングシステムミラーを使用することにより、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバを検索するように構成され、
前記最小オペレーティングシステムミラーは、前記組み込みデバイスを開始し、サービス機能を実行し、前記組み込みデバイスに含まれる前記コンポーネントの前記ドライバをロードするために使用される、請求項１２に記載の組み込みデバイス。
【請求項１４】
前記組み込みデバイスの前記最小オペレーティングシステムミラーを生成するように構成された生成ユニットを更に有する、請求項１３に記載の組み込みデバイス。
【請求項１５】
前記生成ユニットは、
初期の最小オペレーティングシステムミラーを生成するために、前記組み込みデバイスの前記サービス機能に基づいて開発された元のコードをコンパイルするように構成されたコンパイルモジュールであり、前記初期の最小オペレーティングシステムミラーは、実行可能ファイルと、実行可能及びリンク可能フォーマットのファイルとを有し、前記元のコードは、前記組み込みデバイスの前記サービス機能を実現するために使用されるコンパイルモジュールと、
前記実行可能及びリンク可能フォーマットの前記ファイルからシンボルテーブルを抽出するように構成された抽出モジュールであり、前記実行可能及びリンク可能フォーマットの前記ファイルは、前記初期の最小オペレーティングシステムミラーに含まれ、前記シンボルテーブルに従ってCファイルを生成し、前記生成されたCファイルを前記元のコードに追加するように構成された抽出モジュールと
を有し、
前記コンパイルモジュールは、前記組み込みデバイスの前記最小オペレーティングシステムミラーを取得するために、前記Cファイルが追加された前記元のコードをコンパイルするように更に構成される、請求項１４に記載の組み込みデバイス。
【請求項１６】
前記コンポーネントと同じタイプのコンポーネントの各モデル識別子と、前記同じタイプの前記コンポーネントのそれぞれに対応する各ドライバとを決定し、前記同じタイプの前記コンポーネントは、前記コンポーネントと同じ属性又は機能を有するコンポーネントであり、前記コンポーネントと同じタイプの各コンポーネントの決定されたモデル識別子と、前記同じタイプの前記コンポーネントの決定されたドライバとの間の関連付け関係を格納するように構成された記憶ユニットを更に有する、請求項１５に記載の組み込みデバイス。
【請求項１７】
前記記憶ユニットは、前記同じタイプの各コンポーネントの前記ドライバを予め設定されたフォーマットのファイルにコンパイルし、前記予め設定されたフォーマットの前記ファイルは、再配置の属性を有し、予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納し、前記予め設定されたフォーマットの前記ファイルが格納された論理アドレスを取得し、前記モデル識別子のいずれか１つと前記取得された論理アドレスとの間の対応を格納するように構成される、請求項１６に記載の組み込みデバイス。
【請求項１８】
前記予め設定されたフォーマットの前記ファイルのアドレスフィールドは初期の予め設定された値であり、
前記記憶ユニットは、前記予め設定されたルールに従って前記予め設定されたフォーマットの前記ファイルを格納した後に、前記予め設定されたフォーマットの前記ファイルの前記アドレスフィールドの前記初期の予め設定された値を前記論理アドレスに変更するように更に構成される、請求項１７に記載の組み込みデバイス。
【請求項１９】
前記検索ユニットは、前記格納された関連付け関係から、前記コンポーネントに対応する前記モデル識別子に対応する論理アドレスを決定し、前記コンポーネントに対応する前記モデル識別子に関連する前記ドライバとして予め設定されたフォーマットのファイルを使用するように構成され、前記予め設定されたフォーマットの前記ファイルは、前記決定された論理アドレスに格納される、請求項１８に記載の組み込みデバイス。
【請求項２０】
前記ロードユニットは、前記組み込みデバイスの前記メモリにロードされる前記ドライバの物理アドレスを決定し、前記ドライバのアドレスフィールドを論理アドレスから前記物理アドレスに変更するように構成される、請求項１９に記載の組み込みデバイス。
【請求項２１】
前記ロードユニットは、前記最小オペレーティングシステムミラーの関数及びグローバル変数を使用することにより、前記見つかったドライバを前記組み込みデバイスの前記メモリにコピーし、前記最小オペレーティングシステムミラーに基づいて関数ポインタの形式で、前記見つかったドライバのインタフェース関数を呼び出し、前記組み込みデバイスの前記メモリにコピーされた前記ドライバをリンクするように構成される、請求項２０に記載の組み込みデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
【図１Ａ】本発明の実施例に従ってドライバをロードするフローチャート
【図１Ｂ】本発明の実施例に従って最小オペレーティングシステムミラーを生成する概略図
【図１Ｃ】本発明の実施例に従ってドライバを予め設定されたフォーマットのファイルにコンパイルする概略図
【図１Ｄ】本発明の実施例に従ってロードする実現の概略図
【図２】本発明の実施例に従ってドライバをロードするフローチャート
【図３】本発明の実施例による組み込みデバイスの機能の概略構成図
【図４】本発明の実施例による組み込みデバイスの物理装置の概略構成図
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
図１Ｃに示すように、n個のファイルが１つのドライバに含まれ、各ファイルが格納される前に、各ファイルのサフィックスは.cである。ドライバにおいてサフィックスが.cである各ファイルは、まずコンパイルコマンドを使用することにより、サフィックスが.oであるファイルにコンパイルされ、次に、サフィックスが.oである全てのコンパイルされたファイルは、リンクコマンドを使用することにより、サフィックスが.oである１つのELFファイルにリンクされる。ELFファイルは、再配置の属性を有する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
例えば、SRAM（Static  Random  Access  Memory、スタティックランダムアクセスメモリ）空間が不十分である場合、初期化されたドライバ及びあまり頻繁に使用されないドライバは、DDR（Double  Data  Rate、ダブルデータレート）シンクロナス・ダイナミックランダムアクセスメモリにロードされる。
【国際調査報告】
2016519385.tif 000011
2016519385.tif 000012
2016519385.tif 000013
2016519385.tif 000014