(58)【調査した分野】(Int.Cl.,DB名)
ファームウェアに対応する第1情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第1アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第2アドレス情報、圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るステップと、
前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップと、
圧縮後の前記コードセグメントを前記第1圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第2圧縮解除アドレスへ圧縮解除するステップと
を含み、
前記第1情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するステップと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
前記合計の大きさが前記ファームウェア実行スペースを越えると、前記ファームウェアにエラーが発生したことを提示するステップと
をさらに含むことを特徴とするファームウェア圧縮解除方法。
ファームウェアに対応する第1情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第1アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第2アドレス情報、圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るための情報セグメント読取モジュールと、
前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得するための取得モジュールと、
圧縮後の前記コードセグメントを前記第1圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第2圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備え、
前記第1情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するための算出モジュールと、
前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
前記検出モジュールの検出結果が、前記合計の大きさが前記ファームウェア実行スペースを越えることであると、前記ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備えることを特徴とするファームウェア圧縮解除装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法
、装置
、プログラム及び記録媒体を提供する。その構成は、以下のとおりである。
【課題を解決するための手段】
【0006】
本発明の実施例に係る第1の態様によると、ファームウェア圧縮方法を提供する。
【0007】
当該方法は、
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するステップと
を含む。
【0008】
オプションとして、ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るステップと
を含む。
【0009】
オプションとして、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップは、
ファームウェアに対応する第2情報セグメントを読み取るステップと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するステップと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するステップと
を含む。
【0010】
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するステップと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するステップと
を含む。
【0011】
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するステップと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するステップと
を含む。
【0012】
オプションとして、コードセグメント及びデータセグメントをそれぞれ圧縮するステップは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するステップと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するステップと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと
を含む。
【0013】
本発明の実施例に係る第2の態様によると、ファームウェア圧縮解除方法を提供する。
【0014】
当該方法は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るステップと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するステップと
を含む。
【0015】
オプションとして、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るステップと
を含む。
【0016】
オプションとして、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するステップと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するステップと
を含む。
【0017】
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該方法は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するステップと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示するステップと
を、さらに、含む。
【0018】
本発明の実施例に係る第3の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
コードセグメント及びデータセグメントをそれぞれ圧縮するための圧縮モジュールと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するための情報セグメント設定モジュールと
を備える。
【0019】
オプションとして、当該取得モジュールは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュールと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュールと
を備える。
【0020】
オプションとして、当該アドレス特定サブモジュールは、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュールと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュールと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュールと
を備える。
【0021】
オプションとして、当該情報セグメント設定モジュールは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュールと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュールと
を備える。
【0022】
オプションとして、当該情報セグメント設定モジュールは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュールと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュールと
を、さらに、備える。
【0023】
オプションとして、当該圧縮モジュールは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュールと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュールと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュールと
備える。
【0024】
本発明の実施例に係る第4の態様によると、ファームウェア圧縮解除装置を提供する。
【0025】
当該装置は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るための情報セグメント読取モジュールと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するための取得モジュールと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備える。
【0026】
オプションとして、当該取得モジュールは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュールと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュールと
を備える。
【0027】
オプションとして、当該アドレス特定サブモジュールは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュールと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュールと
を備える。
【0028】
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュールと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
モジュールの検出結果が、合計の大きさがファームウェア実行スペースを越えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備える。
【0029】
本発明の実施例に係る第5の態様によると、ファームウェア圧縮装置を提供する。
【0030】
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
コードセグメント及びデータセグメントをそれぞれ圧縮し、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する
ように構成される。
【0031】
本発明の実施例に係る第6の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取り、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得し、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する
ように構成される。
【0032】
本発明の実施例の第7の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮方法を実現する。
【0033】
本発明の実施例の第8の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
【0034】
本発明の実施例の第9の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮解除方法を実現する。
【0035】
本発明の実施例の第10の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
【発明の効果】
【0036】
本発明の実施例が提供する構成の有益な効果は以下のとおりである。
【0037】
ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0038】
以上の統括な記述と以下の細部記述は、ただ例示的なものであり、本発明を制限するものではないと、理解するべきである。
【発明を実施するための形態】
【0040】
ここで、例示的な実施例を詳細に説明する。また、説明中の例は、図面に示している。以下の記述において、図面を説明する際に特に説明しない場合、異なる図面中の同一の符号は、同一或は同様な要素を意味する。以下の例示的な実施例において記述する実施方法は、本発明に合致するすべての実施方法を代表しない。逆に、それらは、添付の特許請求の範囲において詳細に記述された、本発明のいくつかの態様と合致する装置、及び方法の例に過ぎない。
【0041】
まず、理解の便利をために、各実施例に係る各名詞を簡単に説明する。
【0042】
コードセグメントは、「txtセグメント」とも呼ばれ、その中にはファームウェア中の実行可能なコードが保存される。
【0043】
データセグメントは、「dataセグメント」とも呼ばれ、その中にはファームウェアコードを実行するのに必要なグローバル静的データが保存される。
【0044】
図1は、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。
図1に示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【0045】
ステップ101において、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【0046】
ステップ102において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【0047】
ステップ103において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
【0048】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0049】
図2Aは、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。
図2Aに示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
【0050】
ステップ201において、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定する。
【0051】
サーバには、コードセグメント及びデータセグメントを含むファームウェアが保存されている。サーバは、ファームウェアを圧縮する必要があると、コードセグメントのサーバ中における第3保存アドレス、及びデータセグメントのサーバ中における第4保存アドレスを特定してもよい。
【0052】
図2Bを参照すると、本ステップは、以下のステップを含んでもよい。
【0053】
ステップ201aにおいて、ファームウェアに対応する第2情報セグメントを読み取る。
【0054】
サーバは、ファームウェアを保存する同時に、ファームウェアに対応する第2情報セグメントをさらに保存してもよい。当該第2情報セグメントは、第3保存アドレス及び第4保存アドレスを含むか、或いは、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさを含んでもよい。このため、サーバは、第3保存アドレス及び第4保存アドレスを特定する必要があると、当該第2情報セグメントを読み取ってもよい。
【0055】
ステップ201bにおいて、第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定する。
【0056】
ステップ201cにおいて、第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定する。
【0057】
例えば、第2情報セグメント中に保存されているコードセグメントの開始保存アドレスがD1であり、コードセグメントの大きさがS1であり、S1大きさのコードセグメントを保存するのに必要な保存スペースがd1であると、第3保存アドレスはD1〜D1+d1である。
【0058】
ステップ202において、第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取る。
【0059】
サーバは、第3保存アドレス及び第4保存アドレスを特定した後に、第3保存アドレス中からコードセグメントを読み取り、第4保存アドレス中からデータセグメントを読み取ってもよい。
【0060】
例えば、サーバは、D1〜D1+d1中から、コードセグメントを読み取る。
【0061】
ステップ203において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【0062】
サーバは、読み取ったコードセグメントを圧縮し、また、読み取ったデータセグメントを圧縮する。
【0063】
ステップ204において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
【0064】
サーバは、コードセグメント及びデータセグメントをそれぞれ圧縮した後に、ファームウェアに対応する第1情報セグメントを設定してもよい。
【0065】
図2Cを参照すると、本ステップは、以下のステップを含んでもよい。
【0066】
ステップ204aにおいて、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定する。
【0067】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報とし、また、第2保存アドレスを第2アドレス情報にする。ここで、サーバは、圧縮後のコードセグメントの電子装置のFlash中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置のFlashにおける第2保存アドレスを設定してもよい。
【0068】
或いは、サーバは、さらに、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの電子装置中における開始保存アドレスのみ設定し、その後に、圧縮後のコードセグメントの大きさ、及び圧縮後のデータセグメントの大きさをそれぞれを取得して、最後に、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報とし、圧縮後のデータセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの大きさを、第2アドレス情報としてもよい。
【0069】
ステップ204bにおいて、第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定する。
【0070】
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、さらに、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを、予め設定してもよい。
【0071】
本実施例においては、まず、ステップ204aを実行した後に、ステップ204bを実行する例を挙げたが、オプションとして、実行ステップ204aとステップ204bを同時に実行するか、或いは、まず、ステップ204bを実行した後に、ステップ204aを実行してもよく、これに対して制限しないことを説明する必要がある。
【0072】
本実施例においては、第1情報セグメントのみを設定する例を挙げたが、オプションとして、第2情報セグメント中に第1情報セグメント中の各内容を設定してもよく、これに対して制限しないことをさらに説明する必要がある。
【0073】
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0074】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【0075】
図2Dを参照すると、上記の各実施例において、サーバがファームウェアに対応する第1情報セグメントを設定するステップは、以下のステップを、さらに、含んでもよい。
ステップ204cにおいて、コードセグメントの大きさ及びデータセグメントの大きさを取得する。
【0076】
サーバは、さらに、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさを取得してもよい。
【0077】
オプションとして、サーバは、第2情報セグメント中に両方の大きさが保存されていると、第2情報セグメント中から上記の内容を読み取ってもよい。
【0078】
サーバは、第2情報セグメント中に、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスが保存されていると、第3保存アドレスのアドレスの長さに基づいてコードセグメントの大きさを特定し、また、第3保存アドレスのアドレスの長さに基づいてデータセグメントの大きさを特定してもよく、本実施例においてはこれに対して制限しない。
【0079】
ステップ204dにおいて、コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存する。
【0080】
サーバは、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第1情報セグメントに保存してもよい。
【0081】
当然ながら、サーバは、第1情報セグメント中の内容を、直接、第2情報セグメント中に設定すると、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第2情報セグメントに保存してもよく、本実施例においてはこれに対して制限しない。また、サーバは、もし、第2情報セグメント中に上記の両方の大きさが既に保存されていると、ステップ204cとステップ204dを実行しないでもよく、本実施例においてはこれに対しても制限しない。
【0082】
また、本実施例においては、ステップ204a、ステップ204b及びステップ204cを実行する順序に対して制限しない。サーバは、実際の適用場面によってその順序を調整してもよい。
【0083】
図2Eを参照すると、上記の実施例において、ステップ203は、以下のステップを含んでもよい。
【0084】
ステップ203aにおいて、コードセグメント及びデータセグメントの中の少なくとも一つを分割する。
【0085】
サーバは、ファームウェア中のコードセグメント及びデータセグメントを取得した後に、コードセグメントを分割するか、或いは、データセグメントを分割か、或いは、コードセグメント及びデータセグメントの両方を分割してもよい。
【0086】
例えば、サーバは、コードセグメントを分割する例を挙げると、コードセグメントをm個のセグメントに分割してもよい。
【0087】
オプションとして、分割後のコードセグメント中の各セグメントの長さは、同一であるか、或は、同一でない。同様に、分割後のデータセグメント中の各セグメントの長さも、同一であるか、或は、同一でない。
【0088】
ステップ203bにおいて、分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮する。
【0089】
サーバは、コードセグメントをm個のセグメントに分割すると、分割し得たm個のセグメントをそれぞれ圧縮する同時に、データセグメントを圧縮する。
【0090】
これに対し、サーバが設定する第1アドレス情報は、圧縮後のm個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第1圧縮解除アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【0091】
ステップ203cにおいて、分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
【0092】
サーバは、データセグメントをn個のセグメントに分割すると、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
【0093】
これに対し、サーバが設定する第2アドレス情報は、圧縮後のn個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第2圧縮解除アドレスは、圧縮後のn個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスをふくんでもよい。
【0094】
ステップ203dにおいて、分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
【0095】
同様に、サーバは、コードセグメントをm個のセグメントに分割し、また、データセグメントをn個のセグメントに分割すると、分割後のコードセグメント中のm個のセグメントをそれぞれ圧縮し、また、分割後のデータセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
【0096】
これに対し、サーバが設定する第1アドレス情報は、m個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第1圧縮解除アドレスは、m個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含み、サーバが設定する第2アドレス情報は、n個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第2圧縮解除アドレスは、n個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
【0097】
図3は、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
図3に示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【0098】
ステップ301において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
【0099】
ステップ302において、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【0100】
ステップ303において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
【0101】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0102】
図4Aは、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。
図4Aに示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
【0103】
ステップ401において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
【0104】
電子装置は、ネットワークを介してサーバからファームウェアを取得するか、或いは、回復装置(recoverydevice)或いはモバイル記憶デバイスからファームウェアを取得してもよい。当該ファームウェアは、一般的に、圧縮後のファームウェアであり、また、圧縮後のファームウェアは、一般的に、圧縮後のコードセグメント、圧縮後のデータセグメント、及び第1情報セグメントを含む。ここで、第1情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。また、回復装置及びモバイル記憶デバイス中のファームウェアは、サーバから事前に取得したファームウェアであってもよく、本実施例においてはこれに対して制限しない。
【0105】
電子装置は、ファームウェアを実行する必要があると、ファームウェアに対応する第1情報セグメントを読み取ってもよい。
【0106】
ステップ402において、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定する。
【0107】
電子装置は、第1情報セグメント中の第1アドレス情報及び第2アドレス情報を読み取った後に、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定してもよい。
【0108】
図4Bを参照すると、本ステップは、以下のステップを含んでもよい。
【0109】
ステップ402aにおいて、第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定する。
【0110】
ステップ402bにおいて、第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定する。
【0111】
本ステップは、上記の実施例中のステップ201cと同様であるため、本実施例においては繰り返して説明しない。
【0112】
ステップ403において、第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取る。
【0113】
ステップ404において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
【0114】
電子装置は、圧縮後のコードセグメント、及び圧縮後のデータセグメントを読み取った後に、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除してもよい。
【0115】
電子装置は、圧縮後のコードセグメント及び圧縮後のデータセグメント圧縮解除した後に、当該コードセグメントの入口から、当該コードセグメントを実行してもよい。
【0116】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0117】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【0118】
図4Cを参照すると、上記の実施例において、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれている。当該方法は、さらに、以下のステップを含んでもよい。
【0119】
ステップ405において、圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出する。
【0120】
電子装置は、第1情報セグメント中に、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれていると、第1情報セグメントを読み取った後に、圧縮前のコードセグメントの大きさ及び圧縮前のデータセグメントの大きさの合計を算出して、両方の合計の大きさを算出してもよい。
【0121】
ステップ406において、合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出する。
【0122】
算出し得た合計の大きさが、電子装置中に預かったファームウェア実行スペースを越えるか否かを検出する。当該ファームウェア実行スペースとは、電子装置中に預かったファームウェアを実行するためのメモリスペースである。
【0123】
ステップ407において、合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示する。
【0124】
電子装置の検出結果が、コードセグメント及びデータセグメントの合計の大きさがファームウェア実行スペースを越えることであると、当該ファームウェアは当該モデルの電子装置に適用できるファームウェアではないことを説明する。この時、電子装置は、ファームウェアにエラーが発生したことを提示してもよい。
【0125】
上記のステップは、一般的に、ステップ404の前に実行して、検出結果が合計の大きさがファームウェア実行スペースを越えると、ステップ404を実行しない。電子装置は、検出結果が、合計の大きさがファームウェア実行スペースを超えない時にのみ、ステップ404を実行することになる。本実施例においてはこれに対して制限しないことを説明する必要がある。
【0126】
本実施例によると、コードセグメント及びデータセグメントの合計の大きさを検出することにより、ユーザに、ファームウェアにエラーがあるか否かを提示できる效果を得た。
【0127】
ステップ402は、以下のステップを含んでもよいことをさらに説明する必要がある。
【0128】
電子装置は、第1アドレス情報が、圧縮後のm個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第1保存アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【0129】
この後、電子装置は、各保存アドレス中に保存したコードセグメントを読み取って、読み取った当該コードセグメントを第1圧縮解除アドレス中の当該コードセグメントに対応する圧縮解除アドレスへ圧縮解除してもよい。例えば、電子装置は、m個のセグメント中のi番目のセグメントに対しては、第1アドレス情報中からi番目のコードセグメントのアドレス情報を読み取って、i番目のコードセグメントのアドレス情報に基づいてi番目のコードセグメントの保存アドレスを特定してから、i番目のコードセグメントの保存アドレス中からi番目のコードセグメントを読み取り、また、読み取ったi番目のコードセグメントを、第1圧縮解除アドレス中の第iセグメントコードセグメントに対応する圧縮解除アドレスへ圧縮解除する。
【0130】
同様に、電子装置は、第2アドレス情報が、圧縮後のデータセグメント中のn個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第2保存アドレスが、圧縮後のn個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
【0131】
この後、電子装置は、各保存アドレス中に保存したデータセグメントを読み取って、読み取った当該データセグメントを、第2圧縮解除アドレス中の当該セグメントデータセグメントに対応する圧縮解除アドレスへ圧縮解除する。これは、圧縮後のm個のコードセグメントの処理方法と同様であるため、本実施例においては繰り返して説明しない。
【0132】
上記の各実施例において、圧縮後のファームウェアの保存フォーマットには、コードセグメント、データセグメント、及び情報セグメントが含まれていることをさらに説明する必要がある。ここで、情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。オプションとして、情報セグメントは、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさをさらに含む。当然ながら、情報セグメントは、他の情報を含んでもよく、本実施例においてはこれに対して制限しない。
【0133】
以下は、本発明の装置の実施例であり、本発明の方法の実施例を実行することができる。本発明の装置の実施例において記述していない細部内容に対しては、本発明の方法の実施例を参照してください。
【0134】
図5は、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。
図5に示したように、当該ファームウェア圧縮装置は、取得モジュール510、圧縮モジュール520、及び情報セグメント設定モジュール530を備えるが、これに制限されない。
【0135】
取得モジュール510は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【0136】
圧縮モジュール520は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【0137】
情報セグメント設定モジュール530は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
【0138】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0139】
図6Aは、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。
図6Aに示したように、当該ファームウェア圧縮装置は、取得モジュール610、圧縮モジュール620、及び情報セグメント設定モジュール630を備えるが、これに制限されない。
【0140】
取得モジュール610は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
【0141】
圧縮モジュール620は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
【0142】
情報セグメント設定モジュール630は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
【0143】
オプションとして、当該取得モジュール610は、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュール611と、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュール612と
を備える。
【0144】
オプションとして、
図6Bを参照すると、当該アドレス特定サブモジュール611は、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュール611aと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュール611bと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュール611cと
を備える。
【0145】
オプションとして、当該情報セグメント設定モジュール630は、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュール631と、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュール632と
を備える。
【0146】
オプションとして、当該情報セグメント設定モジュール630は、さらに、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュール633と、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュール634と
を備える。
【0147】
オプションとして、
図6Cを参照すると、当該圧縮モジュール620は、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュール621と、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュール622と、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュール623と、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュール624と
を備える。
【0148】
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0149】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【0150】
図7は、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
図7に示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール710、取得モジュール720、及び圧縮解除モジュール730を備えるが、これに制限されない。
【0151】
情報セグメント読取モジュール710は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
【0152】
取得モジュール720は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【0153】
圧縮解除モジュール730は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
【0154】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0155】
図8Aは、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。
図8Aに示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール810、取得モジュール820、及び圧縮解除モジュール830を備えるが、これに制限されない。
【0156】
情報セグメント読取モジュール810は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
【0157】
取得モジュール820は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
【0158】
圧縮解除モジュール830は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
【0159】
オプションとして、当該取得モジュール820は、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュール821と、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュール822と
を備える。
【0160】
オプションとして、
図8Bを参照すると、当該アドレス特定サブモジュール821は、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュール821aと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュール821bと
を備える。
【0161】
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュール840と、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュール850と、
検出モジュール850の検出結果が、合計の大きさがファームウェア実行スペースを超えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュール860と
を、さらに、備える。
【0162】
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
【0163】
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
【0164】
上記の実施例の装置について、その各モジュールが実行する操作の具体的な形態は既に当該方法に関する実施例において詳細に説明したため、ここでは詳細に説明しない。
【0165】
図9は、例示的な一実施例に係るファームウェアを圧縮するための装置900を示すブロック図である。例えば、装置900をサーバとして提供してもよい。
図9を参照すると、装置900は、プロセスアセンブリ922を備える。当該プロセスアセンブリ922は、一つ以上のプロセッサ、及びメモリ932を代表とするメモリリソースを、さらに備える。当該メモリリソースは、プロセスアセンブリ922によって実行される、例えばアプリケーションプログラムのような命令を保存する。メモリ932中に保存されたアプリケーションプログラムには、それぞれ一つの命令のセットに対応する一つ以上のモジュールを含まれてもよい。なお、プロセスアセンブリ922は、命令を実行することにより、上記のファームウェア圧縮方法を実行する。
【0166】
装置900は、装置900の電源を管理するための一つの電源アセンブリ926、装置900をネットワークに接続させるための一つの有線又は無線のネットワークインターフェイス950、及び一つの入出力インターフェイス958を備えてもよい。装置900は、メモリ932に保存された、例えば、Windows ServerTM、Mac OS XTM、UnixTM, LinuxTM、FreeBSDTMのようなオペレーティング・システムによって、操作を行うことができる。
【0167】
図10は、例示的な一実施例に係るファームウェア圧縮解除装置1000を示すブロック図である。例えば、装置1000は、携帯電話、コンピューター、デジタル放送端末、メッセージ送受信デバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
【0168】
図10を参照して、装置1000は、プロセスアセンブリ1002、メモリ1004、電源アセンブリ1006、マルチメディアアセンブリ1008、オーディオアセンブリ1010、入出力(I/O)インターフェイス1012、センサアセンブリ1014、及び通信アセンブリ1016のような一つ以上のアセンブリを含んでよい。
【0169】
プロセスアセンブリ1002は、一般的には装置1000の全体の動作を制御するものであり、例えば、表示、電話呼び出し、データ通信、カメラ動作、及び記録動作と関連する動作を制御する。プロセスアセンブリ1002は、一つ以上のプロセッサ1020を含み、これらによって命令を実行することにより、上記の方法の全部、或は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ1002は、一つ以上のモジュールを含み、これらによってプロセスアセンブリ1002と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ1002は、マルチメディアモジュールを含み、これらによってマルチメディアアセンブリ1008とプロセスアセンブリ1002の間のインタラクションを容易にするようにしてもよい。
【0170】
メモリ1004は、各種類のデータを記憶することにより装置1000の動作を支援するように構成される。これらのデータの例は、装置1000において動作するいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ1004は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、SRAM(StaticRandomAccessMemory)EEPROM(ElectricallyErasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read Only Memory)、PROM(Programmable ROM)、ROM(Read Only Member)、磁気メモリ、フラッシュメモリ、磁気ディスク、或いは光ディスクである。
【0171】
電源アセンブリ1006は、装置1000の多様なアセンブリに電力を供給する。電源アセンブリ1006は、電源管理システム、一つ以上の電源、及び装置1000のための電力の生成、管理及び割り当てに関連付けられている他のアセンブリを含んでもよい。
【0172】
マルチメディアアセンブリ1008は、前記装置1000とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。上記の実施例において、スクリーンは液晶モニター(LCD)とタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含むことにより、スクリーンはタッチスクリーンを実現することができ、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含んでおり、タッチ、スワイプ、及びタッチパネル上のジェスチャを検出することができる。前記タッチセンサは、タッチ、或はスワイプの動作の境界だけでなく、前記のタッチ、或はスワイプ操作に係る継続時間及び圧力も検出できる。上記の実施例において、マルチメディアアセンブリ1008は、一つのフロントカメラ、及び/又はリアカメラを含む。装置1000が、例えば撮影モード、或はビデオモード等の動作モードにある場合、フロントカメラ、及び/又はリアカメラは外部からマルチメディアデータを受信できる。フロントカメラとリアカメラのそれぞれは、一つの固定型の光レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
【0173】
オーディオアセンブリ1010は、オーディオ信号を入出力するように構成されてもよい。例えば、オーディオアセンブリ1010は、一つのマイク(MIC)を含み、装置1000が、例えば呼出しモード、記録モード、及び音声認識モード等の動作モードにある場合、マイクは外部のオーディオ信号を受信することができる。受信されたオーディオ信号は、さらにメモリ1004に記憶されたり、通信アセンブリ1016を介して送信されたりされる。上記の実施例において、オーディオアセンブリ1010は、オーディオ信号を出力するための一つのスピーカーをさらに含む。
【0174】
I/Oインターフェイス1012は、プロセスアセンブリ1002と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、上記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンは、ホームボタン、ボリュームボタン、作動ボタン、ロッキングボタンを含んでもよいが、これらに限定されない。
【0175】
センサアセンブリ1014は、装置1000に各種の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ1014は、装置1000のON/OFF状態、装置1000のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出できる。また、例えば、センサアセンブリ1014は、装置1000、或は装置1000の一つのアセンブリの位置変更、ユーザと装置1000とが接触しているか否か、装置1000の方位、又は加速/減速、装置1000の温度の変化を検出できる。センサアセンブリ1014は、何れの物理的接触がない状態にて付近の物体の存在を検出するための近接センサを含んでもよい。センサアセンブリ1014は、撮影アプリケーションに適用するため、CMOS、又はCCD画像センサのような光センサを含んでもよい。上記の実施例において、当該センサアセンブリ1014は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、及び温度センサをさらに含んでもよい。
【0176】
通信アセンブリ1016は、装置1000と他の機器の間に有線、又は利便性のよい形態の通信を提供する。装置1000は、例えばWiFi(登録商標)、2G、3G、或はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ1016は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ1016は、近距離無線通信(NFC)モジュールをさらに含むことにより、近距離通信を可能にする。例えば、NFCモジュールは、RFID(RadioFrequency IDentification)技術、IrDA(InfraredData Association)技術、UWB(Ultra Wide Band)技術、BT(Bluetooth(登録商標))技術、他の技術に基づいて実現できる。
【0177】
例示的な実施例において、装置1000は、一つ以上のASIC(ApplicationSpecificIntegrated Circuit)、DSP(Digital Signal Processor)、DSPD(Digital Signal ProcessingDevice)、PLD(Programmable Logic Device)、FPGA(Field−Programmable Gate Array)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
【0178】
例示的な実施例において、さらに、命令を含むコンピュータ読取り可能な非一時的な記録媒体、例えば命令を含むメモリ1004を提供しており、装置1000のプロセッサ1020により上記命令を実行して上記方法を実現する。例えば、前記コンピュータ読取り可能な非一時的な記録媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク(登録商標)、光データ記憶デバイス等である。
【0179】
本発明は上記に記述され、また図面で示した厳密な構成に限定されず、その範囲を逸脱しない限り多様な置換えと変更を行うことができると、理解されるべきである。本発明の範囲は添付の特許請求の範囲のみにより限定される。