(57)【要約】本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体に関し、コンピュータ技術分野に属する。前記方法は、ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するステップとを含む。関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。【選択図】図１
2017506791.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップと、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するステップと
を含むことを特徴とするファームウェア圧縮方法。
【請求項２】
前記ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するステップと、
前記第３保存アドレスに基づいて前記コードセグメントを読み取り、前記第４保存アドレスに基づいて前記データセグメントを読み取るステップ
を含むことを特徴とする請求項１に記載のファームウェア圧縮方法。
【請求項３】
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するステップは、
前記ファームウェアに対応する第２情報セグメントを読み取るステップと、
前記第２情報セグメント中に前記第３保存アドレス及び前記第４保存アドレスが保存されている場合、読み取った内容に基づいて前記第３保存アドレス及び前記第４保存アドレスを特定するステップと、
前記第２情報セグメント中に前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されている場合、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第３保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第４保存アドレスを特定するステップ
を含むことを特徴とする請求項２に記載のファームウェア圧縮方法。
【請求項４】
前記ファームウェアに対応する第１情報セグメントを設定するステップは、
圧縮後の前記コードセグメントの前記電子装置中における第１保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第２保存アドレスを設定して、前記第１保存アドレスを前記第１アドレス情報として特定し、また、前記第２保存アドレスを前記第２アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第１アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第２アドレス情報として特定するステップと、
前記第１圧縮解除アドレス、及び前記第２圧縮解除アドレスを設定するステップと
を含むことを特徴とする請求項１に記載のファームウェア圧縮方法。
【請求項５】
前記ファームウェアに対応する第１情報セグメントを設定するステップは、
前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するステップと、
前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第１情報セグメントに保存するステップと
をさらに含むことを特徴とする請求項１乃至４の中のいずれか１項に記載のファームウェア圧縮方法。
【請求項６】
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップは、
前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するステップと、
分割後の前記コードセグメントがｍ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するステップと、
分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと、
分割後の前記コードセグメントがｍ個のセグメントが含むし、且つ、分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと
を含むことを特徴とする請求項１乃至４の中のいずれか１項に記載のファームウェア圧縮方法。
【請求項７】
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るステップと、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップと、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するステップと
を含むことを特徴とするファームウェア圧縮解除方法。
【請求項８】
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップは、
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するステップと、
前記第１保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第２保存アドレス中から圧縮後の前記データセグメントを読み取るステップと
を含むことを特徴とする請求項７に記載のファームウェア圧縮解除方法。
【請求項９】
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するステップは、
前記第１アドレス情報が前記第１保存アドレスであり、前記第２アドレス情報が前記第２保存アドレスであると、読み取った内容に基づいて前記第１保存アドレス及び前記第２保存アドレスを特定するステップと、
前記第１アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第２アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第１保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第２保存アドレスを特定するステップと
を含むことを特徴とする請求項８に記載のファームウェア圧縮解除方法。
【請求項１０】
前記第１情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するステップと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
前記合計の大きさが前記ファームウェア実行スペースを越えると、前記ファームウェアにエラーが発生したことを提示するステップと
をさらに含むことを特徴とする請求項７乃至９の中のいずれか１項に記載のファームウェア圧縮解除方法。
【請求項１１】
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するための圧縮モジュールと、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するための情報セグメント設定モジュールと
を備えることを特徴とするファームウェア圧縮装置。
【請求項１２】
前記取得モジュールは、
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュールと、
前記第３保存アドレスに基づいて前記コードセグメントを読み取り、前記第４保存アドレスに基づいて前記データセグメントを読み取るための取得サブモジュールと
を備えることを特徴とする請求項１１に記載のファームウェア圧縮装置。
【請求項１３】
前記アドレス特定サブモジュールは、
前記ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュールと、
前記第２情報セグメント中に、前記第３保存アドレス及び前記第４保存アドレスが保存されていると、読み取った内容に基づいて前記第３保存アドレス及び前記第４保存アドレスを特定するための第１特定サブモジュールと、
前記第２情報セグメント中に、前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されていると、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第３保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第４保存アドレスを特定するための第２特定サブモジュールと
を備えることを特徴とする請求項１２に記載のファームウェア圧縮装置。
【請求項１４】
前記情報セグメント設定モジュールは、
圧縮後の前記コードセグメントの前記電子装置中における第１保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第２保存アドレスを設定して、前記第１保存アドレスを前記第１アドレス情報として特定し、また、前記第２保存アドレスを前記第２アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第１アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第２アドレス情報として特定するための第１設定サブモジュールと、
前記第１圧縮解除アドレス、及び前記第２圧縮解除アドレスを設定するための第２設定サブモジュールと
を備えることを特徴とする請求項１１に記載のファームウェア圧縮装置。
【請求項１５】
前記情報セグメント設定モジュールは、
前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するための大きさ取得サブモジュールと、
前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第１情報セグメントに保存するための大きさ保存サブモジュールと
をさらに備えることを特徴とする請求項１１乃至１４の中のいずれか１項に記載のファームウェア圧縮装置。
【請求項１６】
前記圧縮モジュールは、
前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後の前記コードセグメントがｍ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するための第１圧縮サブモジュールと、
分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュールと、
分割後の前記コードセグメントがｍ個のセグメントが含むし、且つ、分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュールと
を備えることを特徴とする請求項１１乃至１４の中のいずれか１項に記載のファームウェア圧縮装置。
【請求項１７】
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るための情報セグメント読取モジュールと、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するための取得モジュールと、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備えることを特徴とするファームウェア圧縮解除装置。
【請求項１８】
前記取得モジュールは、
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュールと、
前記第１保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第２保存アドレス中から圧縮後の前記データセグメントを読み取るための取得サブモジュールと
を備えることを特徴とする請求項１７に記載のファームウェア圧縮解除装置。
【請求項１９】
前記アドレス特定サブモジュールは、
前記第１アドレス情報が前記第１保存アドレスであり、前記第２アドレス情報が前記第２保存アドレスであると、読み取った内容に基づいて前記第１保存アドレス及び前記第２保存アドレスを特定するための第１特定サブモジュールと、
前記第１アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第２アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第１保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第２保存アドレスを特定するための第２特定サブモジュールと
を備えることを特徴とする請求項１８に記載のファームウェア圧縮解除装置。
【請求項２０】
前記第１情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するための算出モジュールと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
前記検出モジュールの検出結果が、前記合計の大きさが前記ファームウェア実行スペースを越えることであると、前記ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備えることを特徴とする請求項１７乃至１９の中のいずれか１項に記載のファームウェア圧縮解除装置。
【請求項２１】
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
前記プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮し、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するように構成される
ことを特徴とするファームウェア圧縮装置。
【請求項２２】
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
前記プロセッサは、
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取り、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得し、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するように構成される
ことを特徴とするファームウェア圧縮解除装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、出願番号がＣＮ２０１５１００４４８８５.Ｘであって、出願日が２０１５年１月２９日である中国特許出願に基づいて優先権を主張し、当該中国特許出願のすべての内容を援用する。
【０００２】
本発明は、コンピュータ技術分野に関し、特に、ファームウェア圧縮方法、ファームウェア圧縮解除方法、及び装置に関する。
【背景技術】
【０００３】
ファームウェアとは、電子装置の最下層の作業を担当するソフトウェアであり、電子装置の一般的に動作を保証するソフトウェアである。一般的に、電子装置の機能が複雑になるほど、電子装置に必要なファームウェアも大きくなる。即ち、当該ファームウェアを保存するための保存スペースも大きくなる。
【０００４】
関連技術では、ファームウェアが電子装置中で占める保存スペースを削減するために、一般的に、ファームウェアを一つの全体として圧縮する。電子装置は、ファームウェアを実行しようとすると、圧縮後のファームウェアを圧縮解除してから、圧縮解除後のコードセグメントに対応する第１圧縮解除アドレスに基づいて、圧縮解除し得たファームウェア中のコードセグメントを当該第１圧縮解除アドレスへコピーして、圧縮解除後のデータセグメントに対応する第２圧縮解除アドレスに基づいて、圧縮解除後のデータセグメントを当該第２圧縮解除アドレスへコピーする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法、及び装置を提供する。その構成は、以下のとおりである。
【課題を解決するための手段】
【０００６】
本発明の実施例に係る第１の態様によると、ファームウェア圧縮方法を提供する。
【０００７】
当該方法は、
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するステップと
を含む。
【０００８】
オプションとして、ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するステップと、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るステップと
を含む。
【０００９】
オプションとして、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するステップは、
ファームウェアに対応する第２情報セグメントを読み取るステップと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するステップと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するステップと
を含む。
【００１０】
オプションとして、ファームウェアに対応する第１情報セグメントを設定するステップは、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するステップと、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するステップと
を含む。
【００１１】
オプションとして、ファームウェアに対応する第１情報セグメントを設定するステップは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するステップと、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するステップと
を含む。
【００１２】
オプションとして、コードセグメント及びデータセグメントをそれぞれ圧縮するステップは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するステップと、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するステップと、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと
を含む。
【００１３】
本発明の実施例に係る第２の態様によると、ファームウェア圧縮解除方法を提供する。
【００１４】
当該方法は、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るステップと、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するステップと、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除するステップと
を含む。
【００１５】
オプションとして、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するステップは、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するステップと、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るステップと
を含む。
【００１６】
オプションとして、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するステップは、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するステップと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するステップと
を含む。
【００１７】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該方法は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するステップと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示するステップと
を、さらに、含む。
【００１８】
本発明の実施例に係る第３の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
コードセグメント及びデータセグメントをそれぞれ圧縮するための圧縮モジュールと、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するための情報セグメント設定モジュールと
を備える。
【００１９】
オプションとして、当該取得モジュールは、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュールと、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュールと
を備える。
【００２０】
オプションとして、当該アドレス特定サブモジュールは、
ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュールと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するための第１特定サブモジュールと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するための第２特定サブモジュールと
を備える。
【００２１】
オプションとして、当該情報セグメント設定モジュールは、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するための第１設定サブモジュールと、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するための第２設定サブモジュールと
を備える。
【００２２】
オプションとして、当該情報セグメント設定モジュールは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュールと、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するための大きさ保存サブモジュールと
を、さらに、備える。
【００２３】
オプションとして、当該圧縮モジュールは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第１圧縮サブモジュールと、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュールと、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュールと
備える。
【００２４】
本発明の実施例に係る第４の態様によると、ファームウェア圧縮解除装置を提供する。
【００２５】
当該装置は、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るための情報セグメント読取モジュールと、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するための取得モジュールと、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備える。
【００２６】
オプションとして、当該取得モジュールは、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュールと、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュールと
を備える。
【００２７】
オプションとして、当該アドレス特定サブモジュールは、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するための第１特定サブモジュールと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するための第２特定サブモジュールと
を備える。
【００２８】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュールと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
モジュールの検出結果が、合計の大きさがファームウェア実行スペースを越えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備える。
【００２９】
本発明の実施例に係る第５の態様によると、ファームウェア圧縮装置を提供する。
【００３０】
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
コードセグメント及びデータセグメントをそれぞれ圧縮し、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する
ように構成される。
【００３１】
本発明の実施例に係る第６の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取り、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得し、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する
ように構成される。
【発明の効果】
【００３２】
本発明の実施例が提供する構成の有益な効果は以下のとおりである。
【００３３】
ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００３４】
以上の統括な記述と以下の細部記述は、ただ例示的なものであり、本発明を制限するものではないと、理解するべきである。
【図面の簡単な説明】
【００３５】
以下の図面は、明細書の一部分として明細書全体を構成することにより、本発明に合致する実施例を例示するとともに、本発明の原理を解釈するためのものである。
【図１】例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。
【図２Ａ】例示的なもう一実施例に係るファームウェア圧縮方法を示すフローチャートである。
【図２Ｂ】例示的なもう一実施例に係る第３保存アドレス及び第４保存アドレスを特定するための特定方法を示すフローチャートである。
【図２Ｃ】例示的なもう一実施例に係る第１情報セグメントを設定するための設定方法を示すフローチャートである。
【図２Ｄ】例示的なもう一実施例に係る第１情報セグメントを設定するためのもう一設定方法を示すフローチャートである。
【図２Ｅ】例示的なもう一実施例に係るコードセグメント及びデータセグメントを圧縮するための圧縮方法を示すフローチャートである。
【図３】例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
【図４Ａ】例示的なもう一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
【図４Ｂ】例示的なもう一実施例に係る第１保存アドレス及び第２保存アドレスを特定するための特定方法を示すフローチャートである。
【図４Ｃ】例示的なもう一実施例に係るファームウェアにエラーがあるか否かを検出する流れを示すフローチャートである。
【図５】例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。
【図６Ａ】例示的なもう一実施例に係るファームウェア圧縮装置を示すブロック図である。
【図６Ｂ】例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。
【図６Ｃ】例示的なもう一実施例に係る圧縮モジュールを示すブロック図である。
【図７】例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
【図８Ａ】例示的なもう一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
【図８Ｂ】例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。
【図９】例示的な一実施例に係るファームウェアを圧縮するための装置を示すブロック図である。
【図１０】例示的な一実施例に係るファームウェアを圧縮解除するための装置を示すブロック図である。
【発明を実施するための形態】
【００３６】
ここで、例示的な実施例を詳細に説明する。また、説明中の例は、図面に示している。以下の記述において、図面を説明する際に特に説明しない場合、異なる図面中の同一の符号は、同一或は同様な要素を意味する。以下の例示的な実施例において記述する実施方法は、本発明に合致するすべての実施方法を代表しない。逆に、それらは、添付の特許請求の範囲において詳細に記述された、本発明のいくつかの態様と合致する装置、及び方法の例に過ぎない。
【００３７】
まず、理解の便利をために、各実施例に係る各名詞を簡単に説明する。
【００３８】
コードセグメントは、「ｔｘｔセグメント」とも呼ばれ、その中にはファームウェア中の実行可能なコードが保存される。
【００３９】
データセグメントは、「ｄａｔａセグメント」とも呼ばれ、その中にはファームウェアコードを実行するのに必要なグローバル静的データが保存される。
【００４０】
図１は、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図１に示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【００４１】
ステップ１０１において、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【００４２】
ステップ１０２において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【００４３】
ステップ１０３において、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【００４４】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００４５】
図２Ａは、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図２Ａに示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【００４６】
ステップ２０１において、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定する。
【００４７】
サーバには、コードセグメント及びデータセグメントを含むファームウェアが保存されている。サーバは、ファームウェアを圧縮する必要があると、コードセグメントのサーバ中における第３保存アドレス、及びデータセグメントのサーバ中における第４保存アドレスを特定してもよい。
【００４８】
図２Ｂを参照すると、本ステップは、以下のステップを含んでもよい。
【００４９】
ステップ２０１ａにおいて、ファームウェアに対応する第２情報セグメントを読み取る。
【００５０】
サーバは、ファームウェアを保存する同時に、ファームウェアに対応する第２情報セグメントをさらに保存してもよい。当該第２情報セグメントは、第３保存アドレス及び第４保存アドレスを含むか、或いは、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさを含んでもよい。このため、サーバは、第３保存アドレス及び第４保存アドレスを特定する必要があると、当該第２情報セグメントを読み取ってもよい。
【００５１】
ステップ２０１ｂにおいて、第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定する。
【００５２】
ステップ２０１ｃにおいて、第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定する。
【００５３】
例えば、第２情報セグメント中に保存されているコードセグメントの開始保存アドレスがＤ１であり、コードセグメントの大きさがＳ１であり、Ｓ１大きさのコードセグメントを保存するのに必要な保存スペースがｄ１であると、第３保存アドレスはＤ１〜Ｄ１＋ｄ１である。
【００５４】
ステップ２０２において、第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取る。
【００５５】
サーバは、第３保存アドレス及び第４保存アドレスを特定した後に、第３保存アドレス中からコードセグメントを読み取り、第４保存アドレス中からデータセグメントを読み取ってもよい。
【００５６】
例えば、サーバは、Ｄ１〜Ｄ１＋ｄ１中から、コードセグメントを読み取る。
【００５７】
ステップ２０３において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【００５８】
サーバは、読み取ったコードセグメントを圧縮し、また、読み取ったデータセグメントを圧縮する。
【００５９】
ステップ２０４において、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【００６０】
サーバは、コードセグメント及びデータセグメントをそれぞれ圧縮した後に、ファームウェアに対応する第１情報セグメントを設定してもよい。
【００６１】
図２Ｃを参照すると、本ステップは、以下のステップを含んでもよい。
【００６２】
ステップ２０４ａにおいて、圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定する。
【００６３】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報とし、また、第２保存アドレスを第２アドレス情報にする。ここで、サーバは、圧縮後のコードセグメントの電子装置のＦｌａｓｈ中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置のＦｌａｓｈにおける第２保存アドレスを設定してもよい。
【００６４】
或いは、サーバは、さらに、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの電子装置中における開始保存アドレスのみ設定し、その後に、圧縮後のコードセグメントの大きさ、及び圧縮後のデータセグメントの大きさをそれぞれを取得して、最後に、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報とし、圧縮後のデータセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの大きさを、第２アドレス情報としてもよい。
【００６５】
ステップ２０４ｂにおいて、第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定する。
【００６６】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、さらに、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを、予め設定してもよい。
【００６７】
本実施例においては、まず、ステップ２０４ａを実行した後に、ステップ２０４ｂを実行する例を挙げたが、オプションとして、実行ステップ２０４ａとステップ２０４ｂを同時に実行するか、或いは、まず、ステップ２０４ｂを実行した後に、ステップ２０４ａを実行してもよく、これに対して制限しないことを説明する必要がある。
【００６８】
本実施例においては、第１情報セグメントのみを設定する例を挙げたが、オプションとして、第２情報セグメント中に第１情報セグメント中の各内容を設定してもよく、これに対して制限しないことをさらに説明する必要がある。
【００６９】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００７０】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【００７１】
図２Ｄを参照すると、上記の各実施例において、サーバがファームウェアに対応する第１情報セグメントを設定するステップは、以下のステップを、さらに、含んでもよい。
ステップ２０４ｃにおいて、コードセグメントの大きさ及びデータセグメントの大きさを取得する。
【００７２】
サーバは、さらに、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさを取得してもよい。
【００７３】
オプションとして、サーバは、第２情報セグメント中に両方の大きさが保存されていると、第２情報セグメント中から上記の内容を読み取ってもよい。
【００７４】
サーバは、第２情報セグメント中に、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスが保存されていると、第３保存アドレスのアドレスの長さに基づいてコードセグメントの大きさを特定し、また、第３保存アドレスのアドレスの長さに基づいてデータセグメントの大きさを特定してもよく、本実施例においてはこれに対して制限しない。
【００７５】
ステップ２０４ｄにおいて、コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存する。
【００７６】
サーバは、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第１情報セグメントに保存してもよい。
【００７７】
当然ながら、サーバは、第１情報セグメント中の内容を、直接、第２情報セグメント中に設定すると、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第２情報セグメントに保存してもよく、本実施例においてはこれに対して制限しない。また、サーバは、もし、第２情報セグメント中に上記の両方の大きさが既に保存されていると、ステップ２０４ｃとステップ２０４ｄを実行しないでもよく、本実施例においてはこれに対しても制限しない。
【００７８】
また、本実施例においては、ステップ２０４ａ、ステップ２０４ｂ及びステップ２０４ｃを実行する順序に対して制限しない。サーバは、実際の適用場面によってその順序を調整してもよい。
【００７９】
図２Ｅを参照すると、上記の実施例において、ステップ２０３は、以下のステップを含んでもよい。
【００８０】
ステップ２０３ａにおいて、コードセグメント及びデータセグメントの中の少なくとも一つを分割する。
【００８１】
サーバは、ファームウェア中のコードセグメント及びデータセグメントを取得した後に、コードセグメントを分割するか、或いは、データセグメントを分割か、或いは、コードセグメント及びデータセグメントの両方を分割してもよい。
【００８２】
例えば、サーバは、コードセグメントを分割する例を挙げると、コードセグメントをｍ個のセグメントに分割してもよい。
【００８３】
オプションとして、分割後のコードセグメント中の各セグメントの長さは、同一であるか、或は、同一でない。同様に、分割後のデータセグメント中の各セグメントの長さも、同一であるか、或は、同一でない。
【００８４】
ステップ２０３ｂにおいて、分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮する。
【００８５】
サーバは、コードセグメントをｍ個のセグメントに分割すると、分割し得たｍ個のセグメントをそれぞれ圧縮する同時に、データセグメントを圧縮する。
【００８６】
これに対し、サーバが設定する第１アドレス情報は、圧縮後のｍ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第１圧縮解除アドレスは、圧縮後のｍ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【００８７】
ステップ２０３ｃにおいて、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮する。
【００８８】
サーバは、データセグメントをｎ個のセグメントに分割すると、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮してもよい。
【００８９】
これに対し、サーバが設定する第２アドレス情報は、圧縮後のｎ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第２圧縮解除アドレスは、圧縮後のｎ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスをふくんでもよい。
【００９０】
ステップ２０３ｄにおいて、分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮する。
【００９１】
同様に、サーバは、コードセグメントをｍ個のセグメントに分割し、また、データセグメントをｎ個のセグメントに分割すると、分割後のコードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、分割後のデータセグメント中のｎ個のセグメントをそれぞれ圧縮してもよい。
【００９２】
これに対し、サーバが設定する第１アドレス情報は、ｍ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第１圧縮解除アドレスは、ｍ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含み、サーバが設定する第２アドレス情報は、ｎ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第２圧縮解除アドレスは、ｎ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【００９３】
図３は、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図３に示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【００９４】
ステップ３０１において、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【００９５】
ステップ３０２において、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【００９６】
ステップ３０３において、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【００９７】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００９８】
図４Ａは、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図４Ａに示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【００９９】
ステップ４０１において、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１００】
電子装置は、ネットワークを介してサーバからファームウェアを取得するか、或いは、回復装置（ｒｅｃｏｖｅｒｙ ｄｅｖｉｃｅ）或いはモバイル記憶デバイスからファームウェアを取得してもよい。当該ファームウェアは、一般的に、圧縮後のファームウェアであり、また、圧縮後のファームウェアは、一般的に、圧縮後のコードセグメント、圧縮後のデータセグメント、及び第１情報セグメントを含む。ここで、第１情報セグメントは、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む。また、回復装置及びモバイル記憶デバイス中のファームウェアは、サーバから事前に取得したファームウェアであってもよく、本実施例においてはこれに対して制限しない。
【０１０１】
電子装置は、ファームウェアを実行する必要があると、ファームウェアに対応する第１情報セグメントを読み取ってもよい。
【０１０２】
ステップ４０２において、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定する。
【０１０３】
電子装置は、第１情報セグメント中の第１アドレス情報及び第２アドレス情報を読み取った後に、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定してもよい。
【０１０４】
図４Ｂを参照すると、本ステップは、以下のステップを含んでもよい。
【０１０５】
ステップ４０２ａにおいて、第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定する。
【０１０６】
ステップ４０２ｂにおいて、第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定する。
【０１０７】
本ステップは、上記の実施例中のステップ２０１ｃと同様であるため、本実施例においては繰り返して説明しない。
【０１０８】
ステップ４０３において、第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取る。
【０１０９】
ステップ４０４において、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１１０】
電子装置は、圧縮後のコードセグメント、及び圧縮後のデータセグメントを読み取った後に、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除してもよい。
【０１１１】
電子装置は、圧縮後のコードセグメント及び圧縮後のデータセグメント圧縮解除した後に、当該コードセグメントの入口から、当該コードセグメントを実行してもよい。
【０１１２】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１１３】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１１４】
図４Ｃを参照すると、上記の実施例において、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれている。当該方法は、さらに、以下のステップを含んでもよい。
【０１１５】
ステップ４０５において、圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出する。
【０１１６】
電子装置は、第１情報セグメント中に、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれていると、第１情報セグメントを読み取った後に、圧縮前のコードセグメントの大きさ及び圧縮前のデータセグメントの大きさの合計を算出して、両方の合計の大きさを算出してもよい。
【０１１７】
ステップ４０６において、合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出する。
【０１１８】
算出し得た合計の大きさが、電子装置中に預かったファームウェア実行スペースを越えるか否かを検出する。当該ファームウェア実行スペースとは、電子装置中に預かったファームウェアを実行するためのメモリスペースである。
【０１１９】
ステップ４０７において、合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示する。
【０１２０】
電子装置の検出結果が、コードセグメント及びデータセグメントの合計の大きさがファームウェア実行スペースを越えることであると、当該ファームウェアは当該モデルの電子装置に適用できるファームウェアではないことを説明する。この時、電子装置は、ファームウェアにエラーが発生したことを提示してもよい。
【０１２１】
上記のステップは、一般的に、ステップ４０４の前に実行して、検出結果が合計の大きさがファームウェア実行スペースを越えると、ステップ４０４を実行しない。電子装置は、検出結果が、合計の大きさがファームウェア実行スペースを超えない時にのみ、ステップ４０４を実行することになる。本実施例においてはこれに対して制限しないことを説明する必要がある。
【０１２２】
本実施例によると、コードセグメント及びデータセグメントの合計の大きさを検出することにより、ユーザに、ファームウェアにエラーがあるか否かを提示できる效果を得た。
【０１２３】
ステップ４０２は、以下のステップを含んでもよいことをさらに説明する必要がある。
【０１２４】
電子装置は、第１アドレス情報が、圧縮後のｍ個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第１保存アドレスは、圧縮後のｍ個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【０１２５】
この後、電子装置は、各保存アドレス中に保存したコードセグメントを読み取って、読み取った当該コードセグメントを第１圧縮解除アドレス中の当該コードセグメントに対応する圧縮解除アドレスへ圧縮解除してもよい。例えば、電子装置は、ｍ個のセグメント中のi番目のセグメントに対しては、第１アドレス情報中からi番目のコードセグメントのアドレス情報を読み取って、i番目のコードセグメントのアドレス情報に基づいてi番目のコードセグメントの保存アドレスを特定してから、i番目のコードセグメントの保存アドレス中からi番目のコードセグメントを読み取り、また、読み取ったi番目のコードセグメントを、第１圧縮解除アドレス中の第iセグメントコードセグメントに対応する圧縮解除アドレスへ圧縮解除する。
【０１２６】
同様に、電子装置は、第２アドレス情報が、圧縮後のデータセグメント中のｎ個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第２保存アドレスが、圧縮後のｎ個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【０１２７】
この後、電子装置は、各保存アドレス中に保存したデータセグメントを読み取って、読み取った当該データセグメントを、第２圧縮解除アドレス中の当該セグメントデータセグメントに対応する圧縮解除アドレスへ圧縮解除する。これは、圧縮後のｍ個のコードセグメントの処理方法と同様であるため、本実施例においては繰り返して説明しない。
【０１２８】
上記の各実施例において、圧縮後のファームウェアの保存フォーマットには、コードセグメント、データセグメント、及び情報セグメントが含まれていることをさらに説明する必要がある。ここで、情報セグメントは、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む。オプションとして、情報セグメントは、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさをさらに含む。当然ながら、情報セグメントは、他の情報を含んでもよく、本実施例においてはこれに対して制限しない。
【０１２９】
以下は、本発明の装置の実施例であり、本発明の方法の実施例を実行することができる。本発明の装置の実施例において記述していない細部内容に対しては、本発明の方法の実施例を参照してください。
【０１３０】
図５は、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図５に示したように、当該ファームウェア圧縮装置は、取得モジュール５１０、圧縮モジュール５２０、及び情報セグメント設定モジュール５３０を備えるが、これに制限されない。
【０１３１】
取得モジュール５１０は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【０１３２】
圧縮モジュール５２０は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【０１３３】
情報セグメント設定モジュール５３０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【０１３４】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１３５】
図６Ａは、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図６Ａに示したように、当該ファームウェア圧縮装置は、取得モジュール６１０、圧縮モジュール６２０、及び情報セグメント設定モジュール６３０を備えるが、これに制限されない。
【０１３６】
取得モジュール６１０は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【０１３７】
圧縮モジュール６２０は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【０１３８】
情報セグメント設定モジュール６３０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【０１３９】
オプションとして、当該取得モジュール６１０は、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュール６１１と、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュール６１２と
を備える。
【０１４０】
オプションとして、図６Ｂを参照すると、当該アドレス特定サブモジュール６１１は、
ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュール６１１ａと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するための第１特定サブモジュール６１１ｂと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するための第２特定サブモジュール６１１ｃと
を備える。
【０１４１】
オプションとして、当該情報セグメント設定モジュール６３０は、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するための第１設定サブモジュール６３１と、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するための第２設定サブモジュール６３２と
を備える。
【０１４２】
オプションとして、当該情報セグメント設定モジュール６３０は、さらに、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュール６３３と、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するための大きさ保存サブモジュール６３４と
を備える。
【０１４３】
オプションとして、図６Ｃを参照すると、当該圧縮モジュール６２０は、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュール６２１と、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第１圧縮サブモジュール６２２と、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュール６２３と、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュール６２４と
を備える。
【０１４４】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１４５】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１４６】
図７は、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図７に示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール７１０、取得モジュール７２０、及び圧縮解除モジュール７３０を備えるが、これに制限されない。
【０１４７】
情報セグメント読取モジュール７１０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１４８】
取得モジュール７２０は、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【０１４９】
圧縮解除モジュール７３０は、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１５０】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１５１】
図８Ａは、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図８Ａに示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール８１０、取得モジュール８２０、及び圧縮解除モジュール８３０を備えるが、これに制限されない。
【０１５２】
情報セグメント読取モジュール８１０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１５３】
取得モジュール８２０は、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【０１５４】
圧縮解除モジュール８３０は、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１５５】
オプションとして、当該取得モジュール８２０は、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュール８２１と、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュール８２２と
を備える。
【０１５６】
オプションとして、図８Ｂを参照すると、当該アドレス特定サブモジュール８２１は、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するための第１特定サブモジュール８２１ａと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するための第２特定サブモジュール８２１ｂと
を備える。
【０１５７】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュール８４０と、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュール８５０と、
検出モジュール８５０の検出結果が、合計の大きさがファームウェア実行スペースを超えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュール８６０と
を、さらに、備える。
【０１５８】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１５９】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１６０】
上記の実施例の装置について、その各モジュールが実行する操作の具体的な形態は既に当該方法に関する実施例において詳細に説明したため、ここでは詳細に説明しない。
【０１６１】
図９は、例示的な一実施例に係るファームウェアを圧縮するための装置９００を示すブロック図である。例えば、装置９００をサーバとして提供してもよい。図９を参照すると、装置９００は、プロセスアセンブリ９２２を備える。当該プロセスアセンブリ９２２は、一つ以上のプロセッサ、及びメモリ９３２を代表とするメモリリソースを、さらに備える。当該メモリリソースは、プロセスアセンブリ９２２によって実行される、例えばアプリケーションプログラムのような命令を保存する。メモリ９３２中に保存されたアプリケーションプログラムには、それぞれ一つの命令のセットに対応する一つ以上のモジュールを含まれてもよい。なお、プロセスアセンブリ９２２は、命令を実行することにより、上記のファームウェア圧縮方法を実行する。
【０１６２】
装置９００は、装置９００の電源を管理するための一つの電源アセンブリ９２６、装置９００をネットワークに接続させるための一つの有線又は無線のネットワークインターフェイス９５０、及び一つの入出力インターフェイス９５８を備えてもよい。装置９００は、メモリ９３２に保存された、例えば、Ｗｉｎｄｏｗｓ  ＳｅｒｖｅｒＴＭ、Ｍａｃ  ＯＳ  ＸＴＭ、ＵｎｉｘＴＭ，  ＬｉｎｕｘＴＭ、ＦｒｅｅＢＳＤＴＭのようなオペレーティング・システムによって、操作を行うことができる。
【０１６３】
図１０は、例示的な一実施例に係るファームウェア圧縮解除装置１０００を示すブロック図である。例えば、装置１０００は、携帯電話、コンピューター、デジタル放送端末、メッセージ送受信デバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
【０１６４】
図１０を参照して、装置１０００は、プロセスアセンブリ１００２、メモリ１００４、電源アセンブリ１００６、マルチメディアアセンブリ１００８、オーディオアセンブリ１０１０、入出力（Ｉ／Ｏ）インターフェイス１０１２、センサアセンブリ１０１４、及び通信アセンブリ１０１６のような一つ以上のアセンブリを含んでよい。
【０１６５】
プロセスアセンブリ１００２は、一般的には装置１０００の全体の動作を制御するものであり、例えば、表示、電話呼び出し、データ通信、カメラ動作、及び記録動作と関連する動作を制御する。プロセスアセンブリ１００２は、一つ以上のプロセッサ１０２０を含み、これらによって命令を実行することにより、上記の方法の全部、或は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ１００２は、一つ以上のモジュールを含み、これらによってプロセスアセンブリ１００２と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ１００２は、マルチメディアモジュールを含み、これらによってマルチメディアアセンブリ１００８とプロセスアセンブリ１００２の間のインタラクションを容易にするようにしてもよい。
【０１６６】
メモリ１００４は、各種類のデータを記憶することにより装置１０００の動作を支援するように構成される。これらのデータの例は、装置１０００において動作するいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ１００４は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、ＳＲＡＭ（ＳｔａｔｉｃＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ−Ｏｎｌｙ Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）、ＰＲＯＭ（ Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｂｅｒ）、磁気メモリ、フラッシュメモリ、磁気ディスク、或いは光ディスクである。
【０１６７】
電源アセンブリ１００６は、装置１０００の多様なアセンブリに電力を供給する。電源アセンブリ１００６は、電源管理システム、一つ以上の電源、及び装置１０００のための電力の生成、管理及び割り当てに関連付けられている他のアセンブリを含んでもよい。
【０１６８】
マルチメディアアセンブリ１００８は、前記装置１０００とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。上記の実施例において、スクリーンは液晶モニター（ＬＣＤ）とタッチパネル（ＴＰ）を含んでもよい。スクリーンがタッチパネルを含むことにより、スクリーンはタッチスクリーンを実現することができ、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含んでおり、タッチ、スワイプ、及びタッチパネル上のジェスチャを検出することができる。前記タッチセンサは、タッチ、或はスワイプの動作の境界だけでなく、前記のタッチ、或はスワイプ操作に係る継続時間及び圧力も検出できる。上記の実施例において、マルチメディアアセンブリ１００８は、一つのフロントカメラ、及び／又はリアカメラを含む。装置１０００が、例えば撮影モード、或はビデオモード等の動作モードにある場合、フロントカメラ、及び／又はリアカメラは外部からマルチメディアデータを受信できる。フロントカメラとリアカメラのそれぞれは、一つの固定型の光レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
【０１６９】
オーディオアセンブリ１０１０は、オーディオ信号を入出力するように構成されてもよい。例えば、オーディオアセンブリ１０１０は、一つのマイク（ＭＩＣ）を含み、装置１０００が、例えば呼出しモード、記録モード、及び音声認識モード等の動作モードにある場合、マイクは外部のオーディオ信号を受信することができる。受信されたオーディオ信号は、さらにメモリ１００４に記憶されたり、通信アセンブリ１０１６を介して送信されたりされる。上記の実施例において、オーディオアセンブリ１０１０は、オーディオ信号を出力するための一つのスピーカーをさらに含む。
【０１７０】
Ｉ／Ｏインターフェイス１０１２は、プロセスアセンブリ１００２と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、上記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンは、ホームボタン、ボリュームボタン、作動ボタン、ロッキングボタンを含んでもよいが、これらに限定されない。
【０１７１】
センサアセンブリ１０１４は、装置１０００に各種の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ１０１４は、装置１０００のＯＮ／ＯＦＦ状態、装置１０００のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出できる。また、例えば、センサアセンブリ１０１４は、装置１０００、或は装置１０００の一つのアセンブリの位置変更、ユーザと装置１０００とが接触しているか否か、装置１０００の方位、又は加速／減速、装置１０００の温度の変化を検出できる。センサアセンブリ１０１４は、何れの物理的接触がない状態にて付近の物体の存在を検出するための近接センサを含んでもよい。センサアセンブリ１０１４は、撮影アプリケーションに適用するため、ＣＭＯＳ、又はＣＣＤ画像センサのような光センサを含んでもよい。上記の実施例において、当該センサアセンブリ１０１４は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、及び温度センサをさらに含んでもよい。
【０１７２】
通信アセンブリ１０１６は、装置１０００と他の機器の間に有線、又は利便性のよい形態の通信を提供する。装置１０００は、例えばＷｉＦｉ（登録商標）、２Ｇ、３Ｇ、或はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ１０１６は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ１０１６は、近距離無線通信（ＮＦＣ）モジュールをさらに含むことにより、近距離通信を可能にする。例えば、ＮＦＣモジュールは、ＲＦＩＤ（Ｒａｄｉｏ Ｆｒｅｑｕｅｎｃｙ ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）技術、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ Ｄａｔａ Ａｓｓｏｃｉａｔｉｏｎ）技術、ＵＷＢ（Ｕｌｔｒａ Ｗｉｄｅ Ｂａｎｄ）技術、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））技術、他の技術に基づいて実現できる。
【０１７３】
例示的な実施例において、装置１０００は、一つ以上のＡＳＩＣ（ＡｐｐｌｉｃａｔｉｏｎＳｐｅｃｉｆｉｃ Ｉｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）、ＤＳＰＤ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｄｅｖｉｃｅ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
【０１７４】
例示的な実施例において、さらに、命令を含むコンピュータ読取り可能な非一時的な記録媒体、例えば命令を含むメモリ１００４を提供しており、装置１０００のプロセッサ１０２０により上記命令を実行して上記方法を実現する。例えば、前記コンピュータ読取り可能な非一時的な記録媒体は、ＲＯＭ、ＲＡＭ、ＣＤ-ＲＯＭ、磁気テープ、フロッピーディスク（登録商標）、光データ記憶デバイス等である。
【０１７５】
本発明は上記に記述され、また図面で示した厳密な構成に限定されず、その範囲を逸脱しない限り多様な置換えと変更を行うことができると、理解されるべきである。本発明の範囲は添付の特許請求の範囲のみにより限定される。
【図１】
2017506791.tif 000003
【図２Ａ】
2017506791.tif 000004
【図２Ｂ】
2017506791.tif 000005
【図２Ｃ】
2017506791.tif 000006
【図２Ｄ】
2017506791.tif 000007
【図２Ｅ】
2017506791.tif 000008
【図３】
2017506791.tif 000009
【図４Ａ】
2017506791.tif 000010
【図４Ｂ】
2017506791.tif 000011
【図４Ｃ】
2017506791.tif 000012
【図５】
2017506791.tif 000013
【図６Ａ】
2017506791.tif 000014
【図６Ｂ】
2017506791.tif 000015
【図６Ｃ】
2017506791.tif 000016
【図７】
2017506791.tif 000017
【図８Ａ】
2017506791.tif 000018
【図８Ｂ】
2017506791.tif 000019
【図９】
2017506791.tif 000020
【図１０】
2017506791.tif 000021
【手続補正書】
【提出日】平成27年12月28日(2015.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップと、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するステップと
を含むことを特徴とするファームウェア圧縮方法。
【請求項２】
前記ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するステップと、
前記第３保存アドレスに基づいて前記コードセグメントを読み取り、前記第４保存アドレスに基づいて前記データセグメントを読み取るステップ
を含むことを特徴とする請求項１に記載のファームウェア圧縮方法。
【請求項３】
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するステップは、
前記ファームウェアに対応する第２情報セグメントを読み取るステップと、
前記第２情報セグメント中に前記第３保存アドレス及び前記第４保存アドレスが保存されている場合、読み取った内容に基づいて前記第３保存アドレス及び前記第４保存アドレスを特定するステップと、
前記第２情報セグメント中に前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されている場合、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第３保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第４保存アドレスを特定するステップ
を含むことを特徴とする請求項２に記載のファームウェア圧縮方法。
【請求項４】
前記ファームウェアに対応する第１情報セグメントを設定するステップは、
圧縮後の前記コードセグメントの前記電子装置中における第１保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第２保存アドレスを設定して、前記第１保存アドレスを前記第１アドレス情報として特定し、また、前記第２保存アドレスを前記第２アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第１アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第２アドレス情報として特定するステップと、
前記第１圧縮解除アドレス、及び前記第２圧縮解除アドレスを設定するステップと
を含むことを特徴とする請求項１に記載のファームウェア圧縮方法。
【請求項５】
前記ファームウェアに対応する第１情報セグメントを設定するステップは、
前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するステップと、
前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第１情報セグメントに保存するステップと
をさらに含むことを特徴とする請求項１乃至４の中のいずれか１項に記載のファームウェア圧縮方法。
【請求項６】
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップは、
前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するステップと、
分割後の前記コードセグメントがｍ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するステップと、
分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと、
分割後の前記コードセグメントがｍ個のセグメントが含むし、且つ、分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと
を含むことを特徴とする請求項１乃至４の中のいずれか１項に記載のファームウェア圧縮方法。
【請求項７】
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るステップと、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップと、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するステップと
を含むことを特徴とするファームウェア圧縮解除方法。
【請求項８】
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップは、
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するステップと、
前記第１保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第２保存アドレス中から圧縮後の前記データセグメントを読み取るステップと
を含むことを特徴とする請求項７に記載のファームウェア圧縮解除方法。
【請求項９】
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するステップは、
前記第１アドレス情報が前記第１保存アドレスであり、前記第２アドレス情報が前記第２保存アドレスであると、読み取った内容に基づいて前記第１保存アドレス及び前記第２保存アドレスを特定するステップと、
前記第１アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第２アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第１保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第２保存アドレスを特定するステップと
を含むことを特徴とする請求項８に記載のファームウェア圧縮解除方法。
【請求項１０】
前記第１情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するステップと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
前記合計の大きさが前記ファームウェア実行スペースを越えると、前記ファームウェアにエラーが発生したことを提示するステップと
をさらに含むことを特徴とする請求項７乃至９の中のいずれか１項に記載のファームウェア圧縮解除方法。
【請求項１１】
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するための圧縮モジュールと、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するための情報セグメント設定モジュールと
を備えることを特徴とするファームウェア圧縮装置。
【請求項１２】
前記取得モジュールは、
前記コードセグメントの第３保存アドレス、及び前記データセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュールと、
前記第３保存アドレスに基づいて前記コードセグメントを読み取り、前記第４保存アドレスに基づいて前記データセグメントを読み取るための取得サブモジュールと
を備えることを特徴とする請求項１１に記載のファームウェア圧縮装置。
【請求項１３】
前記アドレス特定サブモジュールは、
前記ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュールと、
前記第２情報セグメント中に、前記第３保存アドレス及び前記第４保存アドレスが保存されていると、読み取った内容に基づいて前記第３保存アドレス及び前記第４保存アドレスを特定するための第１特定サブモジュールと、
前記第２情報セグメント中に、前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されていると、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第３保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第４保存アドレスを特定するための第２特定サブモジュールと
を備えることを特徴とする請求項１２に記載のファームウェア圧縮装置。
【請求項１４】
前記情報セグメント設定モジュールは、
圧縮後の前記コードセグメントの前記電子装置中における第１保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第２保存アドレスを設定して、前記第１保存アドレスを前記第１アドレス情報として特定し、また、前記第２保存アドレスを前記第２アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第１アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第２アドレス情報として特定するための第１設定サブモジュールと、
前記第１圧縮解除アドレス、及び前記第２圧縮解除アドレスを設定するための第２設定サブモジュールと
を備えることを特徴とする請求項１１に記載のファームウェア圧縮装置。
【請求項１５】
前記情報セグメント設定モジュールは、
前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するための大きさ取得サブモジュールと、
前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第１情報セグメントに保存するための大きさ保存サブモジュールと
をさらに備えることを特徴とする請求項１１乃至１４の中のいずれか１項に記載のファームウェア圧縮装置。
【請求項１６】
前記圧縮モジュールは、
前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後の前記コードセグメントがｍ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するための第１圧縮サブモジュールと、
分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュールと、
分割後の前記コードセグメントがｍ個のセグメントが含むし、且つ、分割後の前記データセグメントがｎ個のセグメントが含むと、前記コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュールと
を備えることを特徴とする請求項１１乃至１４の中のいずれか１項に記載のファームウェア圧縮装置。
【請求項１７】
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るための情報セグメント読取モジュールと、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得するための取得モジュールと、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備えることを特徴とするファームウェア圧縮解除装置。
【請求項１８】
前記取得モジュールは、
前記第１アドレス情報に基づいて第１保存アドレスを特定し、前記第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュールと、
前記第１保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第２保存アドレス中から圧縮後の前記データセグメントを読み取るための取得サブモジュールと
を備えることを特徴とする請求項１７に記載のファームウェア圧縮解除装置。
【請求項１９】
前記アドレス特定サブモジュールは、
前記第１アドレス情報が前記第１保存アドレスであり、前記第２アドレス情報が前記第２保存アドレスであると、読み取った内容に基づいて前記第１保存アドレス及び前記第２保存アドレスを特定するための第１特定サブモジュールと、
前記第１アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第２アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第１保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第２保存アドレスを特定するための第２特定サブモジュールと
を備えることを特徴とする請求項１８に記載のファームウェア圧縮解除装置。
【請求項２０】
前記第１情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するための算出モジュールと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
前記検出モジュールの検出結果が、前記合計の大きさが前記ファームウェア実行スペースを越えることであると、前記ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備えることを特徴とする請求項１７乃至１９の中のいずれか１項に記載のファームウェア圧縮解除装置。
【請求項２１】
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
前記プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
前記コードセグメント及び前記データセグメントを、それぞれ、圧縮し、
前記ファームウェアに対応する第１情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第１アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第２アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するように構成される
ことを特徴とするファームウェア圧縮装置。
【請求項２２】
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
前記プロセッサは、
ファームウェアに対応する第１情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第１アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第２アドレス情報、圧縮後の前記コードセグメントに対応する第１圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取り、
前記第１アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第２アドレス情報に基づいて圧縮後の前記データセグメントを取得し、
圧縮後の前記コードセグメントを前記第１圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第２圧縮解除アドレスへ圧縮解除するように構成される
ことを特徴とするファームウェア圧縮解除装置。
【請求項２３】
プロセッサに実行されることにより、請求項１から請求項６のいずれか１項に記載のファームウェア圧縮方法を実現することを特徴とするプログラム。
【請求項２４】
請求項２３に記載のプログラムが記録された記録媒体。
【請求項２５】
プロセッサに実行されることにより、請求項７から請求項１０のいずれか１項に記載のファームウェア圧縮解除方法を実現することを特徴とするプログラム。
【請求項２６】
請求項２５に記載のプログラムが記録された記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、出願番号がＣＮ２０１５１００４４８８５.Ｘであって、出願日が２０１５年１月２９日である中国特許出願に基づいて優先権を主張し、当該中国特許出願のすべての内容を援用する。
【０００２】
本発明は、コンピュータ技術分野に関し、特に、ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体に関する。
【背景技術】
【０００３】
ファームウェアとは、電子装置の最下層の作業を担当するソフトウェアであり、電子装置の一般的に動作を保証するソフトウェアである。一般的に、電子装置の機能が複雑になるほど、電子装置に必要なファームウェアも大きくなる。即ち、当該ファームウェアを保存するための保存スペースも大きくなる。
【０００４】
関連技術では、ファームウェアが電子装置中で占める保存スペースを削減するために、一般的に、ファームウェアを一つの全体として圧縮する。電子装置は、ファームウェアを実行しようとすると、圧縮後のファームウェアを圧縮解除してから、圧縮解除後のコードセグメントに対応する第１圧縮解除アドレスに基づいて、圧縮解除し得たファームウェア中のコードセグメントを当該第１圧縮解除アドレスへコピーして、圧縮解除後のデータセグメントに対応する第２圧縮解除アドレスに基づいて、圧縮解除後のデータセグメントを当該第２圧縮解除アドレスへコピーする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体を提供する。その構成は、以下のとおりである。
【課題を解決するための手段】
【０００６】
本発明の実施例に係る第１の態様によると、ファームウェア圧縮方法を提供する。
【０００７】
当該方法は、
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するステップと
を含む。
【０００８】
オプションとして、ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するステップと、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るステップと
を含む。
【０００９】
オプションとして、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するステップは、
ファームウェアに対応する第２情報セグメントを読み取るステップと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するステップと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するステップと
を含む。
【００１０】
オプションとして、ファームウェアに対応する第１情報セグメントを設定するステップは、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するステップと、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するステップと
を含む。
【００１１】
オプションとして、ファームウェアに対応する第１情報セグメントを設定するステップは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するステップと、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するステップと
を含む。
【００１２】
オプションとして、コードセグメント及びデータセグメントをそれぞれ圧縮するステップは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するステップと、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するステップと、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するステップと
を含む。
【００１３】
本発明の実施例に係る第２の態様によると、ファームウェア圧縮解除方法を提供する。
【００１４】
当該方法は、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るステップと、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するステップと、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除するステップと
を含む。
【００１５】
オプションとして、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するステップは、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するステップと、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るステップと
を含む。
【００１６】
オプションとして、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するステップは、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するステップと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するステップと
を含む。
【００１７】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該方法は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するステップと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示するステップと
を、さらに、含む。
【００１８】
本発明の実施例に係る第３の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
コードセグメント及びデータセグメントをそれぞれ圧縮するための圧縮モジュールと、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定するための情報セグメント設定モジュールと
を備える。
【００１９】
オプションとして、当該取得モジュールは、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュールと、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュールと
を備える。
【００２０】
オプションとして、当該アドレス特定サブモジュールは、
ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュールと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するための第１特定サブモジュールと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するための第２特定サブモジュールと
を備える。
【００２１】
オプションとして、当該情報セグメント設定モジュールは、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するための第１設定サブモジュールと、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するための第２設定サブモジュールと
を備える。
【００２２】
オプションとして、当該情報セグメント設定モジュールは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュールと、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するための大きさ保存サブモジュールと
を、さらに、備える。
【００２３】
オプションとして、当該圧縮モジュールは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第１圧縮サブモジュールと、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュールと、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュールと
備える。
【００２４】
本発明の実施例に係る第４の態様によると、ファームウェア圧縮解除装置を提供する。
【００２５】
当該装置は、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取るための情報セグメント読取モジュールと、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得するための取得モジュールと、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備える。
【００２６】
オプションとして、当該取得モジュールは、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュールと、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュールと
を備える。
【００２７】
オプションとして、当該アドレス特定サブモジュールは、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するための第１特定サブモジュールと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するための第２特定サブモジュールと
を備える。
【００２８】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュールと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
モジュールの検出結果が、合計の大きさがファームウェア実行スペースを越えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備える。
【００２９】
本発明の実施例に係る第５の態様によると、ファームウェア圧縮装置を提供する。
【００３０】
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
コードセグメント及びデータセグメントをそれぞれ圧縮し、
ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する
ように構成される。
【００３１】
本発明の実施例に係る第６の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取り、
第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得し、
圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する
ように構成される。
【００３２】
本発明の実施例の第７の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮方法を実現する。
【００３３】
本発明の実施例の第８の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
【００３４】
本発明の実施例の第９の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮解除方法を実現する。
【００３５】
本発明の実施例の第１０の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
【発明の効果】
【００３６】
本発明の実施例が提供する構成の有益な効果は以下のとおりである。
【００３７】
ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００３８】
以上の統括な記述と以下の細部記述は、ただ例示的なものであり、本発明を制限するものではないと、理解するべきである。
【図面の簡単な説明】
【００３９】
以下の図面は、明細書の一部分として明細書全体を構成することにより、本発明に合致する実施例を例示するとともに、本発明の原理を解釈するためのものである。
【図１】例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。
【図２Ａ】例示的なもう一実施例に係るファームウェア圧縮方法を示すフローチャートである。
【図２Ｂ】例示的なもう一実施例に係る第３保存アドレス及び第４保存アドレスを特定するための特定方法を示すフローチャートである。
【図２Ｃ】例示的なもう一実施例に係る第１情報セグメントを設定するための設定方法を示すフローチャートである。
【図２Ｄ】例示的なもう一実施例に係る第１情報セグメントを設定するためのもう一設定方法を示すフローチャートである。
【図２Ｅ】例示的なもう一実施例に係るコードセグメント及びデータセグメントを圧縮するための圧縮方法を示すフローチャートである。
【図３】例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
【図４Ａ】例示的なもう一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
【図４Ｂ】例示的なもう一実施例に係る第１保存アドレス及び第２保存アドレスを特定するための特定方法を示すフローチャートである。
【図４Ｃ】例示的なもう一実施例に係るファームウェアにエラーがあるか否かを検出する流れを示すフローチャートである。
【図５】例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。
【図６Ａ】例示的なもう一実施例に係るファームウェア圧縮装置を示すブロック図である。
【図６Ｂ】例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。
【図６Ｃ】例示的なもう一実施例に係る圧縮モジュールを示すブロック図である。
【図７】例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
【図８Ａ】例示的なもう一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
【図８Ｂ】例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。
【図９】例示的な一実施例に係るファームウェアを圧縮するための装置を示すブロック図である。
【図１０】例示的な一実施例に係るファームウェアを圧縮解除するための装置を示すブロック図である。
【発明を実施するための形態】
【００４０】
ここで、例示的な実施例を詳細に説明する。また、説明中の例は、図面に示している。以下の記述において、図面を説明する際に特に説明しない場合、異なる図面中の同一の符号は、同一或は同様な要素を意味する。以下の例示的な実施例において記述する実施方法は、本発明に合致するすべての実施方法を代表しない。逆に、それらは、添付の特許請求の範囲において詳細に記述された、本発明のいくつかの態様と合致する装置、及び方法の例に過ぎない。
【００４１】
まず、理解の便利をために、各実施例に係る各名詞を簡単に説明する。
【００４２】
コードセグメントは、「ｔｘｔセグメント」とも呼ばれ、その中にはファームウェア中の実行可能なコードが保存される。
【００４３】
データセグメントは、「ｄａｔａセグメント」とも呼ばれ、その中にはファームウェアコードを実行するのに必要なグローバル静的データが保存される。
【００４４】
図１は、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図１に示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【００４５】
ステップ１０１において、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【００４６】
ステップ１０２において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【００４７】
ステップ１０３において、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【００４８】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００４９】
図２Ａは、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図２Ａに示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【００５０】
ステップ２０１において、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定する。
【００５１】
サーバには、コードセグメント及びデータセグメントを含むファームウェアが保存されている。サーバは、ファームウェアを圧縮する必要があると、コードセグメントのサーバ中における第３保存アドレス、及びデータセグメントのサーバ中における第４保存アドレスを特定してもよい。
【００５２】
図２Ｂを参照すると、本ステップは、以下のステップを含んでもよい。
【００５３】
ステップ２０１ａにおいて、ファームウェアに対応する第２情報セグメントを読み取る。
【００５４】
サーバは、ファームウェアを保存する同時に、ファームウェアに対応する第２情報セグメントをさらに保存してもよい。当該第２情報セグメントは、第３保存アドレス及び第４保存アドレスを含むか、或いは、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさを含んでもよい。このため、サーバは、第３保存アドレス及び第４保存アドレスを特定する必要があると、当該第２情報セグメントを読み取ってもよい。
【００５５】
ステップ２０１ｂにおいて、第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定する。
【００５６】
ステップ２０１ｃにおいて、第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定する。
【００５７】
例えば、第２情報セグメント中に保存されているコードセグメントの開始保存アドレスがＤ１であり、コードセグメントの大きさがＳ１であり、Ｓ１大きさのコードセグメントを保存するのに必要な保存スペースがｄ１であると、第３保存アドレスはＤ１〜Ｄ１＋ｄ１である。
【００５８】
ステップ２０２において、第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取る。
【００５９】
サーバは、第３保存アドレス及び第４保存アドレスを特定した後に、第３保存アドレス中からコードセグメントを読み取り、第４保存アドレス中からデータセグメントを読み取ってもよい。
【００６０】
例えば、サーバは、Ｄ１〜Ｄ１＋ｄ１中から、コードセグメントを読み取る。
【００６１】
ステップ２０３において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【００６２】
サーバは、読み取ったコードセグメントを圧縮し、また、読み取ったデータセグメントを圧縮する。
【００６３】
ステップ２０４において、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【００６４】
サーバは、コードセグメント及びデータセグメントをそれぞれ圧縮した後に、ファームウェアに対応する第１情報セグメントを設定してもよい。
【００６５】
図２Ｃを参照すると、本ステップは、以下のステップを含んでもよい。
【００６６】
ステップ２０４ａにおいて、圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定する。
【００６７】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報とし、また、第２保存アドレスを第２アドレス情報にする。ここで、サーバは、圧縮後のコードセグメントの電子装置のＦｌａｓｈ中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置のＦｌａｓｈにおける第２保存アドレスを設定してもよい。
【００６８】
或いは、サーバは、さらに、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの電子装置中における開始保存アドレスのみ設定し、その後に、圧縮後のコードセグメントの大きさ、及び圧縮後のデータセグメントの大きさをそれぞれを取得して、最後に、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報とし、圧縮後のデータセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの大きさを、第２アドレス情報としてもよい。
【００６９】
ステップ２０４ｂにおいて、第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定する。
【００７０】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、さらに、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを、予め設定してもよい。
【００７１】
本実施例においては、まず、ステップ２０４ａを実行した後に、ステップ２０４ｂを実行する例を挙げたが、オプションとして、実行ステップ２０４ａとステップ２０４ｂを同時に実行するか、或いは、まず、ステップ２０４ｂを実行した後に、ステップ２０４ａを実行してもよく、これに対して制限しないことを説明する必要がある。
【００７２】
本実施例においては、第１情報セグメントのみを設定する例を挙げたが、オプションとして、第２情報セグメント中に第１情報セグメント中の各内容を設定してもよく、これに対して制限しないことをさらに説明する必要がある。
【００７３】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【００７４】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【００７５】
図２Ｄを参照すると、上記の各実施例において、サーバがファームウェアに対応する第１情報セグメントを設定するステップは、以下のステップを、さらに、含んでもよい。
ステップ２０４ｃにおいて、コードセグメントの大きさ及びデータセグメントの大きさを取得する。
【００７６】
サーバは、さらに、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさを取得してもよい。
【００７７】
オプションとして、サーバは、第２情報セグメント中に両方の大きさが保存されていると、第２情報セグメント中から上記の内容を読み取ってもよい。
【００７８】
サーバは、第２情報セグメント中に、コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスが保存されていると、第３保存アドレスのアドレスの長さに基づいてコードセグメントの大きさを特定し、また、第３保存アドレスのアドレスの長さに基づいてデータセグメントの大きさを特定してもよく、本実施例においてはこれに対して制限しない。
【００７９】
ステップ２０４ｄにおいて、コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存する。
【００８０】
サーバは、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第１情報セグメントに保存してもよい。
【００８１】
当然ながら、サーバは、第１情報セグメント中の内容を、直接、第２情報セグメント中に設定すると、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第２情報セグメントに保存してもよく、本実施例においてはこれに対して制限しない。また、サーバは、もし、第２情報セグメント中に上記の両方の大きさが既に保存されていると、ステップ２０４ｃとステップ２０４ｄを実行しないでもよく、本実施例においてはこれに対しても制限しない。
【００８２】
また、本実施例においては、ステップ２０４ａ、ステップ２０４ｂ及びステップ２０４ｃを実行する順序に対して制限しない。サーバは、実際の適用場面によってその順序を調整してもよい。
【００８３】
図２Ｅを参照すると、上記の実施例において、ステップ２０３は、以下のステップを含んでもよい。
【００８４】
ステップ２０３ａにおいて、コードセグメント及びデータセグメントの中の少なくとも一つを分割する。
【００８５】
サーバは、ファームウェア中のコードセグメント及びデータセグメントを取得した後に、コードセグメントを分割するか、或いは、データセグメントを分割か、或いは、コードセグメント及びデータセグメントの両方を分割してもよい。
【００８６】
例えば、サーバは、コードセグメントを分割する例を挙げると、コードセグメントをｍ個のセグメントに分割してもよい。
【００８７】
オプションとして、分割後のコードセグメント中の各セグメントの長さは、同一であるか、或は、同一でない。同様に、分割後のデータセグメント中の各セグメントの長さも、同一であるか、或は、同一でない。
【００８８】
ステップ２０３ｂにおいて、分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮する。
【００８９】
サーバは、コードセグメントをｍ個のセグメントに分割すると、分割し得たｍ個のセグメントをそれぞれ圧縮する同時に、データセグメントを圧縮する。
【００９０】
これに対し、サーバが設定する第１アドレス情報は、圧縮後のｍ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第１圧縮解除アドレスは、圧縮後のｍ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【００９１】
ステップ２０３ｃにおいて、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮する。
【００９２】
サーバは、データセグメントをｎ個のセグメントに分割すると、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮してもよい。
【００９３】
これに対し、サーバが設定する第２アドレス情報は、圧縮後のｎ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第２圧縮解除アドレスは、圧縮後のｎ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスをふくんでもよい。
【００９４】
ステップ２０３ｄにおいて、分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮する。
【００９５】
同様に、サーバは、コードセグメントをｍ個のセグメントに分割し、また、データセグメントをｎ個のセグメントに分割すると、分割後のコードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、分割後のデータセグメント中のｎ個のセグメントをそれぞれ圧縮してもよい。
【００９６】
これに対し、サーバが設定する第１アドレス情報は、ｍ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第１圧縮解除アドレスは、ｍ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含み、サーバが設定する第２アドレス情報は、ｎ個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第２圧縮解除アドレスは、ｎ個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【００９７】
図３は、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図３に示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【００９８】
ステップ３０１において、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【００９９】
ステップ３０２において、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【０１００】
ステップ３０３において、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１０１】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１０２】
図４Ａは、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図４Ａに示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【０１０３】
ステップ４０１において、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１０４】
電子装置は、ネットワークを介してサーバからファームウェアを取得するか、或いは、回復装置（ｒｅｃｏｖｅｒｙｄｅｖｉｃｅ）或いはモバイル記憶デバイスからファームウェアを取得してもよい。当該ファームウェアは、一般的に、圧縮後のファームウェアであり、また、圧縮後のファームウェアは、一般的に、圧縮後のコードセグメント、圧縮後のデータセグメント、及び第１情報セグメントを含む。ここで、第１情報セグメントは、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む。また、回復装置及びモバイル記憶デバイス中のファームウェアは、サーバから事前に取得したファームウェアであってもよく、本実施例においてはこれに対して制限しない。
【０１０５】
電子装置は、ファームウェアを実行する必要があると、ファームウェアに対応する第１情報セグメントを読み取ってもよい。
【０１０６】
ステップ４０２において、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定する。
【０１０７】
電子装置は、第１情報セグメント中の第１アドレス情報及び第２アドレス情報を読み取った後に、第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定してもよい。
【０１０８】
図４Ｂを参照すると、本ステップは、以下のステップを含んでもよい。
【０１０９】
ステップ４０２ａにおいて、第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定する。
【０１１０】
ステップ４０２ｂにおいて、第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定する。
【０１１１】
本ステップは、上記の実施例中のステップ２０１ｃと同様であるため、本実施例においては繰り返して説明しない。
【０１１２】
ステップ４０３において、第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取る。
【０１１３】
ステップ４０４において、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１１４】
電子装置は、圧縮後のコードセグメント、及び圧縮後のデータセグメントを読み取った後に、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除してもよい。
【０１１５】
電子装置は、圧縮後のコードセグメント及び圧縮後のデータセグメント圧縮解除した後に、当該コードセグメントの入口から、当該コードセグメントを実行してもよい。
【０１１６】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１１７】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１１８】
図４Ｃを参照すると、上記の実施例において、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれている。当該方法は、さらに、以下のステップを含んでもよい。
【０１１９】
ステップ４０５において、圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出する。
【０１２０】
電子装置は、第１情報セグメント中に、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれていると、第１情報セグメントを読み取った後に、圧縮前のコードセグメントの大きさ及び圧縮前のデータセグメントの大きさの合計を算出して、両方の合計の大きさを算出してもよい。
【０１２１】
ステップ４０６において、合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出する。
【０１２２】
算出し得た合計の大きさが、電子装置中に預かったファームウェア実行スペースを越えるか否かを検出する。当該ファームウェア実行スペースとは、電子装置中に預かったファームウェアを実行するためのメモリスペースである。
【０１２３】
ステップ４０７において、合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示する。
【０１２４】
電子装置の検出結果が、コードセグメント及びデータセグメントの合計の大きさがファームウェア実行スペースを越えることであると、当該ファームウェアは当該モデルの電子装置に適用できるファームウェアではないことを説明する。この時、電子装置は、ファームウェアにエラーが発生したことを提示してもよい。
【０１２５】
上記のステップは、一般的に、ステップ４０４の前に実行して、検出結果が合計の大きさがファームウェア実行スペースを越えると、ステップ４０４を実行しない。電子装置は、検出結果が、合計の大きさがファームウェア実行スペースを超えない時にのみ、ステップ４０４を実行することになる。本実施例においてはこれに対して制限しないことを説明する必要がある。
【０１２６】
本実施例によると、コードセグメント及びデータセグメントの合計の大きさを検出することにより、ユーザに、ファームウェアにエラーがあるか否かを提示できる效果を得た。
【０１２７】
ステップ４０２は、以下のステップを含んでもよいことをさらに説明する必要がある。
【０１２８】
電子装置は、第１アドレス情報が、圧縮後のｍ個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第１保存アドレスは、圧縮後のｍ個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【０１２９】
この後、電子装置は、各保存アドレス中に保存したコードセグメントを読み取って、読み取った当該コードセグメントを第１圧縮解除アドレス中の当該コードセグメントに対応する圧縮解除アドレスへ圧縮解除してもよい。例えば、電子装置は、ｍ個のセグメント中のi番目のセグメントに対しては、第１アドレス情報中からi番目のコードセグメントのアドレス情報を読み取って、i番目のコードセグメントのアドレス情報に基づいてi番目のコードセグメントの保存アドレスを特定してから、i番目のコードセグメントの保存アドレス中からi番目のコードセグメントを読み取り、また、読み取ったi番目のコードセグメントを、第１圧縮解除アドレス中の第iセグメントコードセグメントに対応する圧縮解除アドレスへ圧縮解除する。
【０１３０】
同様に、電子装置は、第２アドレス情報が、圧縮後のデータセグメント中のｎ個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第２保存アドレスが、圧縮後のｎ個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【０１３１】
この後、電子装置は、各保存アドレス中に保存したデータセグメントを読み取って、読み取った当該データセグメントを、第２圧縮解除アドレス中の当該セグメントデータセグメントに対応する圧縮解除アドレスへ圧縮解除する。これは、圧縮後のｍ個のコードセグメントの処理方法と同様であるため、本実施例においては繰り返して説明しない。
【０１３２】
上記の各実施例において、圧縮後のファームウェアの保存フォーマットには、コードセグメント、データセグメント、及び情報セグメントが含まれていることをさらに説明する必要がある。ここで、情報セグメントは、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む。オプションとして、情報セグメントは、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさをさらに含む。当然ながら、情報セグメントは、他の情報を含んでもよく、本実施例においてはこれに対して制限しない。
【０１３３】
以下は、本発明の装置の実施例であり、本発明の方法の実施例を実行することができる。本発明の装置の実施例において記述していない細部内容に対しては、本発明の方法の実施例を参照してください。
【０１３４】
図５は、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図５に示したように、当該ファームウェア圧縮装置は、取得モジュール５１０、圧縮モジュール５２０、及び情報セグメント設定モジュール５３０を備えるが、これに制限されない。
【０１３５】
取得モジュール５１０は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【０１３６】
圧縮モジュール５２０は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【０１３７】
情報セグメント設定モジュール５３０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【０１３８】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１３９】
図６Ａは、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図６Ａに示したように、当該ファームウェア圧縮装置は、取得モジュール６１０、圧縮モジュール６２０、及び情報セグメント設定モジュール６３０を備えるが、これに制限されない。
【０１４０】
取得モジュール６１０は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【０１４１】
圧縮モジュール６２０は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【０１４２】
情報セグメント設定モジュール６３０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントの電子装置中における第１アドレス情報、圧縮後のデータセグメントの電子装置中における第２アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第２圧縮解除アドレスを含む第１情報セグメントを設定する。
【０１４３】
オプションとして、当該取得モジュール６１０は、
コードセグメントの第３保存アドレス、及びデータセグメントの第４保存アドレスを特定するためのアドレス特定サブモジュール６１１と、
第３保存アドレスに基づいてコードセグメントを読み取り、第４保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュール６１２と
を備える。
【０１４４】
オプションとして、図６Ｂを参照すると、当該アドレス特定サブモジュール６１１は、
ファームウェアに対応する第２情報セグメントを読み取るための情報セグメント読取サブモジュール６１１ａと、
第２情報セグメント中に第３保存アドレス及び第４保存アドレスが保存されていると、読み取った内容に基づいて第３保存アドレス及び第４保存アドレスを特定するための第１特定サブモジュール６１１ｂと、
第２情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第３保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第４保存アドレスを特定するための第２特定サブモジュール６１１ｃと
を備える。
【０１４５】
オプションとして、当該情報セグメント設定モジュール６３０は、
圧縮後のコードセグメントの電子装置中における第１保存アドレス、及び圧縮後のデータセグメントの電子装置中における第２保存アドレスを設定して、第１保存アドレスを第１アドレス情報として特定し、また、第２保存アドレスを第２アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第１アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第２アドレス情報として特定するための第１設定サブモジュール６３１と、
第１圧縮解除アドレス、及び第２圧縮解除アドレスを設定するための第２設定サブモジュール６３２と
を備える。
【０１４６】
オプションとして、当該情報セグメント設定モジュール６３０は、さらに、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュール６３３と、
コードセグメントの大きさ及びデータセグメントの大きさを、第１情報セグメントに保存するための大きさ保存サブモジュール６３４と
を備える。
【０１４７】
オプションとして、図６Ｃを参照すると、当該圧縮モジュール６２０は、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュール６２１と、
分割後のコードセグメントがｍ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第１圧縮サブモジュール６２２と、
分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第２圧縮サブモジュール６２３と、
分割後のコードセグメントがｍ個のセグメントを含み、且つ、分割後のデータセグメントがｎ個のセグメントを含むと、コードセグメント中のｍ個のセグメントをそれぞれ圧縮し、また、データセグメント中のｎ個のセグメントをそれぞれ圧縮するための第３圧縮サブモジュール６２４と
を備える。
【０１４８】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第１情報セグメントであって、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第１情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１４９】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１５０】
図７は、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図７に示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール７１０、取得モジュール７２０、及び圧縮解除モジュール７３０を備えるが、これに制限されない。
【０１５１】
情報セグメント読取モジュール７１０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１５２】
取得モジュール７２０は、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【０１５３】
圧縮解除モジュール７３０は、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１５４】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１５５】
図８Ａは、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図８Ａに示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール８１０、取得モジュール８２０、及び圧縮解除モジュール８３０を備えるが、これに制限されない。
【０１５６】
情報セグメント読取モジュール８１０は、ファームウェアに対応する第１情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第１アドレス情報、圧縮後のファームウェア中のデータセグメントの第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取る。
【０１５７】
取得モジュール８２０は、第１アドレス情報に基づいて圧縮後のコードセグメントを取得し、第２アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【０１５８】
圧縮解除モジュール８３０は、圧縮後のコードセグメントを第１圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第２圧縮解除アドレスへ圧縮解除する。
【０１５９】
オプションとして、当該取得モジュール８２０は、
第１アドレス情報に基づいて第１保存アドレスを特定し、第２アドレス情報に基づいて第２保存アドレスを特定するためのアドレス特定サブモジュール８２１と、
第１保存アドレス中から圧縮後のコードセグメントを読み取り、第２保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュール８２２と
を備える。
【０１６０】
オプションとして、図８Ｂを参照すると、当該アドレス特定サブモジュール８２１は、
第１アドレス情報が第１保存アドレスであり、第２アドレス情報が第２保存アドレスであると、読み取った内容に基づいて第１保存アドレス及び第２保存アドレスを特定するための第１特定サブモジュール８２１ａと、
第１アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第２アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第１保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第２保存アドレスを特定するための第２特定サブモジュール８２１ｂと
を備える。
【０１６１】
オプションとして、第１情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュール８４０と、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュール８５０と、
検出モジュール８５０の検出結果が、合計の大きさがファームウェア実行スペースを超えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュール８６０と
を、さらに、備える。
【０１６２】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第１アドレス情報、圧縮後のデータセグメントに対応する第２アドレス情報、圧縮後のコードセグメントに対応する第１圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第２圧縮解除アドレスを含む第１情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第１圧縮解除アドレス及び第２圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【０１６３】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第１圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第２圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【０１６４】
上記の実施例の装置について、その各モジュールが実行する操作の具体的な形態は既に当該方法に関する実施例において詳細に説明したため、ここでは詳細に説明しない。
【０１６５】
図９は、例示的な一実施例に係るファームウェアを圧縮するための装置９００を示すブロック図である。例えば、装置９００をサーバとして提供してもよい。図９を参照すると、装置９００は、プロセスアセンブリ９２２を備える。当該プロセスアセンブリ９２２は、一つ以上のプロセッサ、及びメモリ９３２を代表とするメモリリソースを、さらに備える。当該メモリリソースは、プロセスアセンブリ９２２によって実行される、例えばアプリケーションプログラムのような命令を保存する。メモリ９３２中に保存されたアプリケーションプログラムには、それぞれ一つの命令のセットに対応する一つ以上のモジュールを含まれてもよい。なお、プロセスアセンブリ９２２は、命令を実行することにより、上記のファームウェア圧縮方法を実行する。
【０１６６】
装置９００は、装置９００の電源を管理するための一つの電源アセンブリ９２６、装置９００をネットワークに接続させるための一つの有線又は無線のネットワークインターフェイス９５０、及び一つの入出力インターフェイス９５８を備えてもよい。装置９００は、メモリ９３２に保存された、例えば、Ｗｉｎｄｏｗｓ  ＳｅｒｖｅｒＴＭ、Ｍａｃ  ＯＳ  ＸＴＭ、ＵｎｉｘＴＭ，  ＬｉｎｕｘＴＭ、ＦｒｅｅＢＳＤＴＭのようなオペレーティング・システムによって、操作を行うことができる。
【０１６７】
図１０は、例示的な一実施例に係るファームウェア圧縮解除装置１０００を示すブロック図である。例えば、装置１０００は、携帯電話、コンピューター、デジタル放送端末、メッセージ送受信デバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
【０１６８】
図１０を参照して、装置１０００は、プロセスアセンブリ１００２、メモリ１００４、電源アセンブリ１００６、マルチメディアアセンブリ１００８、オーディオアセンブリ１０１０、入出力（Ｉ／Ｏ）インターフェイス１０１２、センサアセンブリ１０１４、及び通信アセンブリ１０１６のような一つ以上のアセンブリを含んでよい。
【０１６９】
プロセスアセンブリ１００２は、一般的には装置１０００の全体の動作を制御するものであり、例えば、表示、電話呼び出し、データ通信、カメラ動作、及び記録動作と関連する動作を制御する。プロセスアセンブリ１００２は、一つ以上のプロセッサ１０２０を含み、これらによって命令を実行することにより、上記の方法の全部、或は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ１００２は、一つ以上のモジュールを含み、これらによってプロセスアセンブリ１００２と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ１００２は、マルチメディアモジュールを含み、これらによってマルチメディアアセンブリ１００８とプロセスアセンブリ１００２の間のインタラクションを容易にするようにしてもよい。
【０１７０】
メモリ１００４は、各種類のデータを記憶することにより装置１０００の動作を支援するように構成される。これらのデータの例は、装置１０００において動作するいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ１００４は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、ＳＲＡＭ（ＳｔａｔｉｃＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）ＥＥＰＲＯＭ（ＥｌｅｃｔｒｉｃａｌｌｙＥｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ−Ｏｎｌｙ Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ ＲＯＭ）、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｂｅｒ）、磁気メモリ、フラッシュメモリ、磁気ディスク、或いは光ディスクである。
【０１７１】
電源アセンブリ１００６は、装置１０００の多様なアセンブリに電力を供給する。電源アセンブリ１００６は、電源管理システム、一つ以上の電源、及び装置１０００のための電力の生成、管理及び割り当てに関連付けられている他のアセンブリを含んでもよい。
【０１７２】
マルチメディアアセンブリ１００８は、前記装置１０００とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。上記の実施例において、スクリーンは液晶モニター（ＬＣＤ）とタッチパネル（ＴＰ）を含んでもよい。スクリーンがタッチパネルを含むことにより、スクリーンはタッチスクリーンを実現することができ、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含んでおり、タッチ、スワイプ、及びタッチパネル上のジェスチャを検出することができる。前記タッチセンサは、タッチ、或はスワイプの動作の境界だけでなく、前記のタッチ、或はスワイプ操作に係る継続時間及び圧力も検出できる。上記の実施例において、マルチメディアアセンブリ１００８は、一つのフロントカメラ、及び／又はリアカメラを含む。装置１０００が、例えば撮影モード、或はビデオモード等の動作モードにある場合、フロントカメラ、及び／又はリアカメラは外部からマルチメディアデータを受信できる。フロントカメラとリアカメラのそれぞれは、一つの固定型の光レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
【０１７３】
オーディオアセンブリ１０１０は、オーディオ信号を入出力するように構成されてもよい。例えば、オーディオアセンブリ１０１０は、一つのマイク（ＭＩＣ）を含み、装置１０００が、例えば呼出しモード、記録モード、及び音声認識モード等の動作モードにある場合、マイクは外部のオーディオ信号を受信することができる。受信されたオーディオ信号は、さらにメモリ１００４に記憶されたり、通信アセンブリ１０１６を介して送信されたりされる。上記の実施例において、オーディオアセンブリ１０１０は、オーディオ信号を出力するための一つのスピーカーをさらに含む。
【０１７４】
Ｉ／Ｏインターフェイス１０１２は、プロセスアセンブリ１００２と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、上記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンは、ホームボタン、ボリュームボタン、作動ボタン、ロッキングボタンを含んでもよいが、これらに限定されない。
【０１７５】
センサアセンブリ１０１４は、装置１０００に各種の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ１０１４は、装置１０００のＯＮ／ＯＦＦ状態、装置１０００のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出できる。また、例えば、センサアセンブリ１０１４は、装置１０００、或は装置１０００の一つのアセンブリの位置変更、ユーザと装置１０００とが接触しているか否か、装置１０００の方位、又は加速／減速、装置１０００の温度の変化を検出できる。センサアセンブリ１０１４は、何れの物理的接触がない状態にて付近の物体の存在を検出するための近接センサを含んでもよい。センサアセンブリ１０１４は、撮影アプリケーションに適用するため、ＣＭＯＳ、又はＣＣＤ画像センサのような光センサを含んでもよい。上記の実施例において、当該センサアセンブリ１０１４は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、及び温度センサをさらに含んでもよい。
【０１７６】
通信アセンブリ１０１６は、装置１０００と他の機器の間に有線、又は利便性のよい形態の通信を提供する。装置１０００は、例えばＷｉＦｉ（登録商標）、２Ｇ、３Ｇ、或はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ１０１６は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ１０１６は、近距離無線通信（ＮＦＣ）モジュールをさらに含むことにより、近距離通信を可能にする。例えば、ＮＦＣモジュールは、ＲＦＩＤ（ＲａｄｉｏＦｒｅｑｕｅｎｃｙ ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）技術、ＩｒＤＡ（ＩｎｆｒａｒｅｄＤａｔａ Ａｓｓｏｃｉａｔｉｏｎ）技術、ＵＷＢ（Ｕｌｔｒａ Ｗｉｄｅ Ｂａｎｄ）技術、ＢＴ（Ｂｌｕｅｔｏｏｔｈ（登録商標））技術、他の技術に基づいて実現できる。
【０１７７】
例示的な実施例において、装置１０００は、一つ以上のＡＳＩＣ（ＡｐｐｌｉｃａｔｉｏｎＳｐｅｃｉｆｉｃＩｎｔｅｇｒａｔｅｄ Ｃｉｒｃｕｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）、ＤＳＰＤ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ ＰｒｏｃｅｓｓｉｎｇＤｅｖｉｃｅ）、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
【０１７８】
例示的な実施例において、さらに、命令を含むコンピュータ読取り可能な非一時的な記録媒体、例えば命令を含むメモリ１００４を提供しており、装置１０００のプロセッサ１０２０により上記命令を実行して上記方法を実現する。例えば、前記コンピュータ読取り可能な非一時的な記録媒体は、ＲＯＭ、ＲＡＭ、ＣＤ-ＲＯＭ、磁気テープ、フロッピーディスク（登録商標）、光データ記憶デバイス等である。
【０１７９】
本発明は上記に記述され、また図面で示した厳密な構成に限定されず、その範囲を逸脱しない限り多様な置換えと変更を行うことができると、理解されるべきである。本発明の範囲は添付の特許請求の範囲のみにより限定される。 
【国際調査報告】
2017506791.tif 000022
2017506791.tif 000023
2017506791.tif 000024
2017506791.tif 000025