JP2007156899A - 電子装置及びその制御方法 - Google Patents
電子装置及びその制御方法 Download PDFInfo
- Publication number
- JP2007156899A JP2007156899A JP2005352329A JP2005352329A JP2007156899A JP 2007156899 A JP2007156899 A JP 2007156899A JP 2005352329 A JP2005352329 A JP 2005352329A JP 2005352329 A JP2005352329 A JP 2005352329A JP 2007156899 A JP2007156899 A JP 2007156899A
- Authority
- JP
- Japan
- Prior art keywords
- program
- volatile memory
- program module
- control
- function
- 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
Links
Images
Landscapes
- Studio Devices (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】デジタルカメラのROM302は、制御プログラムとして、リロケータブルオブジェクトの単位で圧縮された圧縮済みモジュール801,802,804を保持する。ROM302はまた、初期化プログラム901、SWI伸長ハンドラ902、エントリアドレステーブル702を保持する。デジタルカメラに電源が投入されると、CPUはSWI伸長ハンドラ902をRAM303に転送し、また、エントリアドレステーブル702を参照して複数のSWI命令をRAM303に配置する。CPUが制御プログラムを実行する際に、実行対象であるプログラムがRAM303に転送されていなければ、SWI伸長ハンドラ902が呼ばれ、実行対象であるプログラムがRAM303に転送される。
【選択図】図13
Description
図3は、本発明を適用したデジタルカメラ300のハードウェア構成を示すブロック図である。なお、本実施形態ではデジタルカメラ300を例に本発明を説明するが、本発明は例えば携帯電話やPDAなど、CPUが制御プログラムを実行するすべての電子装置に適用することが可能である。
図20は、デジタルカメラ300が行う処理の流れの概要を示すフローチャートである。図20は、極めて基本的な処理のみを示しており、通常は、デジタルカメラ300はその他の多様な処理を実行可能であることに注意されたい。
図4〜図6を参照して、ソースファイルから機械語バイナリを生成する処理の概要を説明する。なお、ここで説明する機械語バイナリ501(図5)は、分割も圧縮もされていない。なお、本実施形態ではC言語でソースコードを記述するものとして説明するが、実際にはC++言語やJAVA(登録商標)など、任意の言語を使用可能であり、これらの言語が混在していても構わない。
図7は、機械語バイナリ607を圧縮して圧縮済み機械語バイナリ703を生成する処理を概略的に示す図である。図7において、図6と同一の要素には同一の符号を付し、説明を省略する。
図9は、圧縮済み機械語バイナリ703などが格納されたROM302の状態を示す図である。図3、図7、及び図8と同一の要素には同一の符号を付し、説明を省略する。
図10〜12を参照して、CPU301が初期化プログラム901を実行することによりデジタルカメラ300を初期化(起動準備)する処理を説明する。
図13〜16を参照して、SWI伸長ハンドラ902によって圧縮(又は非圧縮)モジュールに含まれる制御プログラムをRAM303に転送しつつ、CPU301が制御プログラムを実行する一連の制御を説明する。なお、ROM302からRAM303に制御プログラム等のデータを転送することを、「展開する」と言う場合もある。
圧縮されていればステップS1606に進み、圧縮されていなければステップS1605に進む。
以上説明したように、本実施形態によれば、デジタルカメラ300のROM302は、制御プログラムとして、リロケータブルオブジェクトの単位で分割されて圧縮された複数のモジュールを含む圧縮済み機械語バイナリ703を保持する。モジュールの中には、圧縮されていないものが含まれていても構わない。ROM302はまた、初期化プログラム901、SWI伸長ハンドラ902、エントリアドレステーブル702を保持する。デジタルカメラ300に電源が投入されると、CPU301はSWI伸長ハンドラ902をRAM303に転送し、また、エントリアドレステーブル702を参照して複数のSWI命令をRAM303に配置する。CPU301が制御プログラムを実行する際に、実行対象であるプログラムがRAM303に転送されていなければ、SWI伸長ハンドラ902が呼ばれ、実行対象であるプログラムがRAM303に転送される。
<バックグラウンド伸張>
デジタルカメラ300の起動時間には、アナログデバイスの安定待ち時間やステッピングモーターの駆動の待ち時間など、制御プログラムの実行とは無関係な待ち時間が多く含まれる。そこで、これらの待ち時間を利用して、まだ、RAM303に転送されていないプログラムをバックグラウンドで伸長することができる。
上述のように、伸長プログラムを用いて圧縮されたプログラムをバックグラウンドで伸長する場合、そのままではプログラムの実行順序とは無関係に伸長を行うことになる可能性がある。すなわち、プログラムが実行される順番ではなく、プログラム(厳密には圧縮又は非圧縮のモジュール)がROM302に配置されている順番で、プログラムがRAM303に転送される。
ROM302のサイズを大容量化する場合、前述の通り、2Mバイトの次は4Mバイト、その次は8Mバイトといったように、倍のサイズになる。したがって、プログラムを圧縮した結果、例えばROM302に格納されるデータが3Mバイトになったとしても、ROM302の容量は4Mバイトとせざるを得ず、1Mバイトの無駄が生じる。
前述のように、図6の機械語バイナリ607を分割する際の単位は、リロケータブルオブジェクト605の単位であった。すなわち、図8における圧縮(又は非圧縮)モジュールの数は、リロケータブルオブジェクト605の数に等しい。
上述した実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供してもよい。そして、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって、前述した実施形態の機能を実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることもできる。
301 CPU
302 ROM
303 RAM
502 シンボルテーブル
608 マップファイル
702 エントリアドレステーブル
901 初期化プログラム
902 SWI伸長ハンドラ
1101 SWI命令
Claims (11)
- プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリとを備える電子装置であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群;ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールのうち少なくとも1つは可逆圧縮されている;と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報、及び、非圧縮状態か圧縮状態かを示す格納状態情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することで、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み手段と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリの実行開始位置から処理を開始させる実行開始手段と、
<iii>前記実行開始手段で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の該当する注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報と格納状態情報とを取得し、
取得した格納状態情報が非圧縮状態であることを示す場合には、前記注目プログラムモジュールを前記揮発性メモリの展開開始アドレス位置に展開し、取得した格納状態情報が圧縮状態であることを示す場合には、前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御手段と、
を備えることを特徴とする電子装置。 - プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリとを備える電子装置であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群;ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールはすべて可逆圧縮されている;と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、及び、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することで、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み手段と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリの実行開始位置から処理を開始させる実行開始手段と、
<iii>前記実行開始手段で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の該当する注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報を取得し、
前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御手段と、
を備えることを特徴とする電子装置。 - 前記制御手段は、前記制御命令コードが配置されているアドレスと、各プログラムモジュールそれぞれに対応する前記展開開始アドレス情報とを比較し、
前記制御命令コードが配置されているアドレスと前記展開開始アドレス情報とが一致するプログラムモジュールが存在すれば、該プログラムモジュールを前記注目プログラムモジュールとして特定し、
前記制御命令コードが配置されているアドレスと前記展開開始アドレス情報とが一致するプログラムモジュールが存在しなければ、前記展開開始アドレス情報として、前記制御命令コードが配置されているアドレスよりも上位でかつ最も近いアドレスを示すプログラムモジュールを前記注目プログラムモジュールとして特定することを特徴とする請求項1又は2に記載の電子装置。 - さらに、前記プロセッサのアイドル時間に、前記プログラムモジュールのうち前記制御手段によって前記揮発性メモリに展開されていないプログラムモジュールを、前記展開開始アドレス情報を参照して、前記揮発性メモリの前記展開開始位置に展開するバックグラウンド展開手段を備えることを特徴とする請求項1乃至3のいずれか1項に記載の電子装置。
- 前記プログラムモジュールはすべて単一の関数プログラムから構成され、前記実行開始アドレス情報はすべての関数プログラムに対応する実行開始アドレス位置を含むことを特徴とする請求項1乃至4のいずれか1項に記載の電子装置。
- プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリとを備える電子装置用の、前記不揮発性メモリに格納するための制御プログラムを、当該制御プログラムを生成する際にリンカによって生成されたマップファイルを用いてコンピュータに可逆圧縮させるための圧縮プログラムであって、
前記リンカによって生成された実行形式のプログラムを構成する、1以上の関数プログラムを含むプログラムモジュール群について、圧縮対象とするプログラムモジュールを指定する指定手段と、
前記指定手段で指定されたプログラムモジュールを可逆圧縮する圧縮手段と、
各プログラムモジュールの前記揮発性メモリにおける開始アドレスを展開先アドレスとし、当該展開先アドレスと、各プログラムモジュールに含まれる関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの前記揮発性メモリにおける実行開始アドレス、及び、各プログラムモジュールが非圧縮又は圧縮のいずれの状態であるかを示す格納状態情報を生成する生成手段と、
前記生成手段で生成された各プログラムモジュールごとの前記展開先アドレス、前記実行開始アドレス、及び、前記格納状態情報と、非圧縮のプログラムモジュール及び圧縮されているプログラムモジュールを用いて、前記電子装置の前記不揮発性メモリに書き込むデータを生成して出力する出力手段
としてコンピュータに実行させることを特徴とする圧縮プログラム。 - 前記マップファイルは、すべての関数プログラムに対応する、前記揮発性メモリにおける実行開始アドレスを含み、前記プログラムモジュールはすべて単一の関数プログラムから構成されることを特徴とする請求項6に記載の圧縮プログラム。
- プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリとを備える電子装置を制御する方法であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群;ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールのうち少なくとも1つは可逆圧縮されている;と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報、及び、非圧縮状態か圧縮状態かを示す格納状態情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することにより実行される、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み工程と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリの実行開始位置から処理を開始させる実行開始工程と、
<iii>前記実行開始工程で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の該当する注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報と格納状態情報とを取得し、
取得した格納状態情報が非圧縮状態であることを示す場合には、前記注目プログラムモジュールを前記揮発性メモリの展開開始アドレス位置に展開し、取得した格納状態情報が圧縮状態であることを示す場合には、前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御工程と、
を備えることを特徴とする制御方法。 - プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリとを備える電子装置を制御する方法であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群;ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールはすべて可逆圧縮されている;と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、及び、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することにより実行される、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み工程と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリの実行開始位置から処理を開始させる実行開始工程と、
<iii>前記実行開始工程で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の該当する注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報を取得し、
前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御工程と、
を備えることを特徴とする制御方法。 - 請求項8又は9に記載の制御方法をコンピュータに実行させるためのプログラム。
- 請求項10に記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005352329A JP4845497B2 (ja) | 2005-12-06 | 2005-12-06 | 電子装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005352329A JP4845497B2 (ja) | 2005-12-06 | 2005-12-06 | 電子装置及びその制御方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007156899A true JP2007156899A (ja) | 2007-06-21 |
JP2007156899A5 JP2007156899A5 (ja) | 2009-01-22 |
JP4845497B2 JP4845497B2 (ja) | 2011-12-28 |
Family
ID=38241175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005352329A Expired - Fee Related JP4845497B2 (ja) | 2005-12-06 | 2005-12-06 | 電子装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4845497B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730300A (zh) * | 2019-10-11 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 相机控制方法、装置、存储介质和终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6257025A (ja) * | 1985-09-06 | 1987-03-12 | Hitachi Ltd | プログラムロ−ド方式 |
JPH02270032A (ja) * | 1989-04-12 | 1990-11-05 | Nec Corp | ローディング方式 |
JPH11312089A (ja) * | 1998-04-28 | 1999-11-09 | Matsushita Electric Ind Co Ltd | 電子制御装置 |
JP2002366362A (ja) * | 2001-06-06 | 2002-12-20 | Canon Inc | 電子機器、および電子機器の制御方法 |
JP2003189165A (ja) * | 2001-12-19 | 2003-07-04 | Fuji Photo Film Co Ltd | デジタルカメラ |
-
2005
- 2005-12-06 JP JP2005352329A patent/JP4845497B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6257025A (ja) * | 1985-09-06 | 1987-03-12 | Hitachi Ltd | プログラムロ−ド方式 |
JPH02270032A (ja) * | 1989-04-12 | 1990-11-05 | Nec Corp | ローディング方式 |
JPH11312089A (ja) * | 1998-04-28 | 1999-11-09 | Matsushita Electric Ind Co Ltd | 電子制御装置 |
JP2002366362A (ja) * | 2001-06-06 | 2002-12-20 | Canon Inc | 電子機器、および電子機器の制御方法 |
JP2003189165A (ja) * | 2001-12-19 | 2003-07-04 | Fuji Photo Film Co Ltd | デジタルカメラ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730300A (zh) * | 2019-10-11 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 相机控制方法、装置、存储介质和终端 |
Also Published As
Publication number | Publication date |
---|---|
JP4845497B2 (ja) | 2011-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8150809B2 (en) | File delete method, file open method, storage medium storing file delete program, and storage medium storing file open program | |
WO2017148171A1 (zh) | 一种嵌入式装置的启动方法和装置 | |
CN105975311B (zh) | 一种应用启动方法及装置 | |
JP4777426B2 (ja) | Non−execute−in−placeフラッシュメモリ内の持続性ファイルにアクセスするための装置、システムおよび方法 | |
JP4829579B2 (ja) | 画像処理装置、画像処理方法 | |
JP4376181B2 (ja) | プログラム実行処理端末装置 | |
JPH0434345B2 (ja) | ||
CN109739600B (zh) | 数据处理方法、介质、装置和计算设备 | |
JP2003259268A (ja) | 動画像管理方法及び装置 | |
CN110968343A (zh) | 资源文件的配置方法、配置装置、冰箱以及可读存储介质 | |
CN109298891B (zh) | 系统启动方法和装置、系统编译方法和装置 | |
JP4845497B2 (ja) | 電子装置及びその制御方法 | |
JP5683186B2 (ja) | 起動高速化方法、情報処理装置及びプログラム | |
CN110989986B (zh) | 基于软件模板的软件生成方法、装置和计算机设备 | |
US10310871B2 (en) | Non-transitory computer-readable recording medium storing control program, control device and control method | |
JP2004320591A (ja) | 携帯通信端末 | |
CN114090070A (zh) | 应用程序安装包文件处理方法及电子设备 | |
CN110187897B (zh) | 一种固件升级方法及装置 | |
CN112486580A (zh) | 一种实现VxWorks操作系统快速启动的方法及装置 | |
CN100346300C (zh) | 用多重加载/存储指令初始化系统全局变量的设备和方法 | |
JP4409507B2 (ja) | オブジェクト編纂装置 | |
JP2018185615A (ja) | 電子機器、方法、及びプログラム | |
EP0963655A1 (en) | A method and system for expanding the media types supported in a digital camera | |
JP2001142709A (ja) | 初期起動装置、コンピュータシステム、初期起動方法及び記憶媒体 | |
US20040254986A1 (en) | Information processing apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081203 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110905 |
|
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: 20111007 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111011 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141021 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141021 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |