JP2017506791A - ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体 - Google Patents

ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2017506791A
JP2017506791A JP2016571465A JP2016571465A JP2017506791A JP 2017506791 A JP2017506791 A JP 2017506791A JP 2016571465 A JP2016571465 A JP 2016571465A JP 2016571465 A JP2016571465 A JP 2016571465A JP 2017506791 A JP2017506791 A JP 2017506791A
Authority
JP
Japan
Prior art keywords
segment
address
compression
firmware
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016571465A
Other languages
English (en)
Other versions
JP6186094B2 (ja
Inventor
▲徳▼国 孟
▲徳▼国 孟
▲シン▼ ▲劉▼
▲シン▼ ▲劉▼
恩星 侯
恩星 侯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiaomi Inc
Original Assignee
Xiaomi Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiaomi Inc filed Critical Xiaomi Inc
Publication of JP2017506791A publication Critical patent/JP2017506791A/ja
Application granted granted Critical
Publication of JP6186094B2 publication Critical patent/JP6186094B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体に関し、コンピュータ技術分野に属する。前記方法は、ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するステップとを含む。関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。【選択図】図1

Description

本願は、出願番号がCN201510044885.Xであって、出願日が2015年1月29日である中国特許出願に基づいて優先権を主張し、当該中国特許出願のすべての内容を援用する。
本発明は、コンピュータ技術分野に関し、特に、ファームウェア圧縮方法、ファームウェア圧縮解除方法、及び装置に関する。
ファームウェアとは、電子装置の最下層の作業を担当するソフトウェアであり、電子装置の一般的に動作を保証するソフトウェアである。一般的に、電子装置の機能が複雑になるほど、電子装置に必要なファームウェアも大きくなる。即ち、当該ファームウェアを保存するための保存スペースも大きくなる。
関連技術では、ファームウェアが電子装置中で占める保存スペースを削減するために、一般的に、ファームウェアを一つの全体として圧縮する。電子装置は、ファームウェアを実行しようとすると、圧縮後のファームウェアを圧縮解除してから、圧縮解除後のコードセグメントに対応する第1圧縮解除アドレスに基づいて、圧縮解除し得たファームウェア中のコードセグメントを当該第1圧縮解除アドレスへコピーして、圧縮解除後のデータセグメントに対応する第2圧縮解除アドレスに基づいて、圧縮解除後のデータセグメントを当該第2圧縮解除アドレスへコピーする。
本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法、及び装置を提供する。その構成は、以下のとおりである。
本発明の実施例に係る第1の態様によると、ファームウェア圧縮方法を提供する。
当該方法は、
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するステップと
を含む。
オプションとして、ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るステップと
を含む。
オプションとして、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップは、
ファームウェアに対応する第2情報セグメントを読み取るステップと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するステップと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するステップと
を含む。
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するステップと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するステップと
を含む。
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するステップと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するステップと
を含む。
オプションとして、コードセグメント及びデータセグメントをそれぞれ圧縮するステップは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するステップと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するステップと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと
を含む。
本発明の実施例に係る第2の態様によると、ファームウェア圧縮解除方法を提供する。
当該方法は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るステップと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するステップと
を含む。
オプションとして、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るステップと
を含む。
オプションとして、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するステップと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するステップと
を含む。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該方法は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するステップと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示するステップと
を、さらに、含む。
本発明の実施例に係る第3の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
コードセグメント及びデータセグメントをそれぞれ圧縮するための圧縮モジュールと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するための情報セグメント設定モジュールと
を備える。
オプションとして、当該取得モジュールは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュールと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュールと
を備える。
オプションとして、当該アドレス特定サブモジュールは、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュールと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュールと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュールと
を備える。
オプションとして、当該情報セグメント設定モジュールは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュールと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュールと
を備える。
オプションとして、当該情報セグメント設定モジュールは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュールと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュールと
を、さらに、備える。
オプションとして、当該圧縮モジュールは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュールと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュールと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュールと
備える。
本発明の実施例に係る第4の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るための情報セグメント読取モジュールと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するための取得モジュールと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備える。
オプションとして、当該取得モジュールは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュールと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュールと
を備える。
オプションとして、当該アドレス特定サブモジュールは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュールと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュールと
を備える。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュールと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
モジュールの検出結果が、合計の大きさがファームウェア実行スペースを越えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備える。
本発明の実施例に係る第5の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
コードセグメント及びデータセグメントをそれぞれ圧縮し、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する
ように構成される。
本発明の実施例に係る第6の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取り、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得し、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する
ように構成される。
本発明の実施例が提供する構成の有益な効果は以下のとおりである。
ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
以上の統括な記述と以下の細部記述は、ただ例示的なものであり、本発明を制限するものではないと、理解するべきである。
以下の図面は、明細書の一部分として明細書全体を構成することにより、本発明に合致する実施例を例示するとともに、本発明の原理を解釈するためのものである。
例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェア圧縮方法を示すフローチャートである。 例示的なもう一実施例に係る第3保存アドレス及び第4保存アドレスを特定するための特定方法を示すフローチャートである。 例示的なもう一実施例に係る第1情報セグメントを設定するための設定方法を示すフローチャートである。 例示的なもう一実施例に係る第1情報セグメントを設定するためのもう一設定方法を示すフローチャートである。 例示的なもう一実施例に係るコードセグメント及びデータセグメントを圧縮するための圧縮方法を示すフローチャートである。 例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。 例示的なもう一実施例に係る第1保存アドレス及び第2保存アドレスを特定するための特定方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェアにエラーがあるか否かを検出する流れを示すフローチャートである。 例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。 例示的なもう一実施例に係るファームウェア圧縮装置を示すブロック図である。 例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。 例示的なもう一実施例に係る圧縮モジュールを示すブロック図である。 例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。 例示的なもう一実施例に係るファームウェア圧縮解除装置を示すブロック図である。 例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。 例示的な一実施例に係るファームウェアを圧縮するための装置を示すブロック図である。 例示的な一実施例に係るファームウェアを圧縮解除するための装置を示すブロック図である。
ここで、例示的な実施例を詳細に説明する。また、説明中の例は、図面に示している。以下の記述において、図面を説明する際に特に説明しない場合、異なる図面中の同一の符号は、同一或は同様な要素を意味する。以下の例示的な実施例において記述する実施方法は、本発明に合致するすべての実施方法を代表しない。逆に、それらは、添付の特許請求の範囲において詳細に記述された、本発明のいくつかの態様と合致する装置、及び方法の例に過ぎない。
まず、理解の便利をために、各実施例に係る各名詞を簡単に説明する。
コードセグメントは、「txtセグメント」とも呼ばれ、その中にはファームウェア中の実行可能なコードが保存される。
データセグメントは、「dataセグメント」とも呼ばれ、その中にはファームウェアコードを実行するのに必要なグローバル静的データが保存される。
図1は、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図1に示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
ステップ101において、ファームウェア中のコードセグメント及びデータセグメントを取得する。
ステップ102において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
ステップ103において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図2Aは、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図2Aに示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
ステップ201において、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定する。
サーバには、コードセグメント及びデータセグメントを含むファームウェアが保存されている。サーバは、ファームウェアを圧縮する必要があると、コードセグメントのサーバ中における第3保存アドレス、及びデータセグメントのサーバ中における第4保存アドレスを特定してもよい。
図2Bを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ201aにおいて、ファームウェアに対応する第2情報セグメントを読み取る。
サーバは、ファームウェアを保存する同時に、ファームウェアに対応する第2情報セグメントをさらに保存してもよい。当該第2情報セグメントは、第3保存アドレス及び第4保存アドレスを含むか、或いは、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさを含んでもよい。このため、サーバは、第3保存アドレス及び第4保存アドレスを特定する必要があると、当該第2情報セグメントを読み取ってもよい。
ステップ201bにおいて、第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定する。
ステップ201cにおいて、第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定する。
例えば、第2情報セグメント中に保存されているコードセグメントの開始保存アドレスがD1であり、コードセグメントの大きさがS1であり、S1大きさのコードセグメントを保存するのに必要な保存スペースがd1であると、第3保存アドレスはD1〜D1+d1である。
ステップ202において、第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取る。
サーバは、第3保存アドレス及び第4保存アドレスを特定した後に、第3保存アドレス中からコードセグメントを読み取り、第4保存アドレス中からデータセグメントを読み取ってもよい。
例えば、サーバは、D1〜D1+d1中から、コードセグメントを読み取る。
ステップ203において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
サーバは、読み取ったコードセグメントを圧縮し、また、読み取ったデータセグメントを圧縮する。
ステップ204において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
サーバは、コードセグメント及びデータセグメントをそれぞれ圧縮した後に、ファームウェアに対応する第1情報セグメントを設定してもよい。
図2Cを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ204aにおいて、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定する。
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報とし、また、第2保存アドレスを第2アドレス情報にする。ここで、サーバは、圧縮後のコードセグメントの電子装置のFlash中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置のFlashにおける第2保存アドレスを設定してもよい。
或いは、サーバは、さらに、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの電子装置中における開始保存アドレスのみ設定し、その後に、圧縮後のコードセグメントの大きさ、及び圧縮後のデータセグメントの大きさをそれぞれを取得して、最後に、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報とし、圧縮後のデータセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの大きさを、第2アドレス情報としてもよい。
ステップ204bにおいて、第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定する。
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、さらに、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを、予め設定してもよい。
本実施例においては、まず、ステップ204aを実行した後に、ステップ204bを実行する例を挙げたが、オプションとして、実行ステップ204aとステップ204bを同時に実行するか、或いは、まず、ステップ204bを実行した後に、ステップ204aを実行してもよく、これに対して制限しないことを説明する必要がある。
本実施例においては、第1情報セグメントのみを設定する例を挙げたが、オプションとして、第2情報セグメント中に第1情報セグメント中の各内容を設定してもよく、これに対して制限しないことをさらに説明する必要がある。
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図2Dを参照すると、上記の各実施例において、サーバがファームウェアに対応する第1情報セグメントを設定するステップは、以下のステップを、さらに、含んでもよい。
ステップ204cにおいて、コードセグメントの大きさ及びデータセグメントの大きさを取得する。
サーバは、さらに、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさを取得してもよい。
オプションとして、サーバは、第2情報セグメント中に両方の大きさが保存されていると、第2情報セグメント中から上記の内容を読み取ってもよい。
サーバは、第2情報セグメント中に、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスが保存されていると、第3保存アドレスのアドレスの長さに基づいてコードセグメントの大きさを特定し、また、第3保存アドレスのアドレスの長さに基づいてデータセグメントの大きさを特定してもよく、本実施例においてはこれに対して制限しない。
ステップ204dにおいて、コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存する。
サーバは、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第1情報セグメントに保存してもよい。
当然ながら、サーバは、第1情報セグメント中の内容を、直接、第2情報セグメント中に設定すると、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第2情報セグメントに保存してもよく、本実施例においてはこれに対して制限しない。また、サーバは、もし、第2情報セグメント中に上記の両方の大きさが既に保存されていると、ステップ204cとステップ204dを実行しないでもよく、本実施例においてはこれに対しても制限しない。
また、本実施例においては、ステップ204a、ステップ204b及びステップ204cを実行する順序に対して制限しない。サーバは、実際の適用場面によってその順序を調整してもよい。
図2Eを参照すると、上記の実施例において、ステップ203は、以下のステップを含んでもよい。
ステップ203aにおいて、コードセグメント及びデータセグメントの中の少なくとも一つを分割する。
サーバは、ファームウェア中のコードセグメント及びデータセグメントを取得した後に、コードセグメントを分割するか、或いは、データセグメントを分割か、或いは、コードセグメント及びデータセグメントの両方を分割してもよい。
例えば、サーバは、コードセグメントを分割する例を挙げると、コードセグメントをm個のセグメントに分割してもよい。
オプションとして、分割後のコードセグメント中の各セグメントの長さは、同一であるか、或は、同一でない。同様に、分割後のデータセグメント中の各セグメントの長さも、同一であるか、或は、同一でない。
ステップ203bにおいて、分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮する。
サーバは、コードセグメントをm個のセグメントに分割すると、分割し得たm個のセグメントをそれぞれ圧縮する同時に、データセグメントを圧縮する。
これに対し、サーバが設定する第1アドレス情報は、圧縮後のm個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第1圧縮解除アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
ステップ203cにおいて、分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
サーバは、データセグメントをn個のセグメントに分割すると、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
これに対し、サーバが設定する第2アドレス情報は、圧縮後のn個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第2圧縮解除アドレスは、圧縮後のn個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスをふくんでもよい。
ステップ203dにおいて、分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
同様に、サーバは、コードセグメントをm個のセグメントに分割し、また、データセグメントをn個のセグメントに分割すると、分割後のコードセグメント中のm個のセグメントをそれぞれ圧縮し、また、分割後のデータセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
これに対し、サーバが設定する第1アドレス情報は、m個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第1圧縮解除アドレスは、m個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含み、サーバが設定する第2アドレス情報は、n個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第2圧縮解除アドレスは、n個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
図3は、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図3に示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
ステップ301において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
ステップ302において、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
ステップ303において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図4Aは、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図4Aに示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
ステップ401において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
電子装置は、ネットワークを介してサーバからファームウェアを取得するか、或いは、回復装置(recovery device)或いはモバイル記憶デバイスからファームウェアを取得してもよい。当該ファームウェアは、一般的に、圧縮後のファームウェアであり、また、圧縮後のファームウェアは、一般的に、圧縮後のコードセグメント、圧縮後のデータセグメント、及び第1情報セグメントを含む。ここで、第1情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。また、回復装置及びモバイル記憶デバイス中のファームウェアは、サーバから事前に取得したファームウェアであってもよく、本実施例においてはこれに対して制限しない。
電子装置は、ファームウェアを実行する必要があると、ファームウェアに対応する第1情報セグメントを読み取ってもよい。
ステップ402において、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定する。
電子装置は、第1情報セグメント中の第1アドレス情報及び第2アドレス情報を読み取った後に、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定してもよい。
図4Bを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ402aにおいて、第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定する。
ステップ402bにおいて、第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定する。
本ステップは、上記の実施例中のステップ201cと同様であるため、本実施例においては繰り返して説明しない。
ステップ403において、第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取る。
ステップ404において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
電子装置は、圧縮後のコードセグメント、及び圧縮後のデータセグメントを読み取った後に、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除してもよい。
電子装置は、圧縮後のコードセグメント及び圧縮後のデータセグメント圧縮解除した後に、当該コードセグメントの入口から、当該コードセグメントを実行してもよい。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図4Cを参照すると、上記の実施例において、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれている。当該方法は、さらに、以下のステップを含んでもよい。
ステップ405において、圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出する。
電子装置は、第1情報セグメント中に、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれていると、第1情報セグメントを読み取った後に、圧縮前のコードセグメントの大きさ及び圧縮前のデータセグメントの大きさの合計を算出して、両方の合計の大きさを算出してもよい。
ステップ406において、合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出する。
算出し得た合計の大きさが、電子装置中に預かったファームウェア実行スペースを越えるか否かを検出する。当該ファームウェア実行スペースとは、電子装置中に預かったファームウェアを実行するためのメモリスペースである。
ステップ407において、合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示する。
電子装置の検出結果が、コードセグメント及びデータセグメントの合計の大きさがファームウェア実行スペースを越えることであると、当該ファームウェアは当該モデルの電子装置に適用できるファームウェアではないことを説明する。この時、電子装置は、ファームウェアにエラーが発生したことを提示してもよい。
上記のステップは、一般的に、ステップ404の前に実行して、検出結果が合計の大きさがファームウェア実行スペースを越えると、ステップ404を実行しない。電子装置は、検出結果が、合計の大きさがファームウェア実行スペースを超えない時にのみ、ステップ404を実行することになる。本実施例においてはこれに対して制限しないことを説明する必要がある。
本実施例によると、コードセグメント及びデータセグメントの合計の大きさを検出することにより、ユーザに、ファームウェアにエラーがあるか否かを提示できる效果を得た。
ステップ402は、以下のステップを含んでもよいことをさらに説明する必要がある。
電子装置は、第1アドレス情報が、圧縮後のm個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第1保存アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
この後、電子装置は、各保存アドレス中に保存したコードセグメントを読み取って、読み取った当該コードセグメントを第1圧縮解除アドレス中の当該コードセグメントに対応する圧縮解除アドレスへ圧縮解除してもよい。例えば、電子装置は、m個のセグメント中のi番目のセグメントに対しては、第1アドレス情報中からi番目のコードセグメントのアドレス情報を読み取って、i番目のコードセグメントのアドレス情報に基づいてi番目のコードセグメントの保存アドレスを特定してから、i番目のコードセグメントの保存アドレス中からi番目のコードセグメントを読み取り、また、読み取ったi番目のコードセグメントを、第1圧縮解除アドレス中の第iセグメントコードセグメントに対応する圧縮解除アドレスへ圧縮解除する。
同様に、電子装置は、第2アドレス情報が、圧縮後のデータセグメント中のn個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第2保存アドレスが、圧縮後のn個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
この後、電子装置は、各保存アドレス中に保存したデータセグメントを読み取って、読み取った当該データセグメントを、第2圧縮解除アドレス中の当該セグメントデータセグメントに対応する圧縮解除アドレスへ圧縮解除する。これは、圧縮後のm個のコードセグメントの処理方法と同様であるため、本実施例においては繰り返して説明しない。
上記の各実施例において、圧縮後のファームウェアの保存フォーマットには、コードセグメント、データセグメント、及び情報セグメントが含まれていることをさらに説明する必要がある。ここで、情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。オプションとして、情報セグメントは、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさをさらに含む。当然ながら、情報セグメントは、他の情報を含んでもよく、本実施例においてはこれに対して制限しない。
以下は、本発明の装置の実施例であり、本発明の方法の実施例を実行することができる。本発明の装置の実施例において記述していない細部内容に対しては、本発明の方法の実施例を参照してください。
図5は、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図5に示したように、当該ファームウェア圧縮装置は、取得モジュール510、圧縮モジュール520、及び情報セグメント設定モジュール530を備えるが、これに制限されない。
取得モジュール510は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
圧縮モジュール520は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
情報セグメント設定モジュール530は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図6Aは、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図6Aに示したように、当該ファームウェア圧縮装置は、取得モジュール610、圧縮モジュール620、及び情報セグメント設定モジュール630を備えるが、これに制限されない。
取得モジュール610は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
圧縮モジュール620は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
情報セグメント設定モジュール630は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
オプションとして、当該取得モジュール610は、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュール611と、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュール612と
を備える。
オプションとして、図6Bを参照すると、当該アドレス特定サブモジュール611は、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュール611aと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュール611bと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュール611cと
を備える。
オプションとして、当該情報セグメント設定モジュール630は、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュール631と、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュール632と
を備える。
オプションとして、当該情報セグメント設定モジュール630は、さらに、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュール633と、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュール634と
を備える。
オプションとして、図6Cを参照すると、当該圧縮モジュール620は、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュール621と、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュール622と、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュール623と、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュール624と
を備える。
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図7は、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図7に示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール710、取得モジュール720、及び圧縮解除モジュール730を備えるが、これに制限されない。
情報セグメント読取モジュール710は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
取得モジュール720は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
圧縮解除モジュール730は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図8Aは、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図8Aに示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール810、取得モジュール820、及び圧縮解除モジュール830を備えるが、これに制限されない。
情報セグメント読取モジュール810は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
取得モジュール820は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
圧縮解除モジュール830は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
オプションとして、当該取得モジュール820は、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュール821と、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュール822と
を備える。
オプションとして、図8Bを参照すると、当該アドレス特定サブモジュール821は、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュール821aと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュール821bと
を備える。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュール840と、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュール850と、
検出モジュール850の検出結果が、合計の大きさがファームウェア実行スペースを超えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュール860と
を、さらに、備える。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
上記の実施例の装置について、その各モジュールが実行する操作の具体的な形態は既に当該方法に関する実施例において詳細に説明したため、ここでは詳細に説明しない。
図9は、例示的な一実施例に係るファームウェアを圧縮するための装置900を示すブロック図である。例えば、装置900をサーバとして提供してもよい。図9を参照すると、装置900は、プロセスアセンブリ922を備える。当該プロセスアセンブリ922は、一つ以上のプロセッサ、及びメモリ932を代表とするメモリリソースを、さらに備える。当該メモリリソースは、プロセスアセンブリ922によって実行される、例えばアプリケーションプログラムのような命令を保存する。メモリ932中に保存されたアプリケーションプログラムには、それぞれ一つの命令のセットに対応する一つ以上のモジュールを含まれてもよい。なお、プロセスアセンブリ922は、命令を実行することにより、上記のファームウェア圧縮方法を実行する。
装置900は、装置900の電源を管理するための一つの電源アセンブリ926、装置900をネットワークに接続させるための一つの有線又は無線のネットワークインターフェイス950、及び一つの入出力インターフェイス958を備えてもよい。装置900は、メモリ932に保存された、例えば、Windows ServerTM、Mac OS XTM、UnixTM, LinuxTM、FreeBSDTMのようなオペレーティング・システムによって、操作を行うことができる。
図10は、例示的な一実施例に係るファームウェア圧縮解除装置1000を示すブロック図である。例えば、装置1000は、携帯電話、コンピューター、デジタル放送端末、メッセージ送受信デバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
図10を参照して、装置1000は、プロセスアセンブリ1002、メモリ1004、電源アセンブリ1006、マルチメディアアセンブリ1008、オーディオアセンブリ1010、入出力(I/O)インターフェイス1012、センサアセンブリ1014、及び通信アセンブリ1016のような一つ以上のアセンブリを含んでよい。
プロセスアセンブリ1002は、一般的には装置1000の全体の動作を制御するものであり、例えば、表示、電話呼び出し、データ通信、カメラ動作、及び記録動作と関連する動作を制御する。プロセスアセンブリ1002は、一つ以上のプロセッサ1020を含み、これらによって命令を実行することにより、上記の方法の全部、或は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ1002は、一つ以上のモジュールを含み、これらによってプロセスアセンブリ1002と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ1002は、マルチメディアモジュールを含み、これらによってマルチメディアアセンブリ1008とプロセスアセンブリ1002の間のインタラクションを容易にするようにしてもよい。
メモリ1004は、各種類のデータを記憶することにより装置1000の動作を支援するように構成される。これらのデータの例は、装置1000において動作するいずれのアプリケーションプログラム又は方法の命令、連絡対象データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ1004は、いずれの種類の揮発性メモリ、不揮発性メモリ記憶デバイスまたはそれらの組み合わせによって実現されてもよく、例えば、SRAM(StaticRandomAccessMemory)EEPROM(Electrically Erasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read Only Memory)、PROM( Programmable ROM)、ROM(Read Only Member)、磁気メモリ、フラッシュメモリ、磁気ディスク、或いは光ディスクである。
電源アセンブリ1006は、装置1000の多様なアセンブリに電力を供給する。電源アセンブリ1006は、電源管理システム、一つ以上の電源、及び装置1000のための電力の生成、管理及び割り当てに関連付けられている他のアセンブリを含んでもよい。
マルチメディアアセンブリ1008は、前記装置1000とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。上記の実施例において、スクリーンは液晶モニター(LCD)とタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含むことにより、スクリーンはタッチスクリーンを実現することができ、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含んでおり、タッチ、スワイプ、及びタッチパネル上のジェスチャを検出することができる。前記タッチセンサは、タッチ、或はスワイプの動作の境界だけでなく、前記のタッチ、或はスワイプ操作に係る継続時間及び圧力も検出できる。上記の実施例において、マルチメディアアセンブリ1008は、一つのフロントカメラ、及び/又はリアカメラを含む。装置1000が、例えば撮影モード、或はビデオモード等の動作モードにある場合、フロントカメラ、及び/又はリアカメラは外部からマルチメディアデータを受信できる。フロントカメラとリアカメラのそれぞれは、一つの固定型の光レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
オーディオアセンブリ1010は、オーディオ信号を入出力するように構成されてもよい。例えば、オーディオアセンブリ1010は、一つのマイク(MIC)を含み、装置1000が、例えば呼出しモード、記録モード、及び音声認識モード等の動作モードにある場合、マイクは外部のオーディオ信号を受信することができる。受信されたオーディオ信号は、さらにメモリ1004に記憶されたり、通信アセンブリ1016を介して送信されたりされる。上記の実施例において、オーディオアセンブリ1010は、オーディオ信号を出力するための一つのスピーカーをさらに含む。
I/Oインターフェイス1012は、プロセスアセンブリ1002と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、上記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンは、ホームボタン、ボリュームボタン、作動ボタン、ロッキングボタンを含んでもよいが、これらに限定されない。
センサアセンブリ1014は、装置1000に各種の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ1014は、装置1000のON/OFF状態、装置1000のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出できる。また、例えば、センサアセンブリ1014は、装置1000、或は装置1000の一つのアセンブリの位置変更、ユーザと装置1000とが接触しているか否か、装置1000の方位、又は加速/減速、装置1000の温度の変化を検出できる。センサアセンブリ1014は、何れの物理的接触がない状態にて付近の物体の存在を検出するための近接センサを含んでもよい。センサアセンブリ1014は、撮影アプリケーションに適用するため、CMOS、又はCCD画像センサのような光センサを含んでもよい。上記の実施例において、当該センサアセンブリ1014は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、及び温度センサをさらに含んでもよい。
通信アセンブリ1016は、装置1000と他の機器の間に有線、又は利便性のよい形態の通信を提供する。装置1000は、例えばWiFi(登録商標)、2G、3G、或はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ1016は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ1016は、近距離無線通信(NFC)モジュールをさらに含むことにより、近距離通信を可能にする。例えば、NFCモジュールは、RFID(Radio Frequency IDentification)技術、IrDA(Infrared Data Association)技術、UWB(Ultra Wide Band)技術、BT(Bluetooth(登録商標))技術、他の技術に基づいて実現できる。
例示的な実施例において、装置1000は、一つ以上のASIC(ApplicationSpecific Integrated Circuit)、DSP(Digital Signal Processor)、DSPD(Digital Signal Processing Device)、PLD(Programmable Logic Device)、FPGA(Field−Programmable Gate Array)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
例示的な実施例において、さらに、命令を含むコンピュータ読取り可能な非一時的な記録媒体、例えば命令を含むメモリ1004を提供しており、装置1000のプロセッサ1020により上記命令を実行して上記方法を実現する。例えば、前記コンピュータ読取り可能な非一時的な記録媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク(登録商標)、光データ記憶デバイス等である。
本発明は上記に記述され、また図面で示した厳密な構成に限定されず、その範囲を逸脱しない限り多様な置換えと変更を行うことができると、理解されるべきである。本発明の範囲は添付の特許請求の範囲のみにより限定される。
本願は、出願番号がCN201510044885.Xであって、出願日が2015年1月29日である中国特許出願に基づいて優先権を主張し、当該中国特許出願のすべての内容を援用する。
本発明は、コンピュータ技術分野に関し、特に、ファームウェア圧縮方法、ファームウェア圧縮解除方法装置、プログラム及び記録媒体に関する。
ファームウェアとは、電子装置の最下層の作業を担当するソフトウェアであり、電子装置の一般的に動作を保証するソフトウェアである。一般的に、電子装置の機能が複雑になるほど、電子装置に必要なファームウェアも大きくなる。即ち、当該ファームウェアを保存するための保存スペースも大きくなる。
関連技術では、ファームウェアが電子装置中で占める保存スペースを削減するために、一般的に、ファームウェアを一つの全体として圧縮する。電子装置は、ファームウェアを実行しようとすると、圧縮後のファームウェアを圧縮解除してから、圧縮解除後のコードセグメントに対応する第1圧縮解除アドレスに基づいて、圧縮解除し得たファームウェア中のコードセグメントを当該第1圧縮解除アドレスへコピーして、圧縮解除後のデータセグメントに対応する第2圧縮解除アドレスに基づいて、圧縮解除後のデータセグメントを当該第2圧縮解除アドレスへコピーする。
本発明は、ファームウェア圧縮方法、ファームウェア圧縮解除方法装置、プログラム及び記録媒体を提供する。その構成は、以下のとおりである。
本発明の実施例に係る第1の態様によると、ファームウェア圧縮方法を提供する。
当該方法は、
ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
コードセグメント及びデータセグメントをそれぞれ圧縮するステップと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するステップと
を含む。
オプションとして、ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るステップと
を含む。
オプションとして、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するステップは、
ファームウェアに対応する第2情報セグメントを読み取るステップと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するステップと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するステップと
を含む。
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するステップと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するステップと
を含む。
オプションとして、ファームウェアに対応する第1情報セグメントを設定するステップは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するステップと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するステップと
を含む。
オプションとして、コードセグメント及びデータセグメントをそれぞれ圧縮するステップは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するステップと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するステップと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するステップと
を含む。
本発明の実施例に係る第2の態様によると、ファームウェア圧縮解除方法を提供する。
当該方法は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るステップと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するステップと
を含む。
オプションとして、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するステップは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るステップと
を含む。
オプションとして、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するステップは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するステップと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するステップと
を含む。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該方法は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するステップと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示するステップと
を、さらに、含む。
本発明の実施例に係る第3の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
コードセグメント及びデータセグメントをそれぞれ圧縮するための圧縮モジュールと、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するための情報セグメント設定モジュールと
を備える。
オプションとして、当該取得モジュールは、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュールと、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュールと
を備える。
オプションとして、当該アドレス特定サブモジュールは、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュールと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュールと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュールと
を備える。
オプションとして、当該情報セグメント設定モジュールは、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュールと、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュールと
を備える。
オプションとして、当該情報セグメント設定モジュールは、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュールと、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュールと
を、さらに、備える。
オプションとして、当該圧縮モジュールは、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュールと、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュールと、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュールと
備える。
本発明の実施例に係る第4の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るための情報セグメント読取モジュールと、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得するための取得モジュールと、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
を備える。
オプションとして、当該取得モジュールは、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュールと、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュールと
を備える。
オプションとして、当該アドレス特定サブモジュールは、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュールと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュールと
を備える。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、
当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュールと、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
モジュールの検出結果が、合計の大きさがファームウェア実行スペースを越えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュールと
をさらに備える。
本発明の実施例に係る第5の態様によると、ファームウェア圧縮装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェア中のコードセグメント及びデータセグメントを取得し、
コードセグメント及びデータセグメントをそれぞれ圧縮し、
ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する
ように構成される。
本発明の実施例に係る第6の態様によると、ファームウェア圧縮解除装置を提供する。
当該装置は、
プロセッサと、
前記プロセッサが実行可能な命令を記憶するためのメモリと
を備え、
プロセッサは、
ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取り、
第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得し、
圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する
ように構成される。
本発明の実施例の第7の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮方法を実現する。
本発明の実施例の第8の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
本発明の実施例の第9の態様によると、プログラムを提供し、当該プログラムは、プロセッサに実行されることにより、上記のファームウェア圧縮解除方法を実現する。
本発明の実施例の第10の態様によると、記録媒体を提供し、当該記録媒体には、上記プログラムが記録されている。
本発明の実施例が提供する構成の有益な効果は以下のとおりである。
ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
以上の統括な記述と以下の細部記述は、ただ例示的なものであり、本発明を制限するものではないと、理解するべきである。
以下の図面は、明細書の一部分として明細書全体を構成することにより、本発明に合致する実施例を例示するとともに、本発明の原理を解釈するためのものである。
例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェア圧縮方法を示すフローチャートである。 例示的なもう一実施例に係る第3保存アドレス及び第4保存アドレスを特定するための特定方法を示すフローチャートである。 例示的なもう一実施例に係る第1情報セグメントを設定するための設定方法を示すフローチャートである。 例示的なもう一実施例に係る第1情報セグメントを設定するためのもう一設定方法を示すフローチャートである。 例示的なもう一実施例に係るコードセグメント及びデータセグメントを圧縮するための圧縮方法を示すフローチャートである。 例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。 例示的なもう一実施例に係る第1保存アドレス及び第2保存アドレスを特定するための特定方法を示すフローチャートである。 例示的なもう一実施例に係るファームウェアにエラーがあるか否かを検出する流れを示すフローチャートである。 例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。 例示的なもう一実施例に係るファームウェア圧縮装置を示すブロック図である。 例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。 例示的なもう一実施例に係る圧縮モジュールを示すブロック図である。 例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。 例示的なもう一実施例に係るファームウェア圧縮解除装置を示すブロック図である。 例示的なもう一実施例に係るアドレス特定サブモジュールを示すブロック図である。 例示的な一実施例に係るファームウェアを圧縮するための装置を示すブロック図である。 例示的な一実施例に係るファームウェアを圧縮解除するための装置を示すブロック図である。
ここで、例示的な実施例を詳細に説明する。また、説明中の例は、図面に示している。以下の記述において、図面を説明する際に特に説明しない場合、異なる図面中の同一の符号は、同一或は同様な要素を意味する。以下の例示的な実施例において記述する実施方法は、本発明に合致するすべての実施方法を代表しない。逆に、それらは、添付の特許請求の範囲において詳細に記述された、本発明のいくつかの態様と合致する装置、及び方法の例に過ぎない。
まず、理解の便利をために、各実施例に係る各名詞を簡単に説明する。
コードセグメントは、「txtセグメント」とも呼ばれ、その中にはファームウェア中の実行可能なコードが保存される。
データセグメントは、「dataセグメント」とも呼ばれ、その中にはファームウェアコードを実行するのに必要なグローバル静的データが保存される。
図1は、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図1に示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
ステップ101において、ファームウェア中のコードセグメント及びデータセグメントを取得する。
ステップ102において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
ステップ103において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図2Aは、例示的な一実施例に係るファームウェア圧縮方法を示すフローチャートである。図2Aに示したように、当該ファームウェア圧縮方法は、以下のステップを含んでもよい。
ステップ201において、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定する。
サーバには、コードセグメント及びデータセグメントを含むファームウェアが保存されている。サーバは、ファームウェアを圧縮する必要があると、コードセグメントのサーバ中における第3保存アドレス、及びデータセグメントのサーバ中における第4保存アドレスを特定してもよい。
図2Bを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ201aにおいて、ファームウェアに対応する第2情報セグメントを読み取る。
サーバは、ファームウェアを保存する同時に、ファームウェアに対応する第2情報セグメントをさらに保存してもよい。当該第2情報セグメントは、第3保存アドレス及び第4保存アドレスを含むか、或いは、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさを含んでもよい。このため、サーバは、第3保存アドレス及び第4保存アドレスを特定する必要があると、当該第2情報セグメントを読み取ってもよい。
ステップ201bにおいて、第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定する。
ステップ201cにおいて、第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定する。
例えば、第2情報セグメント中に保存されているコードセグメントの開始保存アドレスがD1であり、コードセグメントの大きさがS1であり、S1大きさのコードセグメントを保存するのに必要な保存スペースがd1であると、第3保存アドレスはD1〜D1+d1である。
ステップ202において、第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取る。
サーバは、第3保存アドレス及び第4保存アドレスを特定した後に、第3保存アドレス中からコードセグメントを読み取り、第4保存アドレス中からデータセグメントを読み取ってもよい。
例えば、サーバは、D1〜D1+d1中から、コードセグメントを読み取る。
ステップ203において、コードセグメント及びデータセグメントをそれぞれ圧縮する。
サーバは、読み取ったコードセグメントを圧縮し、また、読み取ったデータセグメントを圧縮する。
ステップ204において、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
サーバは、コードセグメント及びデータセグメントをそれぞれ圧縮した後に、ファームウェアに対応する第1情報セグメントを設定してもよい。
図2Cを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ204aにおいて、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定する。
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報とし、また、第2保存アドレスを第2アドレス情報にする。ここで、サーバは、圧縮後のコードセグメントの電子装置のFlash中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置のFlashにおける第2保存アドレスを設定してもよい。
或いは、サーバは、さらに、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの電子装置中における開始保存アドレスのみ設定し、その後に、圧縮後のコードセグメントの大きさ、及び圧縮後のデータセグメントの大きさをそれぞれを取得して、最後に、圧縮後のコードセグメントの電子装置中における開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報とし、圧縮後のデータセグメントの電子装置中における開始保存アドレス、及び圧縮後のデータセグメントの大きさを、第2アドレス情報としてもよい。
ステップ204bにおいて、第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定する。
ファームウェアは、一般的に、指定されたあるモデルの電子装置に適用され、且つ、当該電子装置の保存スペースは固定されている。このため、サーバは、さらに、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを、予め設定してもよい。
本実施例においては、まず、ステップ204aを実行した後に、ステップ204bを実行する例を挙げたが、オプションとして、実行ステップ204aとステップ204bを同時に実行するか、或いは、まず、ステップ204bを実行した後に、ステップ204aを実行してもよく、これに対して制限しないことを説明する必要がある。
本実施例においては、第1情報セグメントのみを設定する例を挙げたが、オプションとして、第2情報セグメント中に第1情報セグメント中の各内容を設定してもよく、これに対して制限しないことをさらに説明する必要がある。
上記のように、本発明に係る実施例によって提供するファームウェア圧縮方法によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図2Dを参照すると、上記の各実施例において、サーバがファームウェアに対応する第1情報セグメントを設定するステップは、以下のステップを、さらに、含んでもよい。
ステップ204cにおいて、コードセグメントの大きさ及びデータセグメントの大きさを取得する。
サーバは、さらに、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさを取得してもよい。
オプションとして、サーバは、第2情報セグメント中に両方の大きさが保存されていると、第2情報セグメント中から上記の内容を読み取ってもよい。
サーバは、第2情報セグメント中に、コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスが保存されていると、第3保存アドレスのアドレスの長さに基づいてコードセグメントの大きさを特定し、また、第3保存アドレスのアドレスの長さに基づいてデータセグメントの大きさを特定してもよく、本実施例においてはこれに対して制限しない。
ステップ204dにおいて、コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存する。
サーバは、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第1情報セグメントに保存してもよい。
当然ながら、サーバは、第1情報セグメント中の内容を、直接、第2情報セグメント中に設定すると、取得したコードセグメントの大きさ、及びデータセグメントの大きさを第2情報セグメントに保存してもよく、本実施例においてはこれに対して制限しない。また、サーバは、もし、第2情報セグメント中に上記の両方の大きさが既に保存されていると、ステップ204cとステップ204dを実行しないでもよく、本実施例においてはこれに対しても制限しない。
また、本実施例においては、ステップ204a、ステップ204b及びステップ204cを実行する順序に対して制限しない。サーバは、実際の適用場面によってその順序を調整してもよい。
図2Eを参照すると、上記の実施例において、ステップ203は、以下のステップを含んでもよい。
ステップ203aにおいて、コードセグメント及びデータセグメントの中の少なくとも一つを分割する。
サーバは、ファームウェア中のコードセグメント及びデータセグメントを取得した後に、コードセグメントを分割するか、或いは、データセグメントを分割か、或いは、コードセグメント及びデータセグメントの両方を分割してもよい。
例えば、サーバは、コードセグメントを分割する例を挙げると、コードセグメントをm個のセグメントに分割してもよい。
オプションとして、分割後のコードセグメント中の各セグメントの長さは、同一であるか、或は、同一でない。同様に、分割後のデータセグメント中の各セグメントの長さも、同一であるか、或は、同一でない。
ステップ203bにおいて、分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮する。
サーバは、コードセグメントをm個のセグメントに分割すると、分割し得たm個のセグメントをそれぞれ圧縮する同時に、データセグメントを圧縮する。
これに対し、サーバが設定する第1アドレス情報は、圧縮後のm個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第1圧縮解除アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
ステップ203cにおいて、分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
サーバは、データセグメントをn個のセグメントに分割すると、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
これに対し、サーバが設定する第2アドレス情報は、圧縮後のn個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含んでもよく、サーバが設定する第2圧縮解除アドレスは、圧縮後のn個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスをふくんでもよい。
ステップ203dにおいて、分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮する。
同様に、サーバは、コードセグメントをm個のセグメントに分割し、また、データセグメントをn個のセグメントに分割すると、分割後のコードセグメント中のm個のセグメントをそれぞれ圧縮し、また、分割後のデータセグメント中のn個のセグメントをそれぞれ圧縮してもよい。
これに対し、サーバが設定する第1アドレス情報は、m個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第1圧縮解除アドレスは、m個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含み、サーバが設定する第2アドレス情報は、n個のセグメント中の各セグメントの電子装置中におけるアドレス情報を含み、サーバが設定する第2圧縮解除アドレスは、n個のセグメント中の各セグメントの電子装置中に対応する圧縮解除アドレスを含んでもよい。
図3は、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図3に示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
ステップ301において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
ステップ302において、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
ステップ303において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図4Aは、例示的な一実施例に係るファームウェア圧縮解除方法を示すフローチャートである。図4Aに示したように、当該ファームウェア圧縮解除方法は、以下のステップを含んでもよい。
ステップ401において、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
電子装置は、ネットワークを介してサーバからファームウェアを取得するか、或いは、回復装置(recoverydevice)或いはモバイル記憶デバイスからファームウェアを取得してもよい。当該ファームウェアは、一般的に、圧縮後のファームウェアであり、また、圧縮後のファームウェアは、一般的に、圧縮後のコードセグメント、圧縮後のデータセグメント、及び第1情報セグメントを含む。ここで、第1情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。また、回復装置及びモバイル記憶デバイス中のファームウェアは、サーバから事前に取得したファームウェアであってもよく、本実施例においてはこれに対して制限しない。
電子装置は、ファームウェアを実行する必要があると、ファームウェアに対応する第1情報セグメントを読み取ってもよい。
ステップ402において、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定する。
電子装置は、第1情報セグメント中の第1アドレス情報及び第2アドレス情報を読み取った後に、第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定してもよい。
図4Bを参照すると、本ステップは、以下のステップを含んでもよい。
ステップ402aにおいて、第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定する。
ステップ402bにおいて、第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定する。
本ステップは、上記の実施例中のステップ201cと同様であるため、本実施例においては繰り返して説明しない。
ステップ403において、第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取る。
ステップ404において、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
電子装置は、圧縮後のコードセグメント、及び圧縮後のデータセグメントを読み取った後に、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除してもよい。
電子装置は、圧縮後のコードセグメント及び圧縮後のデータセグメント圧縮解除した後に、当該コードセグメントの入口から、当該コードセグメントを実行してもよい。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除方法によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図4Cを参照すると、上記の実施例において、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれている。当該方法は、さらに、以下のステップを含んでもよい。
ステップ405において、圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出する。
電子装置は、第1情報セグメント中に、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれていると、第1情報セグメントを読み取った後に、圧縮前のコードセグメントの大きさ及び圧縮前のデータセグメントの大きさの合計を算出して、両方の合計の大きさを算出してもよい。
ステップ406において、合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出する。
算出し得た合計の大きさが、電子装置中に預かったファームウェア実行スペースを越えるか否かを検出する。当該ファームウェア実行スペースとは、電子装置中に預かったファームウェアを実行するためのメモリスペースである。
ステップ407において、合計の大きさがファームウェア実行スペースを越えると、ファームウェアにエラーが発生したことを提示する。
電子装置の検出結果が、コードセグメント及びデータセグメントの合計の大きさがファームウェア実行スペースを越えることであると、当該ファームウェアは当該モデルの電子装置に適用できるファームウェアではないことを説明する。この時、電子装置は、ファームウェアにエラーが発生したことを提示してもよい。
上記のステップは、一般的に、ステップ404の前に実行して、検出結果が合計の大きさがファームウェア実行スペースを越えると、ステップ404を実行しない。電子装置は、検出結果が、合計の大きさがファームウェア実行スペースを超えない時にのみ、ステップ404を実行することになる。本実施例においてはこれに対して制限しないことを説明する必要がある。
本実施例によると、コードセグメント及びデータセグメントの合計の大きさを検出することにより、ユーザに、ファームウェアにエラーがあるか否かを提示できる效果を得た。
ステップ402は、以下のステップを含んでもよいことをさらに説明する必要がある。
電子装置は、第1アドレス情報が、圧縮後のm個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第1保存アドレスは、圧縮後のm個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
この後、電子装置は、各保存アドレス中に保存したコードセグメントを読み取って、読み取った当該コードセグメントを第1圧縮解除アドレス中の当該コードセグメントに対応する圧縮解除アドレスへ圧縮解除してもよい。例えば、電子装置は、m個のセグメント中のi番目のセグメントに対しては、第1アドレス情報中からi番目のコードセグメントのアドレス情報を読み取って、i番目のコードセグメントのアドレス情報に基づいてi番目のコードセグメントの保存アドレスを特定してから、i番目のコードセグメントの保存アドレス中からi番目のコードセグメントを読み取り、また、読み取ったi番目のコードセグメントを、第1圧縮解除アドレス中の第iセグメントコードセグメントに対応する圧縮解除アドレスへ圧縮解除する。
同様に、電子装置は、第2アドレス情報が、圧縮後のデータセグメント中のn個のセグメント中の各セグメントのアドレス情報を含むと、各セグメントのアドレス情報に基づいて各セグメントの保存アドレスを特定する。即ち、第2保存アドレスが、圧縮後のn個のセグメント中の各セグメントの電子装置中における保存アドレスを含む。
この後、電子装置は、各保存アドレス中に保存したデータセグメントを読み取って、読み取った当該データセグメントを、第2圧縮解除アドレス中の当該セグメントデータセグメントに対応する圧縮解除アドレスへ圧縮解除する。これは、圧縮後のm個のコードセグメントの処理方法と同様であるため、本実施例においては繰り返して説明しない。
上記の各実施例において、圧縮後のファームウェアの保存フォーマットには、コードセグメント、データセグメント、及び情報セグメントが含まれていることをさらに説明する必要がある。ここで、情報セグメントは、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む。オプションとして、情報セグメントは、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさをさらに含む。当然ながら、情報セグメントは、他の情報を含んでもよく、本実施例においてはこれに対して制限しない。
以下は、本発明の装置の実施例であり、本発明の方法の実施例を実行することができる。本発明の装置の実施例において記述していない細部内容に対しては、本発明の方法の実施例を参照してください。
図5は、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図5に示したように、当該ファームウェア圧縮装置は、取得モジュール510、圧縮モジュール520、及び情報セグメント設定モジュール530を備えるが、これに制限されない。
取得モジュール510は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
圧縮モジュール520は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
情報セグメント設定モジュール530は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図6Aは、例示的な一実施例に係るファームウェア圧縮装置を示すブロック図である。図6Aに示したように、当該ファームウェア圧縮装置は、取得モジュール610、圧縮モジュール620、及び情報セグメント設定モジュール630を備えるが、これに制限されない。
取得モジュール610は、ファームウェア中のコードセグメント及びデータセグメントを取得する。
圧縮モジュール620は、コードセグメント及びデータセグメントをそれぞれ圧縮する。
情報セグメント設定モジュール630は、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントの電子装置中における第1アドレス情報、圧縮後のデータセグメントの電子装置中における第2アドレス情報、圧縮後のコードセグメントの電子装置中に対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントの電子装置中に対応する第2圧縮解除アドレスを含む第1情報セグメントを設定する。
オプションとして、当該取得モジュール610は、
コードセグメントの第3保存アドレス、及びデータセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュール611と、
第3保存アドレスに基づいてコードセグメントを読み取り、第4保存アドレスに基づいてデータセグメントを読み取るための取得サブモジュール612と
を備える。
オプションとして、図6Bを参照すると、当該アドレス特定サブモジュール611は、
ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュール611aと、
第2情報セグメント中に第3保存アドレス及び第4保存アドレスが保存されていると、読み取った内容に基づいて第3保存アドレス及び第4保存アドレスを特定するための第1特定サブモジュール611bと、
第2情報セグメント中に、コードセグメントの開始保存アドレス、コードセグメントの大きさ、データセグメントの開始保存アドレス、及びデータセグメントの大きさが保存されていると、読み取ったコードセグメントの開始保存アドレス及びコードセグメントの大きさに基づいて第3保存アドレスを特定し、また、読み取ったデータセグメントの開始保存アドレス及びデータセグメントの大きさに基づいて第4保存アドレスを特定するための第2特定サブモジュール611cと
を備える。
オプションとして、当該情報セグメント設定モジュール630は、
圧縮後のコードセグメントの電子装置中における第1保存アドレス、及び圧縮後のデータセグメントの電子装置中における第2保存アドレスを設定して、第1保存アドレスを第1アドレス情報として特定し、また、第2保存アドレスを第2アドレス情報として特定するか、或いは、圧縮後のコードセグメント、及び圧縮後のデータセグメントにそれぞれ対応する電子装置中における開始保存アドレスを設定し、圧縮後のコードセグメントの大きさ及び圧縮後のデータセグメントの大きさを取得して、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第1アドレス情報として特定し、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさを、第2アドレス情報として特定するための第1設定サブモジュール631と、
第1圧縮解除アドレス、及び第2圧縮解除アドレスを設定するための第2設定サブモジュール632と
を備える。
オプションとして、当該情報セグメント設定モジュール630は、さらに、
コードセグメントの大きさ及びデータセグメントの大きさを取得するための大きさ取得サブモジュール633と、
コードセグメントの大きさ及びデータセグメントの大きさを、第1情報セグメントに保存するための大きさ保存サブモジュール634と
を備える。
オプションとして、図6Cを参照すると、当該圧縮モジュール620は、
コードセグメント及びデータセグメントの中の少なくとも一つを分割するための分割サブモジュール621と、
分割後のコードセグメントがm個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメントを圧縮するための第1圧縮サブモジュール622と、
分割後のデータセグメントがn個のセグメントを含むと、コードセグメントを圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュール623と、
分割後のコードセグメントがm個のセグメントを含み、且つ、分割後のデータセグメントがn個のセグメントを含むと、コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュール624と
を備える。
上記のように、本発明の実施例によって提供するファームウェア圧縮装置によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮し、ファームウェアに対応する第1情報セグメントであって、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定することにより、電子装置が、ファームウェアを実行しようとする時に、第1情報セグメントに基づいて、直接、圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再び、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
図7は、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図7に示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール710、取得モジュール720、及び圧縮解除モジュール730を備えるが、これに制限されない。
情報セグメント読取モジュール710は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
取得モジュール720は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
圧縮解除モジュール730は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
図8Aは、例示的な一実施例に係るファームウェア圧縮解除装置を示すブロック図である。図8Aに示したように、当該ファームウェア圧縮解除装置は、情報セグメント読取モジュール810、取得モジュール820、及び圧縮解除モジュール830を備えるが、これに制限されない。
情報セグメント読取モジュール810は、ファームウェアに対応する第1情報セグメントであって、圧縮後のファームウェア中のコードセグメントの第1アドレス情報、圧縮後のファームウェア中のデータセグメントの第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取る。
取得モジュール820は、第1アドレス情報に基づいて圧縮後のコードセグメントを取得し、第2アドレス情報に基づいて圧縮後のデータセグメントを取得する。
圧縮解除モジュール830は、圧縮後のコードセグメントを第1圧縮解除アドレスへ圧縮解除し、圧縮後のデータセグメントを第2圧縮解除アドレスへ圧縮解除する。
オプションとして、当該取得モジュール820は、
第1アドレス情報に基づいて第1保存アドレスを特定し、第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュール821と、
第1保存アドレス中から圧縮後のコードセグメントを読み取り、第2保存アドレス中から圧縮後のデータセグメントを読み取るための取得サブモジュール822と
を備える。
オプションとして、図8Bを参照すると、当該アドレス特定サブモジュール821は、
第1アドレス情報が第1保存アドレスであり、第2アドレス情報が第2保存アドレスであると、読み取った内容に基づいて第1保存アドレス及び第2保存アドレスを特定するための第1特定サブモジュール821aと、
第1アドレス情報が、圧縮後のコードセグメントの開始保存アドレス、及び圧縮後のコードセグメントの大きさであり、第2アドレス情報が、圧縮後のデータセグメントの開始保存アドレス、及び圧縮後のデータセグメントの大きさであると、圧縮後のコードセグメントの開始保存アドレス、及び大きさに基づいて第1保存アドレスを特定し、圧縮後のデータセグメントの開始保存アドレス、及び大きさに基づいて第2保存アドレスを特定するための第2特定サブモジュール821bと
を備える。
オプションとして、第1情報セグメント中には、圧縮前のコードセグメントの大きさ、及び圧縮前のデータセグメントの大きさが、さらに、含まれており、当該装置は、
圧縮前のコードセグメント、及び圧縮前のデータセグメントの合計の大きさを算出するための算出モジュール840と、
合計の大きさが電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュール850と、
検出モジュール850の検出結果が、合計の大きさがファームウェア実行スペースを超えることであると、ファームウェアにエラーが発生したことを提示するための提示モジュール860と
を、さらに、備える。
上記のように、本発明の実施例によって提供するファームウェア圧縮解除装置によると、圧縮後のコードセグメントに対応する第1アドレス情報、圧縮後のデータセグメントに対応する第2アドレス情報、圧縮後のコードセグメントに対応する第1圧縮解除アドレス、及び圧縮後のデータセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取って、読み取った内容に基づいて圧縮後のコードセグメント、及び圧縮後のデータセグメントを取得し、また、圧縮後のコードセグメントと圧縮後のデータセグメントをそれぞれ第1圧縮解除アドレス及び第2圧縮解除アドレスへ圧縮解除するようにする。このようにして、関連技術での、ファームウェアを圧縮解除した後に、電子装置によりコピーしなければならないため、処理の複雑度が高くなってしまう問題を解決した同時に、コードコピーの複雑度が高くて通用性が悪い問題を解決して、電子装置の処理の複雑度を改善し、且つ、コードをコピーする必要がなくかったとの効果に達した。
本実施例によると、ファームウェア中のコードセグメント及びデータセグメントをそれぞれ圧縮して、電子装置が、圧縮後のコードセグメントを、直接、第1圧縮解除アドレスへ圧縮解除し、また、圧縮後のデータセグメントを、直接、第2圧縮解除アドレスへ圧縮解除するようにすることにより、まず、ファームウェア全体を圧縮解除した後に、再ひ、コードセグメント及びデータセグメントをそれぞれ該当する圧縮解除アドレスへコピーする必要がなくなった。即ち、電子装置は、メモリ中に一定のキャッシュを預かって圧縮解除後のファームウェアを保存する必要がなくなって、電子装置のメモリスペースの利用率を高めた。
上記の実施例の装置について、その各モジュールが実行する操作の具体的な形態は既に当該方法に関する実施例において詳細に説明したため、ここでは詳細に説明しない。
図9は、例示的な一実施例に係るファームウェアを圧縮するための装置900を示すブロック図である。例えば、装置900をサーバとして提供してもよい。図9を参照すると、装置900は、プロセスアセンブリ922を備える。当該プロセスアセンブリ922は、一つ以上のプロセッサ、及びメモリ932を代表とするメモリリソースを、さらに備える。当該メモリリソースは、プロセスアセンブリ922によって実行される、例えばアプリケーションプログラムのような命令を保存する。メモリ932中に保存されたアプリケーションプログラムには、それぞれ一つの命令のセットに対応する一つ以上のモジュールを含まれてもよい。なお、プロセスアセンブリ922は、命令を実行することにより、上記のファームウェア圧縮方法を実行する。
装置900は、装置900の電源を管理するための一つの電源アセンブリ926、装置900をネットワークに接続させるための一つの有線又は無線のネットワークインターフェイス950、及び一つの入出力インターフェイス958を備えてもよい。装置900は、メモリ932に保存された、例えば、Windows ServerTM、Mac OS XTM、UnixTM, LinuxTM、FreeBSDTMのようなオペレーティング・システムによって、操作を行うことができる。
図10は、例示的な一実施例に係るファームウェア圧縮解除装置1000を示すブロック図である。例えば、装置1000は、携帯電話、コンピューター、デジタル放送端末、メッセージ送受信デバイス、ゲームコンソール、タブレットデバイス、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
図10を参照して、装置1000は、プロセスアセンブリ1002、メモリ1004、電源アセンブリ1006、マルチメディアアセンブリ1008、オーディオアセンブリ1010、入出力(I/O)インターフェイス1012、センサアセンブリ1014、及び通信アセンブリ1016のような一つ以上のアセンブリを含んでよい。
プロセスアセンブリ1002は、一般的には装置1000の全体の動作を制御するものであり、例えば、表示、電話呼び出し、データ通信、カメラ動作、及び記録動作と関連する動作を制御する。プロセスアセンブリ1002は、一つ以上のプロセッサ1020を含み、これらによって命令を実行することにより、上記の方法の全部、或は一部のステップを実現するようにしてもよい。なお、プロセスアセンブリ1002は、一つ以上のモジュールを含み、これらによってプロセスアセンブリ1002と他のアセンブリの間のインタラクションを容易にするようにしてもよい。例えば、プロセスアセンブリ1002は、マルチメディアモジュールを含み、これらによってマルチメディアアセンブリ1008とプロセスアセンブリ1002の間のインタラクションを容易にするようにしてもよい。
メモリ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)、磁気メモリ、フラッシュメモリ、磁気ディスク、或いは光ディスクである。
電源アセンブリ1006は、装置1000の多様なアセンブリに電力を供給する。電源アセンブリ1006は、電源管理システム、一つ以上の電源、及び装置1000のための電力の生成、管理及び割り当てに関連付けられている他のアセンブリを含んでもよい。
マルチメディアアセンブリ1008は、前記装置1000とユーザの間に一つの出力インターフェイスを提供するスクリーンを含む。上記の実施例において、スクリーンは液晶モニター(LCD)とタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含むことにより、スクリーンはタッチスクリーンを実現することができ、ユーザからの入力信号を受信することができる。タッチパネルは一つ以上のタッチセンサを含んでおり、タッチ、スワイプ、及びタッチパネル上のジェスチャを検出することができる。前記タッチセンサは、タッチ、或はスワイプの動作の境界だけでなく、前記のタッチ、或はスワイプ操作に係る継続時間及び圧力も検出できる。上記の実施例において、マルチメディアアセンブリ1008は、一つのフロントカメラ、及び/又はリアカメラを含む。装置1000が、例えば撮影モード、或はビデオモード等の動作モードにある場合、フロントカメラ、及び/又はリアカメラは外部からマルチメディアデータを受信できる。フロントカメラとリアカメラのそれぞれは、一つの固定型の光レンズ系、或は可変焦点距離と光学ズーム機能を有するものであってもよい。
オーディオアセンブリ1010は、オーディオ信号を入出力するように構成されてもよい。例えば、オーディオアセンブリ1010は、一つのマイク(MIC)を含み、装置1000が、例えば呼出しモード、記録モード、及び音声認識モード等の動作モードにある場合、マイクは外部のオーディオ信号を受信することができる。受信されたオーディオ信号は、さらにメモリ1004に記憶されたり、通信アセンブリ1016を介して送信されたりされる。上記の実施例において、オーディオアセンブリ1010は、オーディオ信号を出力するための一つのスピーカーをさらに含む。
I/Oインターフェイス1012は、プロセスアセンブリ1002と周辺インターフェイスモジュールの間にインターフェイスを提供するものであり、上記周辺インターフェイスモジュールは、キーボード、クリックホイール、ボタン等であってもよい。これらのボタンは、ホームボタン、ボリュームボタン、作動ボタン、ロッキングボタンを含んでもよいが、これらに限定されない。
センサアセンブリ1014は、装置1000に各種の状態に対する評価を提供するための一つ以上のセンサを含む。例えば、センサアセンブリ1014は、装置1000のON/OFF状態、装置1000のディスプレイとキーパッドのようなアセンブリの相対的な位置決めを検出できる。また、例えば、センサアセンブリ1014は、装置1000、或は装置1000の一つのアセンブリの位置変更、ユーザと装置1000とが接触しているか否か、装置1000の方位、又は加速/減速、装置1000の温度の変化を検出できる。センサアセンブリ1014は、何れの物理的接触がない状態にて付近の物体の存在を検出するための近接センサを含んでもよい。センサアセンブリ1014は、撮影アプリケーションに適用するため、CMOS、又はCCD画像センサのような光センサを含んでもよい。上記の実施例において、当該センサアセンブリ1014は、加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ、及び温度センサをさらに含んでもよい。
通信アセンブリ1016は、装置1000と他の機器の間に有線、又は利便性のよい形態の通信を提供する。装置1000は、例えばWiFi(登録商標)、2G、3G、或はこれらの組み合わせのような、通信規格に基づいた無線ネットワークに接続されてもよい。一つの例示的な実施例において、通信アセンブリ1016は、放送チャンネルを介して外部の放送管理システムからの放送信号、又は放送に関連する情報を受信する。一つの例示的な実施例において、前記通信アセンブリ1016は、近距離無線通信(NFC)モジュールをさらに含むことにより、近距離通信を可能にする。例えば、NFCモジュールは、RFID(RadioFrequency IDentification)技術、IrDA(InfraredData Association)技術、UWB(Ultra Wide Band)技術、BT(Bluetooth(登録商標))技術、他の技術に基づいて実現できる。
例示的な実施例において、装置1000は、一つ以上のASIC(ApplicationSpecificIntegrated Circuit)、DSP(Digital Signal Processor)、DSPD(Digital Signal ProcessingDevice)、PLD(Programmable Logic Device)、FPGA(Field−Programmable Gate Array)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子部品によって実現されるものであり、上記方法を実行する。
例示的な実施例において、さらに、命令を含むコンピュータ読取り可能な非一時的な記録媒体、例えば命令を含むメモリ1004を提供しており、装置1000のプロセッサ1020により上記命令を実行して上記方法を実現する。例えば、前記コンピュータ読取り可能な非一時的な記録媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク(登録商標)、光データ記憶デバイス等である。
本発明は上記に記述され、また図面で示した厳密な構成に限定されず、その範囲を逸脱しない限り多様な置換えと変更を行うことができると、理解されるべきである。本発明の範囲は添付の特許請求の範囲のみにより限定される。

Claims (22)

  1. ファームウェア中のコードセグメント及びデータセグメントを取得するステップと、
    前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップと、
    前記ファームウェアに対応する第1情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第1アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第2アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するステップと
    を含むことを特徴とするファームウェア圧縮方法。
  2. 前記ファームウェア中のコードセグメント及びデータセグメントを取得するステップは、
    前記コードセグメントの第3保存アドレス、及び前記データセグメントの第4保存アドレスを特定するステップと、
    前記第3保存アドレスに基づいて前記コードセグメントを読み取り、前記第4保存アドレスに基づいて前記データセグメントを読み取るステップ
    を含むことを特徴とする請求項1に記載のファームウェア圧縮方法。
  3. 前記コードセグメントの第3保存アドレス、及び前記データセグメントの第4保存アドレスを特定するステップは、
    前記ファームウェアに対応する第2情報セグメントを読み取るステップと、
    前記第2情報セグメント中に前記第3保存アドレス及び前記第4保存アドレスが保存されている場合、読み取った内容に基づいて前記第3保存アドレス及び前記第4保存アドレスを特定するステップと、
    前記第2情報セグメント中に前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されている場合、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第3保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第4保存アドレスを特定するステップ
    を含むことを特徴とする請求項2に記載のファームウェア圧縮方法。
  4. 前記ファームウェアに対応する第1情報セグメントを設定するステップは、
    圧縮後の前記コードセグメントの前記電子装置中における第1保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第2保存アドレスを設定して、前記第1保存アドレスを前記第1アドレス情報として特定し、また、前記第2保存アドレスを前記第2アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第1アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第2アドレス情報として特定するステップと、
    前記第1圧縮解除アドレス、及び前記第2圧縮解除アドレスを設定するステップと
    を含むことを特徴とする請求項1に記載のファームウェア圧縮方法。
  5. 前記ファームウェアに対応する第1情報セグメントを設定するステップは、
    前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するステップと、
    前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第1情報セグメントに保存するステップと
    をさらに含むことを特徴とする請求項1乃至4の中のいずれか1項に記載のファームウェア圧縮方法。
  6. 前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するステップは、
    前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するステップと、
    分割後の前記コードセグメントがm個のセグメントが含むと、前記コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するステップと、
    分割後の前記データセグメントがn個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のn個のセグメントをそれぞれ圧縮するステップと、
    分割後の前記コードセグメントがm個のセグメントが含むし、且つ、分割後の前記データセグメントがn個のセグメントが含むと、前記コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のn個のセグメントをそれぞれ圧縮するステップと
    を含むことを特徴とする請求項1乃至4の中のいずれか1項に記載のファームウェア圧縮方法。
  7. ファームウェアに対応する第1情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第1アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第2アドレス情報、圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るステップと、
    前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップと、
    圧縮後の前記コードセグメントを前記第1圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第2圧縮解除アドレスへ圧縮解除するステップと
    を含むことを特徴とするファームウェア圧縮解除方法。
  8. 前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得するステップは、
    前記第1アドレス情報に基づいて第1保存アドレスを特定し、前記第2アドレス情報に基づいて第2保存アドレスを特定するステップと、
    前記第1保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第2保存アドレス中から圧縮後の前記データセグメントを読み取るステップと
    を含むことを特徴とする請求項7に記載のファームウェア圧縮解除方法。
  9. 前記第1アドレス情報に基づいて第1保存アドレスを特定し、前記第2アドレス情報に基づいて第2保存アドレスを特定するステップは、
    前記第1アドレス情報が前記第1保存アドレスであり、前記第2アドレス情報が前記第2保存アドレスであると、読み取った内容に基づいて前記第1保存アドレス及び前記第2保存アドレスを特定するステップと、
    前記第1アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第2アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第1保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第2保存アドレスを特定するステップと
    を含むことを特徴とする請求項8に記載のファームウェア圧縮解除方法。
  10. 前記第1情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
    圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するステップと、
    前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するステップと、
    前記合計の大きさが前記ファームウェア実行スペースを越えると、前記ファームウェアにエラーが発生したことを提示するステップと
    をさらに含むことを特徴とする請求項7乃至9の中のいずれか1項に記載のファームウェア圧縮解除方法。
  11. ファームウェア中のコードセグメント及びデータセグメントを取得するための取得モジュールと、
    前記コードセグメント及び前記データセグメントを、それぞれ、圧縮するための圧縮モジュールと、
    前記ファームウェアに対応する第1情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第1アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第2アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するための情報セグメント設定モジュールと
    を備えることを特徴とするファームウェア圧縮装置。
  12. 前記取得モジュールは、
    前記コードセグメントの第3保存アドレス、及び前記データセグメントの第4保存アドレスを特定するためのアドレス特定サブモジュールと、
    前記第3保存アドレスに基づいて前記コードセグメントを読み取り、前記第4保存アドレスに基づいて前記データセグメントを読み取るための取得サブモジュールと
    を備えることを特徴とする請求項11に記載のファームウェア圧縮装置。
  13. 前記アドレス特定サブモジュールは、
    前記ファームウェアに対応する第2情報セグメントを読み取るための情報セグメント読取サブモジュールと、
    前記第2情報セグメント中に、前記第3保存アドレス及び前記第4保存アドレスが保存されていると、読み取った内容に基づいて前記第3保存アドレス及び前記第4保存アドレスを特定するための第1特定サブモジュールと、
    前記第2情報セグメント中に、前記コードセグメントの開始保存アドレス、前記コードセグメントの大きさ、前記データセグメントの開始保存アドレス、及び前記データセグメントの大きさが保存されていると、読み取った前記コードセグメントの開始保存アドレス及び前記コードセグメントの大きさに基づいて前記第3保存アドレスを特定し、また、読み取った前記データセグメントの開始保存アドレス及び前記データセグメントの大きさに基づいて前記第4保存アドレスを特定するための第2特定サブモジュールと
    を備えることを特徴とする請求項12に記載のファームウェア圧縮装置。
  14. 前記情報セグメント設定モジュールは、
    圧縮後の前記コードセグメントの前記電子装置中における第1保存アドレス、及び圧縮後の前記データセグメントの前記電子装置中における第2保存アドレスを設定して、前記第1保存アドレスを前記第1アドレス情報として特定し、また、前記第2保存アドレスを前記第2アドレス情報として特定するか、或いは、圧縮後の前記コードセグメント、及び圧縮後の前記データセグメントにそれぞれ対応する前記電子装置中における開始保存アドレスを設定し、圧縮後の前記コードセグメントの大きさ及び圧縮後の前記データセグメントの大きさを取得して、圧縮後の前記コードセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第1アドレス情報として特定し、また、圧縮後の前記データセグメントの開始保存アドレス及び圧縮後の前記コードセグメントの大きさを前記第2アドレス情報として特定するための第1設定サブモジュールと、
    前記第1圧縮解除アドレス、及び前記第2圧縮解除アドレスを設定するための第2設定サブモジュールと
    を備えることを特徴とする請求項11に記載のファームウェア圧縮装置。
  15. 前記情報セグメント設定モジュールは、
    前記コードセグメントの大きさ及び前記データセグメントの大きさを取得するための大きさ取得サブモジュールと、
    前記コードセグメントの大きさ及び前記データセグメントの大きさを前記第1情報セグメントに保存するための大きさ保存サブモジュールと
    をさらに備えることを特徴とする請求項11乃至14の中のいずれか1項に記載のファームウェア圧縮装置。
  16. 前記圧縮モジュールは、
    前記コードセグメント及び前記データセグメントの中の少なくとも一つを分割するための分割サブモジュールと、
    分割後の前記コードセグメントがm個のセグメントが含むと、前記コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、前記データセグメントを圧縮するための第1圧縮サブモジュールと、
    分割後の前記データセグメントがn個のセグメントが含むと、前記コードセグメントを圧縮し、また、前記データセグメント中のn個のセグメントをそれぞれ圧縮するための第2圧縮サブモジュールと、
    分割後の前記コードセグメントがm個のセグメントが含むし、且つ、分割後の前記データセグメントがn個のセグメントが含むと、前記コードセグメント中のm個のセグメントをそれぞれ圧縮し、また、前記データセグメント中のn個のセグメントをそれぞれ圧縮するための第3圧縮サブモジュールと
    を備えることを特徴とする請求項11乃至14の中のいずれか1項に記載のファームウェア圧縮装置。
  17. ファームウェアに対応する第1情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第1アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第2アドレス情報、圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取るための情報セグメント読取モジュールと、
    前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得するための取得モジュールと、
    圧縮後の前記コードセグメントを前記第1圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第2圧縮解除アドレスへ圧縮解除するための圧縮解除モジュールと
    を備えることを特徴とするファームウェア圧縮解除装置。
  18. 前記取得モジュールは、
    前記第1アドレス情報に基づいて第1保存アドレスを特定し、前記第2アドレス情報に基づいて第2保存アドレスを特定するためのアドレス特定サブモジュールと、
    前記第1保存アドレス中から圧縮後の前記コードセグメントを読み取り、前記第2保存アドレス中から圧縮後の前記データセグメントを読み取るための取得サブモジュールと
    を備えることを特徴とする請求項17に記載のファームウェア圧縮解除装置。
  19. 前記アドレス特定サブモジュールは、
    前記第1アドレス情報が前記第1保存アドレスであり、前記第2アドレス情報が前記第2保存アドレスであると、読み取った内容に基づいて前記第1保存アドレス及び前記第2保存アドレスを特定するための第1特定サブモジュールと、
    前記第1アドレス情報が、圧縮後の前記コードセグメントの開始保存アドレス、及び圧縮後の前記コードセグメントの大きさであり、前記第2アドレス情報が、圧縮後の前記データセグメントの開始保存アドレス、及び圧縮後の前記データセグメントの大きさであると、圧縮後の前記コードセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第1保存アドレスを特定し、圧縮後の前記データセグメントの開始保存アドレス、及び前記大きさに基づいて、前記第2保存アドレスを特定するための第2特定サブモジュールと
    を備えることを特徴とする請求項18に記載のファームウェア圧縮解除装置。
  20. 前記第1情報セグメント中には、圧縮前の前記コードセグメントの大きさ、及び圧縮前の前記データセグメントの大きさが、さらに、含まれており、
    圧縮前の前記コードセグメント、及び圧縮前の前記データセグメントの合計の大きさを算出するための算出モジュールと、
    前記合計の大きさが、電子装置のファームウェア実行スペースを越えるか否かを検出するための検出モジュールと、
    前記検出モジュールの検出結果が、前記合計の大きさが前記ファームウェア実行スペースを越えることであると、前記ファームウェアにエラーが発生したことを提示するための提示モジュールと
    をさらに備えることを特徴とする請求項17乃至19の中のいずれか1項に記載のファームウェア圧縮解除装置。
  21. プロセッサと、
    前記プロセッサが実行可能な命令を記憶するためのメモリと
    を備え、
    前記プロセッサは、
    ファームウェア中のコードセグメント及びデータセグメントを取得し、
    前記コードセグメント及び前記データセグメントを、それぞれ、圧縮し、
    前記ファームウェアに対応する第1情報セグメントであって、圧縮後の前記コードセグメントの電子装置中における第1アドレス情報、圧縮後の前記データセグメントの前記電子装置中における第2アドレス情報、前記電子装置中の圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び前記電子装置中の圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを設定するように構成される
    ことを特徴とするファームウェア圧縮装置。
  22. プロセッサと、
    前記プロセッサが実行可能な命令を記憶するためのメモリと
    を備え、
    前記プロセッサは、
    ファームウェアに対応する第1情報セグメントであって、圧縮後の前記ファームウェア中のコードセグメントの第1アドレス情報、圧縮後の前記ファームウェア中のデータセグメントの第2アドレス情報、圧縮後の前記コードセグメントに対応する第1圧縮解除アドレス、及び圧縮後の前記データセグメントに対応する第2圧縮解除アドレスを含む第1情報セグメントを読み取り、
    前記第1アドレス情報に基づいて圧縮後の前記コードセグメントを取得し、前記第2アドレス情報に基づいて圧縮後の前記データセグメントを取得し、
    圧縮後の前記コードセグメントを前記第1圧縮解除アドレスへ圧縮解除し、圧縮後の前記データセグメントを前記第2圧縮解除アドレスへ圧縮解除するように構成される
    ことを特徴とするファームウェア圧縮解除装置。
JP2016571465A 2015-01-29 2015-10-29 ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体 Active JP6186094B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510044885.XA CN104636140B (zh) 2015-01-29 2015-01-29 固件压缩方法、固件解压方法和装置
CN201510044885.X 2015-01-29
PCT/CN2015/093223 WO2016119497A1 (zh) 2015-01-29 2015-10-29 固件压缩方法、固件解压方法和装置

Publications (2)

Publication Number Publication Date
JP2017506791A true JP2017506791A (ja) 2017-03-09
JP6186094B2 JP6186094B2 (ja) 2017-08-23

Family

ID=53214941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571465A Active JP6186094B2 (ja) 2015-01-29 2015-10-29 ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体

Country Status (8)

Country Link
US (1) US20160226519A1 (ja)
EP (1) EP3051413A1 (ja)
JP (1) JP6186094B2 (ja)
KR (1) KR101852087B1 (ja)
CN (1) CN104636140B (ja)
MX (1) MX364949B (ja)
RU (1) RU2628482C1 (ja)
WO (1) WO2016119497A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636140B (zh) * 2015-01-29 2018-05-29 小米科技有限责任公司 固件压缩方法、固件解压方法和装置
US10248940B1 (en) 2015-09-24 2019-04-02 Square, Inc. Modular firmware for transaction system
US9778928B1 (en) * 2016-03-30 2017-10-03 Invensense, Inc. Compressed firmware update
US10108412B2 (en) 2016-03-30 2018-10-23 Square, Inc. Blocking and non-blocking firmware update
US11010765B2 (en) 2016-06-29 2021-05-18 Square, Inc. Preliminary acquisition of payment information
US10817869B2 (en) 2016-06-29 2020-10-27 Square, Inc. Preliminary enablement of transaction processing circuitry
US10417628B2 (en) 2016-06-29 2019-09-17 Square, Inc. Multi-interface processing of electronic payment transactions
CN107665173B (zh) * 2016-07-29 2021-05-14 北京小米移动软件有限公司 语音存储方法、语音读取方法及装置
US10762196B2 (en) 2018-12-21 2020-09-01 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection
US10990969B2 (en) 2018-12-21 2021-04-27 Square, Inc. Point of sale (POS) systems and methods for dynamically processing payment data based on payment reader capability
US11049095B2 (en) 2018-12-21 2021-06-29 Square, Inc. Point of sale (POS) systems and methods with dynamic kernel selection

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242484A (ja) * 1999-02-24 2000-09-08 Hitachi Ltd 制御プログラムの変更方法
JP2000285010A (ja) * 1999-03-30 2000-10-13 Japan Research Institute Ltd アプリケーションの動作用メモリ量をチェックするプログラムを記録した媒体
JP2000350185A (ja) * 1998-08-03 2000-12-15 Matsushita Electric Ind Co Ltd 制御プログラム送信方法及び制御プログラムダウンロード方法
JP2001166941A (ja) * 1999-12-07 2001-06-22 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2008021059A (ja) * 2006-07-12 2008-01-31 Nec Corp 情報処理装置およびプロセッサ機能変更方法
JP2011015382A (ja) * 2009-06-04 2011-01-20 Ricoh Co Ltd 撮像システム
US20140358482A1 (en) * 2013-05-31 2014-12-04 Itron, Inc. Distributed applications across platforms
JP2014235590A (ja) * 2013-06-03 2014-12-15 株式会社リコー 情報処理装置、画像形成装置、カメラ

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0981763A (ja) * 1995-07-07 1997-03-28 Oki Data:Kk 文字・イメージ混在データの圧縮方法及び装置
US5928365A (en) * 1995-11-30 1999-07-27 Kabushiki Kaisha Toshiba Computer system using software controlled power management method with respect to the main memory according to a program's main memory utilization states
US6092071A (en) * 1997-11-04 2000-07-18 International Business Machines Corporation Dedicated input/output processor method and apparatus for access and storage of compressed data
US6332172B1 (en) * 1998-05-29 2001-12-18 Cisco Technology, Inc. Method and system for virtual memory compression in an embedded system
US7124286B2 (en) * 2000-01-14 2006-10-17 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6694393B1 (en) * 2000-06-30 2004-02-17 Lucent Technologies Inc. Method and apparatus for compressing information for use in embedded systems
CN1446404A (zh) * 2000-08-15 2003-10-01 西加特技术有限责任公司 操作码的双模数据压缩
WO2003081572A1 (fr) * 2002-03-25 2003-10-02 Yoshihiko Sano Procede, dispositif et systeme de generation de representation
US7472205B2 (en) * 2002-04-24 2008-12-30 Nec Corporation Communication control apparatus which has descriptor cache controller that builds list of descriptors
US7886093B1 (en) * 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US20070016693A1 (en) * 2005-06-30 2007-01-18 Advanced Micro Devices, Inc. Decompression technique for generating software image
US20070226420A1 (en) * 2006-03-22 2007-09-27 Sung Chih-Ta S Compression method and apparatus for a CPU
US20080119178A1 (en) * 2006-11-21 2008-05-22 Samsung Electronics Co., Ltd. Allocating Compression-Based Firmware Over the Air
US8580281B2 (en) * 2008-02-27 2013-11-12 Hisamitsu Pharmaceutical Co., Inc. Medicated patch
US8566613B2 (en) * 2010-06-11 2013-10-22 Intel Corporation Multi-owner deployment of firmware images
CN102955699A (zh) * 2011-08-17 2013-03-06 施耐德电器工业公司 一种软件升级包创建方法和软件升级方法
CN103425508A (zh) * 2013-05-27 2013-12-04 林永宗 一种zigbee固件压缩更新的方法
CN103399763B (zh) * 2013-07-23 2016-12-28 北京昆腾微电子有限公司 下载用于芯片的程序文件的方法和装置
CN103473097A (zh) * 2013-09-09 2013-12-25 福州瑞芯微电子有限公司 Android系统固件升级系统、装置及升级方法
CN104636140B (zh) * 2015-01-29 2018-05-29 小米科技有限责任公司 固件压缩方法、固件解压方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000350185A (ja) * 1998-08-03 2000-12-15 Matsushita Electric Ind Co Ltd 制御プログラム送信方法及び制御プログラムダウンロード方法
JP2000242484A (ja) * 1999-02-24 2000-09-08 Hitachi Ltd 制御プログラムの変更方法
JP2000285010A (ja) * 1999-03-30 2000-10-13 Japan Research Institute Ltd アプリケーションの動作用メモリ量をチェックするプログラムを記録した媒体
JP2001166941A (ja) * 1999-12-07 2001-06-22 Sony Corp 情報処理装置および方法、並びに記録媒体
JP2008021059A (ja) * 2006-07-12 2008-01-31 Nec Corp 情報処理装置およびプロセッサ機能変更方法
JP2011015382A (ja) * 2009-06-04 2011-01-20 Ricoh Co Ltd 撮像システム
US20140358482A1 (en) * 2013-05-31 2014-12-04 Itron, Inc. Distributed applications across platforms
JP2014235590A (ja) * 2013-06-03 2014-12-15 株式会社リコー 情報処理装置、画像形成装置、カメラ

Also Published As

Publication number Publication date
JP6186094B2 (ja) 2017-08-23
WO2016119497A1 (zh) 2016-08-04
MX2016002292A (es) 2016-12-14
CN104636140B (zh) 2018-05-29
KR101852087B1 (ko) 2018-04-25
CN104636140A (zh) 2015-05-20
US20160226519A1 (en) 2016-08-04
RU2628482C1 (ru) 2017-08-17
EP3051413A1 (en) 2016-08-03
KR20160103919A (ko) 2016-09-02
MX364949B (es) 2019-05-15

Similar Documents

Publication Publication Date Title
JP6186094B2 (ja) ファームウェア圧縮方法、ファームウェア圧縮解除方法、装置、プログラム及び記録媒体
US20220400305A1 (en) Content continuation method and electronic device
US20220214802A1 (en) Screenshot Method and Electronic Device
EP3046309B1 (en) Method, device and system for projection on screen
US9928811B2 (en) Methods, devices, and computer-readable storage medium for image display
JP6328275B2 (ja) 画像タイプ識別方法、装置、プログラム及び記録媒体
US10181203B2 (en) Method for processing image data and apparatus for the same
CN111371949A (zh) 应用程序切换方法、装置、存储介质与触控终端
EP4060475A1 (en) Multi-screen cooperation method and system, and electronic device
KR101921276B1 (ko) 휴대단말기의 멀티태스킹 수행 장치 및 방법
JP2017505966A (ja) ファームウェアアップグレード方法、装置、プログラム及び記録媒体
EP3432588A1 (en) Method, apparatus, storage medium and system for processing image information
JP2017530493A (ja) 外付け機器の接続方法および装置、プログラム及び記録媒体
JP2016528642A (ja) 軽応用のメッセージプッシュ方法、メッセージプッシュ装置、端末、サーバ、プログラム及び記録媒体
WO2022143883A1 (zh) 一种拍摄方法、系统及电子设备
US20200201733A1 (en) Apparatus and method for controlling external device
KR20160064036A (ko) 메모리 최적화 방법, 장치, 프로그램 및 기록매체
US20220124607A1 (en) Method for Accessing Network by Smart Home Device and Related Device
CN110515623B (zh) 图形操作实现方法、装置、电子设备及存储介质
CN110784721A (zh) 一种图片数据压缩方法、装置、电子设备及存储介质
WO2022188632A1 (zh) 主题展示方法、装置、终端及计算机存储介质
EP4137973A1 (en) Method and apparatus for applying file
CN114416220A (zh) 一种数据处理方法、装置、电子设备及存储介质
KR20180126421A (ko) 휴대단말기의 멀티태스킹 수행 장치 및 방법
CN112825035A (zh) 一种程序安装文件的生成、处理方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170728

R150 Certificate of patent or registration of utility model

Ref document number: 6186094

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250