JP4845497B2 - 電子装置及びその制御方法 - Google Patents
電子装置及びその制御方法 Download PDFInfo
- Publication number
- JP4845497B2 JP4845497B2 JP2005352329A JP2005352329A JP4845497B2 JP 4845497 B2 JP4845497 B2 JP 4845497B2 JP 2005352329 A JP2005352329 A JP 2005352329A JP 2005352329 A JP2005352329 A JP 2005352329A JP 4845497 B2 JP4845497 B2 JP 4845497B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- volatile memory
- control
- program module
- start address
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Studio Devices (AREA)
- Stored Programmes (AREA)
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 (9)
- プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリを備える電子装置であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群(ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールのうち少なくとも1つは可逆圧縮されている)と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報、及び、非圧縮状態か圧縮状態かを示す格納状態情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することで、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み手段と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリにおける前記制御プログラムの実行開始アドレス位置から処理を開始する実行開始手段と、
<iii>前記実行開始手段で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の、当該制御命令コードに対応する関数プログラムを含む注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報と格納状態情報とを取得し、
取得した格納状態情報が非圧縮状態であることを示す場合には、前記注目プログラムモジュールを前記揮発性メモリの展開開始アドレス位置に展開し、取得した格納状態情報が圧縮状態であることを示す場合には、前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの前記揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御手段と、
を備えることを特徴とする電子装置。 - プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリを備える電子装置であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群(ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールはすべて可逆圧縮されている)と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、及び、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することで、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み手段と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリにおける前記制御プログラムの実行開始アドレス位置から処理を開始する実行開始手段と、
<iii>前記実行開始手段で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の、当該制御命令コードに対応する関数プログラムを含む注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報を取得し、
前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの前記揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御手段と、
を備えることを特徴とする電子装置。 - 前記制御手段は、前記制御命令コードが配置されているアドレスと、各プログラムモジュールそれぞれに対応する前記展開開始アドレス情報とを比較し、
前記制御命令コードが配置されているアドレスと前記展開開始アドレス情報とが一致するプログラムモジュールが存在すれば、該プログラムモジュールを前記注目プログラムモジュールとして特定し、
前記制御命令コードが配置されているアドレスと前記展開開始アドレス情報とが一致するプログラムモジュールが存在しなければ、前記展開開始アドレス情報として、前記制御命令コードが配置されているアドレスよりも上位でかつ最も近いアドレスを示すプログラムモジュールを前記注目プログラムモジュールとして特定することを特徴とする請求項1又は2に記載の電子装置。 - さらに、前記プロセッサのアイドル時間に、前記プログラムモジュールのうち前記制御手段によって前記揮発性メモリに展開されていないプログラムモジュールを、前記展開開始アドレス情報を参照して、前記揮発性メモリの前記展開開始位置に展開するバックグラウンド展開手段を備えることを特徴とする請求項1乃至3のいずれか1項に記載の電子装置。
- 前記プログラムモジュールはすべて単一の関数プログラムから構成され、前記実行開始アドレス情報はすべての関数プログラムについて対応する実行開始アドレス位置を含むことを特徴とする請求項1乃至4のいずれか1項に記載の電子装置。
- プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリを備える電子装置を制御する方法であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群(ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールのうち少なくとも1つは可逆圧縮されている)と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報、及び、非圧縮状態か圧縮状態かを示す格納状態情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することにより実行される、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み工程と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリにおける前記制御プログラムの実行開始アドレス位置から処理を開始する実行開始工程と、
<iii>前記実行開始工程で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の、当該制御命令コードに対応する関数プログラムを含む注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報と格納状態情報とを取得し、
取得した格納状態情報が非圧縮状態であることを示す場合には、前記注目プログラムモジュールを前記揮発性メモリの展開開始アドレス位置に展開し、取得した格納状態情報が圧縮状態であることを示す場合には、前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの前記揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御工程と、
を備えることを特徴とする制御方法。 - プロセッサ、前記プロセッサが実行する制御プログラムを格納するための不揮発性メモリ、及び、前記プロセッサが前記制御プログラムを実行する際に使用する揮発性メモリを備える電子装置を制御する方法であって、
前記不揮発性メモリには、
<a>前記プロセッサが実行可能な制御プログラムを構成するプログラムモジュール群(ここで、各プログラムモジュールは少なくとも1つの関数プログラムを含み、前記プログラムモジュールはすべて可逆圧縮されている)と、
<b>各プログラムモジュールごとに、前記揮発性メモリ上の展開開始アドレス情報、及び、各関数プログラムのうち他のプログラムモジュールから参照される関数プログラムの実行開始アドレス情報と、
が記憶されており、
前記電子装置の電源投入時に、前記不揮発性メモリを参照することにより実行される、
<i>各プログラムモジュールに含まれる各関数プログラムの実行開始アドレス情報に基づき、前記揮発性メモリ上の各関数プログラムの実行開始アドレス位置に、該関数プログラムを含むプログラムモジュールを前記揮発性メモリへ展開させる制御命令コードを書き込む制御コード書き込み工程と、
<ii>前記制御プログラムを開始させるため、前記揮発性メモリにおける前記制御プログラムの実行開始アドレス位置から処理を開始する実行開始工程と、
<iii>前記実行開始工程で処理が開始された後、前記制御命令コードを実行した際に、前記不揮発性メモリ内の、当該制御命令コードに対応する関数プログラムを含む注目プログラムモジュールを特定することで、前記注目プログラムモジュールの展開開始アドレス情報を取得し、
前記注目プログラムモジュールを伸長してから、前記揮発性メモリの展開開始アドレス位置に展開し、
前記注目プログラムモジュールの前記揮発性メモリへの展開が完了した後、前記制御命令コードを実行したアドレス位置から処理を再開させる制御工程と、
を備えることを特徴とする制御方法。 - 請求項6又は7に記載の制御方法の各工程をコンピュータに実行させるためのプログラム。
- 請求項8に記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
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 JP2007156899A (ja) | 2007-06-21 |
JP2007156899A5 JP2007156899A5 (ja) | 2009-01-22 |
JP4845497B2 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730300A (zh) * | 2019-10-11 | 2020-01-24 | Oppo(重庆)智能科技有限公司 | 相机控制方法、装置、存储介质和终端 |
Family Cites Families (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 | 電子機器、および電子機器の制御方法 |
JP4436583B2 (ja) * | 2001-12-19 | 2010-03-24 | 富士フイルム株式会社 | デジタルカメラ |
-
2005
- 2005-12-06 JP JP2005352329A patent/JP4845497B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007156899A (ja) | 2007-06-21 |
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 | |
CN108614718B (zh) | 启动操作系统的方法、装置和实现装置 | |
JP4829579B2 (ja) | 画像処理装置、画像処理方法 | |
US7454673B2 (en) | Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory | |
CN105975311B (zh) | 一种应用启动方法及装置 | |
JPH0434345B2 (ja) | ||
WO2008058469A1 (fr) | Procédé pour démarrer un dispositif embarqué | |
CN109298891B (zh) | 系统启动方法和装置、系统编译方法和装置 | |
CN110989986B (zh) | 基于软件模板的软件生成方法、装置和计算机设备 | |
JP5217155B2 (ja) | ファイル圧縮自動判定方式および方法、並びに、プログラム | |
JP4845497B2 (ja) | 電子装置及びその制御方法 | |
JP2006228138A (ja) | 半導体記憶装置、記憶制御方法および情報機器 | |
US10310871B2 (en) | Non-transitory computer-readable recording medium storing control program, control device and control method | |
JP2005293354A (ja) | 携帯端末装置、アプリケーション実行画面表示方法、プログラム、及び記録媒体 | |
US7325119B2 (en) | Data storage apparatus capable of storing data stored in external equipment | |
CN110187897B (zh) | 一种固件升级方法及装置 | |
JPH09130731A (ja) | 電子スチルカメラ | |
CN111324410A (zh) | 终端开机动画播放方法、装置、终端和存储介质 | |
KR100544171B1 (ko) | 임베디드 시스템 및 그 운용방법 | |
JP2004258865A (ja) | 情報処理方法 | |
US7702890B2 (en) | Information processing apparatus and program | |
EP0963655A1 (en) | A method and system for expanding the media types supported in a digital camera | |
JP2018185615A (ja) | 電子機器、方法、及びプログラム | |
RU2390823C2 (ru) | Компактное хранение программного кода на мобильных терминалах | |
JP2006309536A (ja) | ファイル管理プログラム、及びファイル管理装置 |
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 |