KR20080063083A - 정보 처리 장치, 기동 방법, 및 프로그램 - Google Patents

정보 처리 장치, 기동 방법, 및 프로그램 Download PDF

Info

Publication number
KR20080063083A
KR20080063083A KR1020070130719A KR20070130719A KR20080063083A KR 20080063083 A KR20080063083 A KR 20080063083A KR 1020070130719 A KR1020070130719 A KR 1020070130719A KR 20070130719 A KR20070130719 A KR 20070130719A KR 20080063083 A KR20080063083 A KR 20080063083A
Authority
KR
South Korea
Prior art keywords
state
program
processing
suspension
idle state
Prior art date
Application number
KR1020070130719A
Other languages
English (en)
Inventor
히데노리 야마지
Original Assignee
소니 가부시끼 가이샤
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 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20080063083A publication Critical patent/KR20080063083A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/65Control of camera operation in relation to power supply
    • H04N23/651Control of camera operation in relation to power supply for reducing power consumption by affecting camera operations, e.g. sleep mode, hibernation mode or power off of selective parts of the camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Studio Devices (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

서스펜션 상태 및 하이버네이션 상태를 포함하는 휴지 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치에 있어서,
상기 서스펜션 상태 및 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 그에 대한 휴지 상태 정보의 기억을 제어하는 기억 제어 수단과,
상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위해 공급되는 전원의 공급 정지를 검출하는 검출 수단과,
전력 공급의 중단에 관한 검출 결과에 따른 상기 휴지 상태에서 상기 전원의 공급의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여 휴지 상태로부터 동작 상태로의 천이하는 기동 방식을 결정하는 기동 방식 결정 수단을 구비하는 것을 특징으로 하는 정보 처리 장치.
정보 처리 장치, 디지털 스틸 카메라

Description

정보 처리 장치, 기동 방법, 및 프로그램{INFORMATION PROCESSING APPARSTUS, STARTUP METHOD AND COMPUTER PROGRAM}
본 발명은 일본 특허출원 JP2006-355323호(2006.12.28)의 우선권 주장 출원이다.
본 발명은 정보 처리 장치, 기동 방법, 및 프로그램에 관한 것으로, 특히, 신속하게 기동할 수 있도록 한 정보 처리 장치, 기동 방법, 및 프로그램에 관한 것이다.
디지털 스틸 카메라가 널리 이용되고 있다. 디지털 스틸 카메라에서, 기술적으로 고도한 GUI(graphical user interface)가 사용되게 되고, 또한, 디지털 스틸 카메라가 네트워크와 접속되게 되었다. 이와 같은 기능 향상의 요구에 대응하기 위해, 디지털 스틸 카메라에서, Linux(등록상표) 등의 고성능, 고기능의 오퍼레이팅 시스템(operating system)이 실행되도록 되어 왔다.
Linux(등록상표) 등의 고성능, 고기능이며 규모가 큰 오퍼레이팅 시스템의 기동에는, 규모가 작은 μITRON(micro industrial the real-time operating system nucleus) 등의 오퍼레이팅 시스템을 기동하는 경우에 비교하여, 일반적으로, 시간 이 걸린다.
또한, GUI나 네트워크와의 접속 등의 어플리케이션에서의 처리가 고도하게 되면, 어플리케이션 프로그램이 커지고, 그 기동에도 시간이 걸리게 되었다.
이것에는, 오퍼레이팅 시스템 및 어플리케이션 프로그램의 기억에, 기억되어 있는 프로그램이 직접 실행할 수 있는 NOR형 플래시 메모리가 아니라, NAND형 플래시 메모리가 사용되는 것도 영향을 주고 있다. NAND형 플래시 메모리에 프로그램이 기억되어 있는 경우, 이 프로그램을 실행시키기 위해서는, NAND형 플래시 메모리에 기억되어 있는 프로그램을 RAM(random access memory)에 일단 로드하고 나서, RAM에 로드된 프로그램을 실행하여야 한다.
일본 특허 공보 제2004-362426호에는 서스펜션 및 리줌 처리를 효율적으로 행하도록 하고 있는 기술이 기재되어 있다. 상기에 따르면, 주기억 장치로서 불휘발성 기억부를 배치하고, 처리를 계속하기 위해 필요한 정보를 불휘발성 기억부에 퇴피하여 전원을 차단하고, 전원 투입시에는 불휘발성 기억부에 보존되어 있는 정보를 이용하여 전원 차단에 의해 중단된 처리를 재개하고, 또한, 처리의 재개에 필요한 정보를 식별하여 우선도를 부여하고, 우선도가 높은 정보로부터 차례로 불휘발성 기억부에 격납하고, 격납되지 못한 우선도가 낮은 정보를 2차 기억 장치에 퇴피시킨다.
착탈가능한 배터리를 내장하고, 이 배터리로부터의 전력에 의해 동작하는 기기에서, 서스펜션 상태에서 배터리를 분리하면, 그 다음에 행하는 기동에는, 긴 시간이 걸렸다. 또한, 기기가 올바르게 기동할 수 없는 경우도 있다.
본 발명은, 이와 같은 상황을 감안하여 이루어진 것으로, 예를 들어, 배터리를 분리했을 때, 서스펜션 상태를 유지하기 위한 전원의 공급이 정지된 경우에도, 보다 신속하게 기동할 수 있도록 하는 것이다.
본 발명의 한 실시예의 정보 처리 장치는, 서스펜션 상태 또는 하이버네이션 상태(Hibernation)중 어느 하나의 휴지 상태로 휴지하는 정보 처리 장치로서, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보의 기억을 제어하는 기억 제어 수단과, 상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지를 검출하는 검출 수단과, 전원 공급 중단에 대한 검출 결과에 따른 상기 휴지 상태에서의 상기 전원의 공급 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 기동 방식 결정 수단을 구비한다.
상기 기동 방식 결정 수단은, 제 1의 기동 방식과 제 2의 기동 방식 사이에 서 상기 휴지 상태로부터 상기 동작 상태로 천이하기 위한 기동의 방식을 결정한다. 제 1의 기동 방식은, 휴지 상태로 천이하기 직전의 상기 동작 상태에서 휘발성 메모리에 기억되어 있고, 상기 서스펜션 상태에서 상기 휘발성 메모리에 기억되어 있는 프로그램을 실행함으로써 기동한다. 제2의 기동 방식은, 휴지 상태로 천이하기 직전의 상기 동작 상태에서 상기 휘발성 메모리에 기억되어 있던 프로그램에 대응하고, 불휘발성 메모리에 기억되어 있는 이미지를 상기 휘발성 메모리에 로드하고 실행함으로써 기동한다.
상기 기동 방식 결정 수단에는, 상기 휴지 상태 정보가 상기 서스펜션 상태인 상기 휴지 상태를 나타내고, 상기 이력 정보가 상기 휴지 상태에서 상기 전원의 공급이 정지되지 않은 것을 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 기동의 방식을 상기 제 1의 기동 방식으로 결정시킬 수 있다.
상기 기동 방식 결정 수단에는, 상기 휴지 상태 정보가 상기 서스펜션 상태인 상기 휴지 상태를 나타내고, 상기 이력 정보가 상기 휴지 상태에서 상기 전원의 공급이 정지된 것을 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 기동의 방식을 상기 제 2의 기동 방식으로 결정시킬 수 있다.
상기 기동 방식 결정 수단에는, 상기 휴지 상태 정보가, 상기 하이버네이션 상태인 상기 휴지 상태를 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 기동의 방식을 상기 제 2의 기동 방식으로 결정시킬 수 있다.
정보 처리 장치는, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽으로 천이하는지를 결정하는 휴지 상태 결정 수단을 또한 마련할 수 있다.
상기 서스펜션 상태를 유지하기 위한 상기 전원을 공급하는 배터리가 분리되고 나서 장착된 경우, 상기 배터리의 장착을 기동의 요인으로 하여, 상기 동작 상태까지 기동하고 나서, 상기 동작 상태로부터 상기 서스펜션 상태인 상기 휴지 상태로 무조건 천이시킬 수 있다.
상기 검출 수단에는, 상기 서스펜션 상태를 유지하기 위한 상기 전원을 공급하는 배터리의 분리에 따른, 상기 전원의 공급 정지를 검출시킬 수 있다.
상기 검출 수단에는, 상기 서스펜션 상태를 유지하기 위한, 상기 외부 전원으로부터의 상기 전원의 공급 정지를 검출시킬 수 있다.
본 발명의 한 실시예의 기동 방법은, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치의 기동 방법으로서, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보의 기억을 제어하는 단계, 상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지를 검출하는 단계, 전원 공급 정지에 대한 검출 결과에 따른 상기 휴지 상태에서의 상기 전원의 공급 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여, 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 단계를 포함한다.
본 발명의 한 실시예의 프로그램은, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치의 기동 처리를, 컴퓨터에 행하게 하는 컴퓨터 프로그램으로서, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우에 기억된, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보, 및 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지의 검출 결과에 따른, 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보를 취득하는 단계, 상기 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 단계를 포함하는 기동 처리를 컴퓨터에 행하게 한다.
본 발명의 한 실시예의 정보 처리 장치 및 기동 방법에서는, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보가 기억되고, 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지가 검출되고, 검출 결과에 따른 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식이 결정된다.
본 발명의 한 실시예에서는, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우에 기억된, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보, 및 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지의 검출 결과에 따른, 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보가 취득되고, 상기 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식이 결정된다.
이상과 같이, 본 발명의 한 실시예에 의하면, 서스펜션 상태 또는 하이버네이션 상태으로부터 리줌할 수 있다.
또한, 본 발명의 한 실시예에 의하면, 서스펜션 상태를 유지하기 위한 전원의 공급이 정지된 경우에도, 보다 신속하게 기동할 수 있다.
본 발명의 실시의 형태를 설명하기 전에, 본 발명의 구성 요건과, 발명의 상세한 설명에 기재된 실시의 형태와의 대응 관계를 예시하면, 다음과 같이 된다. 이 기재는, 본 발명을 서포트하는 실시의 형태가, 발명의 상세한 설명에 기재되어 있는 것을 확인하기 위한 것이다. 따라서, 발명의 상세한 설명 중에는 기재되어 있지만, 본 발명의 구성 요건에 대응하는 실시의 형태로서, 여기에는 기재되지 않은 실시의 형태가 있었다고 하더라도, 그것은, 그 실시의 형태가, 그 구성 요건에 대응하는 것이 아닌 것을 의미하는 것이 아니다. 역으로, 실시의 형태가 구성 요건에 대응하는 것으로서 여기에 기재되어 있다고 하여도, 그것은, 그 실시의 형태가, 그 구성 요건 이외의 구성 요건에는 대응하지 않는 것임을 의미하는 것도 아니다.
본 발명의 한 실시예에 따르면, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치(예를 들면, 도 1의 디지털 스틸 카메라)는, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보의 기억을 제어하는 기억 제어 수단(예를 들면, 도 5의 기동 방식 결정 정보 기억 처리 프로그램(204))과, 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지를 검출하는 검출 수단(예를 들면, 도 5의 배터리 착탈 검출 프로그램(206))과, 검출 결과에 따른 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 기동 방식 결정 수단(예를 들면, 도 3의 기동 방식 결정 프로그램(122))을 구비한다.
상기 기동 방식 결정 수단은 제 1의 기동 방식(예를 들면, 핫 부트)과 제 2의 기동 방식(예를 들면, 웜 부트) 사이에서 휴지 상태로부터 동작 상태로 기동 방식을 천이하도록 결정할 수 있다. 제 1의 기동 방식은 휴지하기 직전의 상기 동작 상태에서 휘발성 메모리에 기억되어 있던 프로그램으로서, 상기 서스펜션 상태에서 상기 휘발성 메모리에 기억되어 있는 프로그램을 실행함으로써 기동한다. 제 2의 기동 방식은
휴지하기 직전의 상기 동작 상태에서 상기 휘발성 메모리에 기억되어 있던 프로그램에 대응하는 이미지로서, 불휘발성 메모리에 기억되어 있는 이미지를 상기 휘발성 메모리에 로드하고 실행함으로써 기동한다.
정보 처리 장치는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽으로 천이하는지를 결정하는 휴지 상태 결정 수단(예를 들면, 도 2의 휴지 상태 결정 프로그램(74))을 또한 마련할 수 있다.
상기 서스펜션 상태를 유지하기 위한 상기 전원을 공급하는 배터리(예를 들면, 도 1의 배터리(35))가 분리되고 나서 장착된 경우, 상기 배터리의 장착을 기동의 요인으로 하여, 상기 동작 상태까지 기동하고 나서, 상기 동작 상태로부터 상기 서스펜션 상태인 상기 휴지 상태로 무조건 천이시킬 수 있다.
상기 검출 수단에는, 상기 서스펜션 상태를 유지하기 위한 상기 전원을 공급하는 배터리(예를 들면, 도 1의 배터리(35))의 분리에 따른, 상기 전원의 공급 정지를 검출시킬 수 있다.
상기 검출 수단은, 상기 서스펜션 상태를 유지하기 위한, 상기 외부 전원(예를 들면, 도 1의 외부 전원)으로부터 상기 전원의 공급 정지를 검출시킬 수 있다.
본 발명의 한 실시예에 따르면, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치의 정보 처리 방법은, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽의 상기 휴지 상태를 나타내는 휴지 상태 정보의 기억을 제어는 단계(예를 들면, 도 23의 단계 S602), 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지를 검출하는 단계(예를 들면, 도 24의 단계 S901), 검출 결과에 따른 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 단계(예를 들면, 도 17의 단계 S239)를 포함한다.
본 발명의 한 실시예에 따르면, 서스펜션 상태 또는 하이버네이션 상태 중 어느 하나의 상태로 휴지하는 정보 처리 장치의 정보 처리 방법을 컴퓨터에 행하게 하는 프로그램으로서, 상기 서스펜션 상태 또는 상기 하이버네이션 상태 중 어느 하나의 휴지 상태로 천이하는 경우에 기억된, 상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽을 나타내는 휴지 상태 정보, 및 상기 휴지 상태에서의, 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지의 검출 결과에 따른, 상기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보를 취득하는 단계(예를 들면, 도 17의 단계 S237), 상기 이력 정보 및 상기 휴지 상태 정보로부터, 상기 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하는 단계(예를 들면, 도 17의 단계 S239)를 포함한다.
도 1은 본 발명의 한 실시의 형태의 정보 처리 장치의 한 예인 디지털 스틸 카메라의 구성을 도시하는 블록도이다. 디지털 스틸 카메라는, 호스트 CPU(11), 리얼타임 처리용 CPU(12), 마스크 ROM(read only memory)(13), CCD(charge coupled device)(14), 아날로그 프런트 엔드(15), 신호 처리부(16), NAND형 플래시 메모리(17), 메모리 컨트롤러(18), 시리얼 인터페이스(19), LCD(liquid crystal display)(20), 그래픽 컨트롤러(21), 메모리 카드(22), 메모리 카드 인터페이스(23), 무선 LAN(local area network) 인터페이스(24), 컨트롤러(25), NAND형 플래시 메모리(26), ATA(AT attachment)-플래시 메모리 인터페이스(27), IDE(integrated device (drive) electronics) 인터페이스(28), SDRAM(synchronous dynamic random access memory)(29), SDRAM 컨트롤러(30), 입력부(31), 범용 입출력부(32), 임베디드 컨트롤러(33), DC(direct current)-DC 컨버터(34), 배터 리(35), 및 배터리(36)로 구성된다.
호스트 CPU(11), 리얼타임 처리용 CPU(12), 마스크 ROM(13), 신호 처리부(16), 메모리 컨트롤러(18), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), SDRAM 컨트롤러(30), 및 범용 입출력부(32)는, 버스에 의해 상호 접속되어 있다.
호스트 CPU(11)는, 조립용의 CPU 또는 범용의 CPU로 구성되고, 오퍼레이팅 시스템 및 어플리케이션 프로그램을 실행하여, 디지털 스틸 카메라에 대한, 촬영하는 화상의 사이즈, 화상의 데이터의 압축률, 또는 노출 또는 셔터 스피드 등의 각종의 설정을 행하기 위한 GUI의 처리 등을 행한다.
리얼타임 처리용 CPU(12)는, 조립용의 CPU 또는 범용의 CPU로 구성되고, 호스트 CPU(11)와는 별도로, 오퍼레이팅 시스템 및 어플리케이션 프로그램을 실행하여, 디지털 스틸 카메라의 각 부분을 제어하기 위한 리얼타임의 처리 등을 행한다.
마스크 ROM(13)은, 디지털 스틸 카메라 고유의 데이터, 및 기동할 때 호스트 CPU(11)에 실행되는 부트 로더를 기억한다.
기동이란, 전원의 공급이 정지된 상태로부터의 기동뿐만 아니라, 서스펜션 상태, 하이버네이션 상태, 또는 소프트 오프 상태로부터의 기동, 이른바 리줌을 포함한다. 마스크 ROM(13)은, 부트 로더와 함께 2차 부트 로더를 기억하도록 하여도 좋다.
CCD(14)는, 이른바 화상 센서이고, 아날로그 프런트 엔드(15)와 상호 접속되어 있다. CCD(14)는, 도시하지 않은 광학계에 의해 그 감광부에 결상된 피사체의 화상에 응한 아날로그의 신호를 아날로그 프런트 엔드(15)에 출력한다. 또한, CCD(14)에 대신하여, 화상 센서인 CMOS(Complementary metal-oxide semiconductor) 센서를 마련하도록 하여도 좋다.
아날로그 프런트 엔드(15)는, CCD(14) 및 신호 처리부(16)와 상호 접속되고, CCD(14)로부터의 피사체의 화상에 응한 아날로그의 신호에, 노이즈의 제거 등의 소정의 처리를 적용하여, 아날로그의 신호를 디지털의 신호로 변환한다. 아날로그 프런트 엔드(15)는, 변환에 의해 얻어진, 피사체의 화상에 응한 디지털의 신호를 신호 처리부(16)에 공급한다.
신호 처리부(16)는, 아날로그 프런트 엔드(15)로부터 공급된, 피사체의 화상에 응한 디지털의 신호에, 화이트 밸런스의 처리 또는 부호화의 처리 등 소정의 처리를 적용한다. 신호 처리부(16)는, 소정의 처리의 적용에 의해 얻어진, 피사체의 화상에 응한 데이터를, 버스, IDE 인터페이스(28), 및 ATA-플래시 메모리 인터페이스(27)를 통하여, NAND형 플래시 메모리(26)에 공급하거나, 또는 버스 및 메모리 카드 인터페이스(23)를 통하여 메모리 카드(22)에 공급한다.
NAND형 플래시 메모리(17)는, 불휘발성 기억 매체의 한 예이고, 메모리 컨트롤러(18)와 상호 접속되어 있다. NAND형 플래시 메모리(17)는, 호스트 CPU(11)에 의해 실행되는 프로그램 또는 그 프로그램의 실행에 필요한 데이터를 기억함과 함께, 리얼타임 처리용 CPU(12)에 의해 실행되는 프로그램 또는 그 프로그램의 실행에 필요한 데이터를 기억한다.
또한, NAND형 플래시 메모리(17)는, 하이버네이션 상태로부터 동작 상태로 기동하는 경우의 이미지를 기억한다. 이 NAND형 플래시 메모리(17)에 기억되어 있는 이미지는, 디지털 스틸 카메라의 동작 상태에서 SDRAM(29)에 로드되어 있는 프로그램 및 데이터가 그대로 데이터로 된 것이다. NAND형 플래시 메모리(17)에 기억되어 있는 이미지가 SDRAM(29)에 로드됨에 의해, SDRAM(29)은, 디지털 스틸 카메라의 동작 상태에서의 프로그램 및 데이터가 로드된 상태로 된다.
이하, NAND형 플래시 메모리(17)에 기억되어 있는 이미지를, 호스트 CPU(11)에 의해 실행되는 프로그램 및 데이터를 포함한다. 한편, NAND형 플래시 메모리(17)에 기억되어 있는 이미지는 호스트 CPU(11)에 의해 실행되는 프로그램 및 관련 데이터 및 리얼타임 처리용 CPU(12)에 의해 실행되는 프로그램 및 관련 데이터를 포함한다.
또한, 이하, NAND형 플래시 메모리(17)에 기억되어 있는 이미지를, 웜 부트 이미지라고도 칭한다.
메모리 컨트롤러(18)는, NAND형 플래시 메모리(17)로부터의 프로그램, 데이터, 또는 웜 부트 이미지의 판독을 제어한다. 또한, 메모리 컨트롤러(18)는, NAND형 플래시 메모리(17)에의 웜 부트 이미지 등의 각종의 데이터의 기록을 제어한다.
시리얼 인터페이스(19)는, 호스트 CPU(11)와 임베디드 컨트롤러(33) 사이의 시리얼 통신을 행한다.
LCD(20)는, 상호 접속되어 있는 그래픽 컨트롤러(21)의 제어하에, 각종의 화상 또는 텍스트 등을 표시한다. 그래픽 컨트롤러(21)는, LCD(20)의 표시를 제어한다.
메모리 카드(22)는, 예를 들면, 메모리 스틱(MEMORY STICK(등록상표))에 의해 구성되고, 불휘발성 기억 매체를 내장하고, 디지털 스틸 카메라에 삽탈 가능하게 구성된다. 메모리 카드(22)는, 디지털 스틸 카메라에 장착된 경우, 메모리 카드 인터페이스(23)와 전기적으로 접속된다. 메모리 카드 인터페이스(23)는, 장착된 메모리 카드(22)의 데이터의 기억 또는 메모리 카드(22)로부터의 데이터의 판독을 제어한다.
무선 LAN 인터페이스(24)는, IEEE(institute of electrical and electronic engineers) 802.11a, 11b, 또는 11g 등에 준거하여, 액세스 포인트 또는 다른 기기 등과 통신한다. 컨트롤러(25)는, 무선 LAN 인터페이스(24)와 버스를 상호 접속하고, 무선 LAN 인터페이스(24)를 제어한다.
NAND형 플래시 메모리(26)는, 불휘발성 기억 매체의 한 예이고, 상호 접속되어 있는 ATA-플래시 메모리 인터페이스(27)의 제어하에, 화상의 데이터 등, 각종의 데이터를 기억한다. ATA-플래시 메모리 인터페이스(27)는, IDE 인터페이스(28)와 NAND형 플래시 메모리(26)의 인터페이스이고, ATA의 규격에 준거하여 IDE 인터페이스(28)와 통신한다. IDE 인터페이스(28)는, IDE의 규격에 준거하여, ATA-플래시 메모리 인터페이스(27)와 통신한다. ATA-플래시 메모리 인터페이스(27) 및 IDE 인터페이스(28)를 통하여, NAND형 플래시 메모리(26)가 버스에 접속되기 때문에, 호스트 CPU(11)는, 하드 디스크 또는 광디스크 드라이브에 대한 IDE의 규격의 커맨드를 이용하여, NAND형 플래시 메모리(26)를 제어할 수 있게 된다.
SDRAM(29)은, 기억 매체의 한 예이고, SDRAM 컨트롤러(30)와 상호 접속되고, 호스트 CPU(11)에 의해 실행되는 오퍼레이팅 시스템 및 어플리케이션 프로그램, 및 리얼타임 처리용 CPU(12)에 의해 실행되는 오퍼레이팅 시스템 및 어플리케이션 프로그램을 기억한다. 호스트 CPU(11)는, SDRAM(29)에 기억된 오퍼레이팅 시스템 및 어플리케이션 프로그램을 실행한다. 또한, 리얼타임 처리용 CPU(12)는, SDRAM(29)에 기억된 오퍼레이팅 시스템 및 어플리케이션 프로그램을 실행한다.
또한, SDRAM(29)은, 전원이 공급되면 기억하고 있는 데이터(프로그램을 포함한다)를 자기 자신이 리프레시하는, 이른바 셀프 리프레시 기능을 구비한다.
SDRAM 컨트롤러(30)는, SDRAM(29)에의 프로그램 또는 데이터의 기록, 및 SDRAM(29)으로부터의 프로그램 또는 데이터의 판독을 제어한다.
입력부(31)는, 전원 버튼, 무선 LAN 버튼, USB(universal serial bus) 버튼, 렌즈 캡(렌즈 셔터)의 개폐를 검출하는 스위치, 십자 키, 및 터치 패널 등으로 이루어지고, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압에 응한 신호, 렌즈 캡의 개폐에 응한 신호, 또는 십자 키 또는 터치 패널 등에의 조작에 응한 신호를 범용 입출력부(32) 및 임베디드 컨트롤러(33)에 공급한다.
범용 입출력부(32)는, 범용의 시리얼 또는 패럴렐의 입출력 인터페이스이고, 입력부(31)로부터 공급된, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압에 응한 신호, 렌즈 캡의 개폐에 응한 신호, 또는 십자 키 또는 터치 패널 등에의 조작에 응한 신호에 대응하는 데이터를 호스트 CPU(11) 또는 리얼타임 처리용 CPU(12)에 공급한다.
또한, 범용 입출력부(32)에는, USB의 규격에 준거한 기기 또는 케이블을 접 속하기 위한 USB 접속 단자(41)가 마련되어 있다.
또한, 한쪽의 단말(도시 생략)이 퍼스널 컴퓨터 등의 기기에 접속되어 있는 케이블의 다른쪽의 단말이 USB 접속 단자(41)에 접속된 경우, 범용 입출력부(32)는, USB 접속 단자(41)에 기기가 접속된 것을 나타내는 신호를 임베디드 컨트롤러(33)에 공급한다.
임베디드 컨트롤러(33)는, 이른바 조립용의 CPU이고, 내장되어 있는 ROM 또는 RAM에 기억되어 있는 프로그램을 실행한다. 임베디드 컨트롤러(33)는, 입력부(31)로부터 공급된 신호를 기초로, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압 또는 렌즈 캡의 개폐에 응하여, 호스트 CPU(11)의 리셋 및 그 해제를 제어한다.
임베디드 컨트롤러(33)는, DC-DC 컨버터(34)에 의한 디지털 스틸 카메라의 각 부분에의 전력의 공급을 제어한다.
DC-DC 컨버터(34)는, 직류 전압 전원인 배터리(35) 또는 외부 전원으로부터 공급되는 전압을 변환하여, 임베디드 컨트롤러(33)의 제어에 의거하여, 디지털 스틸 카메라의 각 부분에 소정의 전압의 전원(전력)을 공급하거나, 각 부위마다 전원의 공급을 정지한다.
배터리(35)는, 디지털 스틸 카메라에 착탈가능한 2차 전지이고, DC-DC 컨버터(34)를 통하여, 디지털 스틸 카메라의 전체를 구동하기 위한 전력을 공급한다.
배터리(36)는, 예를 들면 버튼 전지 등의 1차 전지이고, 외부 전원 또는 배터리(35)로부터 전력이 공급되지 않는 경우에 임베디드 컨트롤러(33)를 동작시키기 위한 전력을, 임베디드 컨트롤러(33)에 공급한다.
호스트 CPU(11)에 의해 실행되는 프로그램, 리얼타임 처리용 CPU에 의해 실행되는 프로그램, 또는 임베디드 컨트롤러(33)에 의해 실행되는 프로그램에 관해 설명한다.
이하, 프로그램의 설명에서, 특정 처리가 특정 프로그램에 의해 수행되는 것으로 기재되어 있지만, 특정 처리가 대응하는 컴퓨터에 의해 수행되는 것으로도 표현한다.
우선, 도 2를 참조하여, 호스트 CPU(11)에 의해 실행되는 오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)에 관해 설명한다.
호스트 CPU(11)는, 오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)을 실행한다.
오퍼레이팅 시스템(61)은, Linux(등록상표) 등의 오퍼레이팅 시스템이고, 하드웨어의 관리 등 기본적인 처리를 행한다. 어플리케이션 프로그램(62)은, 촬영하려고 하는 피사체의 화상의 표시나 촬영한 화상의 열람 등의 처리를 행한다.
오퍼레이팅 시스템(61)은, 커널(71), 디바이스 드라이버(72), 전원 관리 기구(73), 휴지 상태 결정 프로그램(74), 휴지 상태 정보 제공 프로그램(75), 다른(他)CPU 프로그램 판독 프로그램(76), 설정치 기억 처리 프로그램(77), 및 웜 부트 이미지 생성 프로그램(78)을 포함한다.
커널(71)은, 오퍼레이팅 시스템(61)의 핵심(core) 부분이고, 어플리케이션 프로그램(62)이나 마스크 ROM(13) 내지 범용 입출력부(32) 등의 디바이스의 감시, SDRAM(29)나 메모리 카드(22), NAND형 플래시 메모리(26) 등의 자원의 관리, 인터럽트 처리, 또는 프로세스 간 통신 등, 오퍼레이팅 시스템(61)으로서의 기본 기능을 제공한다.
디바이스 드라이버(72)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 디바이스를 제어한다. 본래, 디바이스 드라이버(72)는, 신호 처리부(16) 내지 범용 입출력부(32)의 각각을 개별적으로 제어하는 프로그램이지만, 개별적으로 구별하지 않고, 신호 처리부(16) 내지 범용 입출력부(32)를 일괄하고 제어하는 것으로 하여 설명한다.
전원 관리 기구(73)는, ACPI(advanced configuration and power interface) 서브시스템 등이고, 디지털 스틸 카메라를 서스펜션 상태, 하이버네이션 상태, 또는 소프트 오프 상태로 휴지시키도록, 또한, 서스펜션 상태, 하이버네이션 상태, 또는 소프트 오프 상태의 휴지 상태로부터 동작 상태가 되도록, 전원을 관리한다.
디지털 스틸 카메라가 휴지하는 경우, 휴지 상태 결정 프로그램(74)은 서스펜션 상태 또는 하이버네이션 상태의 어느 상태로 휴지하는지를 결정한다.
디지털 스틸 카메라가 휴지하는 경우, 휴지 상태 정보 제공 프로그램(75)은 서스펜션 상태 또는 하이버네이션 상태의 어느 한쪽이 결정된 상태를 나타내는 휴지 상태 정보를, 시리얼 인터페이스(19)를 통하여 임베디드 컨트롤러(33)에 공급한다.
디지털 스틸 카메라가 휴지하는 경우, 다른 CPU 프로그램 판독 프로그 램(76))은 NAND형 플래시 메모리(17)에 기억되어 있는 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템 및 어플리케이션 프로그램을 SDRAM(29)에 로드한다.
또한, 이하, NAND형 플래시 메모리(17)에 기억되어 있는 프로그램 또는 데이터를, NAND형 플래시 메모리(17)로부터 판독하고, 판독한 프로그램 또는 데이터를 SDRAM(29)에 로드하는 것을, "프로그램 또는 데이터를 NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다"고 칭한다.
디지털 스틸 카메라가 휴지하는 경우, 설정치 기억 처리 프로그램(77)은 그 휴지의 후에 기동할 때에 행하여지는 복귀에서 필요하게 되는, 셔터 스피드나 노출, 줌, 촬영하는 화상의 사이즈나 부호화할 때의 압축률, 또는 호스트 CPU(11)의 내부의 각 레지스터의 값 등의 설정치를, NAND형 플래시 메모리(17)에 기억시킨다.
펌 웨어, 즉 오퍼레이팅 시스템(61) 또는 어플리케이션 프로그램(62)이 갱신되고(업데이트되고), 디지털 스틸 카메라가 전원의 공급이 정지된 상태로부터 기동된 경우, 웜 부트 이미지 생성 프로그램(78)은, 기동 직후의 웜 부트 이미지를 생성한다. 웜 부트 이미지 생성 프로그램(78)은, 생성한 웜 부트 이미지를 NAND형 플래시 메모리(17)에 기억시킨다.
어플리케이션 프로그램(62)은, 촬영 처리 프로그램(81), 열람 처리 프로그램(82), 설정 처리 프로그램(83), USB 매스 스토리지 클래스 처리 프로그램(84), 상태 천이 처리 프로그램(85), 및 전원 관리 프로그램(86)을 포함한다.
촬영 처리 프로그램(81)은, 촬영하려고 하는 피사체의 화상의 LCD(20)에의 표시나, 촬영한 화상의 화상 처리, 촬영에 의해 얻어진 화상의 데이터의 부호화 및 그 기억 등을 제어한다. 즉, 촬영 처리 프로그램(81)은, 촬영의 처리를 행한다.
열람 처리 프로그램(82)은, 촬영에 의해 생성되고, NAND형 플래시 메모리(26) 또는 메모리 카드(22)에 기억한 화상의 데이터에 의해 화상을 LCD(20)에 표시시키는 등으로, 사용자에게 화상을 열람시키는 처리를 행한다.
설정 처리 프로그램(83)은, 셔터 스피드, 노출, 또는 줌, 또는 촬영하는 화상의 사이즈, 부호화의 방식이나 부호화의 압축률 등의 촬영에 관한 설정이나, 화상의 데이터의 기억처나, 화상의 열람에서의 표시의 방법 등, 각종의 설정의 처리를 행한다.
케이블의 한쪽의 단말이 퍼스널 컴퓨터 등의 기기에 접속되어 있고 다른쪽의 단말이 USB 접속 단자(41)에 접속된 경우, USB 매스 스토리지 클래스 처리 프로그램(84)은 디지털 스틸 카메라를 기록 디바이스로서 동작시키는 USB 매스 스토리지 클래스의 처리를 행한다.
촬영 처리 프로그램(81) 내지 USB 매스 스토리지 클래스 처리 프로그램(84)의 각각은, 촬영의 처리 내지 USB 매스 스토리지 클래스의 처리의 각각에서, 필요한 GUI의 처리를 행한다.
상태 천이 처리 프로그램(85)은, 동작 상태에 포함되는 복수의 상태중, 소정의 상태로 천이시키는 상태 천이의 처리를 행한다. 동작 상태의 상세는 후술한다.
전원 관리 프로그램(86)은, Linux(등록상표) 커널이 제공하는 전원 관리 프로그램(Power Management Interface)이고, 전원의 상태에 관한 각종의 커맨드를 발행하는 등으로, 전원을 관리한다.
또한, 오퍼레이팅 시스템(61)이, 상태 천이 처리 프로그램(85)을 포함하도록 하여도 좋다.
다음에, 도 3을 참조하여, 기동하는 경우, 호스트 CPU(11)에 실행되는 2차 부트 로더를 설명한다. 이 2차 부트 로더는, 기동할 때, 호스트 CPU(11)에 실행되는 부트 로더에 의해 SDRAM(29)에 로드되어, 실행된다.
2차 부트 로더(101)는, PC(Personal Computer)에서 이용되고 있는 GRUB 또는 LILO 등에 상당하는 프로그램이고, 오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)의 기동을 제어한다.
2차 부트 로더(101)는, 기동 방식 결정 정보 취득 프로그램(121), 기동 방식 결정 프로그램(122), 설정치 판독 프로그램(123), 다른 CPU 프로그램 판독 프로그램(124), 및 웜 부트 이미지 판독 프로그램(125)을 포함한다.
기동 방식 결정 정보 취득 프로그램(121)은, 임베디드 컨트롤러(33)가 그 내부의 메모리에 기억하고 있는 기동 방식 결정 정보를, 임베디드 컨트롤러(33)로부터 취득한다. 여기서, 기동 방식 결정 정보는, 기동의 방식을 결정하기 위한 정보이다.
기동의 방식은 복수의 방식을 포함한다. 하나의 기동 방식에서, 디지털 스틸 카메라는, 휴지하기 직전의 동작 상태에서 SDRAM(29)에 기억되어 있고, 서스펜션 상태에서 SDRAM(29)에 기억되어 있는 프로그램을 실행함으로써 기동할 수 있다. 또 다른 기동 방식에서, 디지털 스틸 카메라는, 휴지하기 이전의 동작 상태에서 SDRAM(29)에 기억되어 있던 프로그램의 이미지인 웜 부트 이미지로서, NAND형 플래 시 메모리(17)에 기억되어 있는 웜 부트 이미지를 SDRAM(29)에 로드하고 실행함으로써 기동할 수 있다.
휴지하기 직전의 동작 상태에서 SDRAM(29)에 기억되어 있고, 서스펜션 상태에서 SDRAM(29)에 기억되어 있는 프로그램을 실행함으로써 기동하는 방식을 핫 부트라고 칭한다. 또한, 휴지하기 이전의 동작 상태에서 SDRAM(29)에 기억되어 있던 프로그램의 이미지인 웜 부트 이미지로서, NAND형 플래시 메모리(17)에 기억되어 있는 웜 부트 이미지를 SDRAM(29)에 로드하고 실행함으로써 기동하는 방식을 웜 부트라고 칭한다.
또한, NAND형 플래시 메모리(17)에 기억되어 있는 오퍼레이팅 시스템이 파일을 열어서 기동하는 방식을 콜드 부트라고 칭한다.
웜 부트에서 디지털 스틸 카메라가 기동에 필요로 하는 시간은, 핫 부트에서 디지털 스틸 카메라가 기동에 필요로 하는 시간에 비교하여 길고, 콜드 부트에서 디지털 스틸 카메라가 기동에 필요로 하는 시간은, 웜 부트에서 디지털 스틸 카메라가 기동에 필요로 하는 시간에 비교하여 매우 길다. 즉, 핫 부트의 기동은 콜드 부트의 기동에 비교하여, 극히 신속하고, 웜 부트의 기동은 콜드 부트의 기동에 비교하여, 신속하고, 핫 부트의 기동은 웜 부트의 기동에 비교하여, 신속하다고 할 수 있다.
또한, 핫 부트 또는 웜 부트의 방식에 의해 기동하는 것은, 일반적으로, "리줌(resume)"이라고 칭하여지고 있다.
또한, 핫 부트, 웜 부트, 또는 콜드 부트의 기동의 대상은, 디지털 스틸 카 메라, 호스트 CPU(11), 또는 오퍼레이팅 시스템(61)이다. 따라서, 디지털 스틸 카메라가 핫 부트, 웜 부트, 또는 콜드 부트 중 하나로 기동될 수 있고, 호스트 CPU(11)가 핫 부트, 웜 부트, 또는 콜드 부트 중 하나로 기동될 수 있고, 오퍼레이팅 시스템(61)이 핫 부트, 웜 부트, 또는 콜드 부트 중 하나로 기동될 수 있다.
다음에, 기동 방식 결정 정보에 관해 설명하면, 보다 상세하게는 기동 방식 결정 정보는, 휴지 상태 정보 및 배터리 착탈 정보로 이루어지고, 또한 기동 트리거 정보를 포함한다.
휴지 상태 정보는, 휴지하는 경우에 결정된 휴지 상태를 나타내는 정보이다. 또한, 휴지 상태 정보에는 웜 부트 이미지를 작성하는지의 여부를 나타내는 이미지 작성 플래그가 포함되어 있다. 예를 들면, 세트되어 있다면, 이미지 작성 플래그는 웜 부트 이미지를 작성하는 것을 나타내고, 클리어되어 있다면, 이미지 작성 플래그는 웜 부트 이미지를 작성하지 않는 것을 나타낸다.
배터리 착탈 정보는, 휴지 상태에서의 배터리(35)의 착탈의 이력을 나타낸다.
기동 트리거 정보는, 입력부(31)의 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압, USB 접속 단자(41)에 기기가 접속되는 것, 또는 렌즈 캡을 여는 것 등, 기동의 트리거가 되는 기동 요인을 나타낸다.
기동 방식 결정 정보 취득 프로그램(121)은, 임베디드 컨트롤러(33)로부터 취득한 기동 방식 결정 정보를, SDRAM(29)의 미리 정해진 기억 영역에 기억시킨다.
기동 방식 결정 프로그램(122)은, 기동 방식 결정 정보를 기초로, 기동의 방 식을 결정한다.
설정치 판독 프로그램(123)은, 디지털 스틸 카메라가 휴지하는 경우, 설정치 기억 처리 프로그램(77)에 의해 NAND형 플래시 메모리(17)에 기억된 설정치를 판독한다.
다른 CPU 프로그램 판독 프로그램(124)은, 웜 부트 또는 콜드 부트인 경우, NAND형 플래시 메모리(17)에 기억되어 있는 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템 및 어플리케이션 프로그램을 SDRAM(29)에 로드한다.
웜 부트 이미지 판독 프로그램(125)은, 웜 부트인 경우, NAND형 플래시 메모리(17)에 기억되어 있는 웜 부트 이미지를 SDRAM(29)에 로드한다.
다음에, 리얼타임 처리용 CPU(12)에 실행되는 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)에 관해, 도 4를 참조하여 설명한다.
리얼타임 처리용 CPU(12)는, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 실행한다.
오퍼레이팅 시스템(141)은, μITRON 등의, 이른바 리얼타임 오퍼레이팅 시스템이고, 각종의 기본적인 처리를 행한다. 어플리케이션 프로그램(142)은, 피사체를 촬영하는 경우에 필요하게 되는, 도시하지 않은 광학계, CCD(14), 아날로그 프런트 엔드(15), 및 신호 처리부(16)에 대한 리얼타임 처리의 제어의 처리를 행한다.
오퍼레이팅 시스템(141)은, 기동 방식 결정 정보 취득 프로그램(161), 기동 방식 결정 프로그램(162), 및 어플리케이션 기동 종료 제어 프로그램(163)을 포함한다.
기동 방식 결정 정보 취득 프로그램(161)은, 기동하는 경우, 기동 방식 결정 정보 취득 프로그램(121)에 의해 기억시켜진 기동 방식 결정 정보를 SDRAM(29)의 미리 결정된 기억 영역에서 판독함으로써, 기동 방식 결정 정보를 취득한다.
기동 방식 결정 프로그램(162)은, 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 기동 방식 결정 프로그램(162)은, 기동의 방식을, 기동 방식 결정 프로그램(122)과 공통하는 기동 방식 결정 정보로부터, 기동 방식 결정 프로그램(122)에 의해 결정되는 기동의 방식과 같은 기동의 방식으로 결정한다.
어플리케이션 기동 종료 제어 프로그램(163)은, 기동하는 경우, 기동 방식 결정 정보에 포함되는 기동 트리거 정보를 기초로, 어플리케이션 프로그램(142)의 각종의 처리의 기동 및 종료를 제어한다.
어플리케이션 프로그램(142)은, 리얼타임 처리 프로그램(171), GUI 처리 프로그램(172), 및 기동 화면 표시 프로그램(173)을 포함한다.
리얼타임 처리 프로그램(171)은, 도시하지 않은 광학계, CCD(14), 아날로그 프런트 엔드(15), 및 신호 처리부(16)를 리얼타임으로 제어한다.
GUI 처리 프로그램(172)은, 리얼타임 처리용 CPU(12)가 호스트 CPU(11)와 공용하는 입력부(31)로부터 사용자의 지시를 취득하기 위한 유저 인터페이스의 처리를 행한다. GUI 처리 프로그램(172)은, 촬영 처리 프로그램(81) 내지 USB 매스 스토리지 클래스 처리 프로그램(84)의 각각에 의한 GUI의 처리중 일부의 처리, 예를 들면, 셔터 스피드, 노출, 또는 줌의 설정치 등, 기동 직후에 그 설정이 요구되는 일이 있는 설정치에 관한 한정된 GUI의 처리를 행한다.
기동 화면 표시 프로그램(173)은, 기동하는 경우, LCD(20)에, 기동을 나타내는 기동 화면을 표시시킨다.
또한, 어플리케이션 프로그램(142)이, 어플리케이션 기동 종료 제어 프로그램(163)을 포함하도록 하여도 좋다.
다음에, 임베디드 컨트롤러(33)에 의해 실행되는 프로그램에 관해 설명한다. 도 5는 임베디드 컨트롤러(33)에 의해 실행되는 프로그램을 도시하는 도면이다. 임베디드 컨트롤러(33)는, 전원 제어 프로그램(201), 다른 CPU 리셋 제어 프로그램(202), 기동 방식 결정 정보 취득 프로그램(203), 기동 방식 결정 정보 기억 처리 프로그램(204), 기동 방식 결정 정보 제공 프로그램(205), 및 배터리 착탈 검출 프로그램(206)을 실행한다.
전원 제어 프로그램(201)은, DC-DC 컨버터(34)를 제어함으로써, 디지털 스틸 카메라의 각 부분에의 전력의 공급을 제어한다.
다른 CPU 리셋 제어 프로그램(202)은, 호스트 CPU(11)의 리셋 및 그 해제를 제어한다.
기동 방식 결정 정보 취득 프로그램(203)은, 기동 방식 결정 정보를 취득한다.
보다 상세하게는, 기동 방식 결정 정보 취득 프로그램(203)은, 디지털 스틸 카메라가 휴지하는 경우, 휴지 상태 정보 제공 프로그램(75)으로부터 송신되어 오는 휴지 상태 정보를 수신함으로써, 기동 방식 결정 정보중 휴지 상태 정보를 취득한다.
또한, 기동 방식 결정 정보 취득 프로그램(203)은, 배터리 착탈 검출 프로그램(206)으로부터 배터리(35)의 착탈의 검출의 결과를 취득한다. 기동 방식 결정 정보 취득 프로그램(203)은, 배터리(35)의 착탈의 검출 결과에 따른 배터리 착탈 정보를 생성한다. 또한, 기동 방식 결정 정보 취득 프로그램(203)은, 입력부(31)로부터 공급되는 신호로서, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압, 또는 렌즈 캡의 개폐를 나타내는 신호에 따라, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압, 또는 렌즈 캡을 여는 것 등의 기동의 트리거를 나타내는 기동 트리거 정보를 생성한다.
기동 방식 결정 정보 기억 처리 프로그램(204)은, 취득한 기동 방식 결정 정보를 임베디드 컨트롤러(33)의 내부의 메모리에 기억한다. 즉, 기동 방식 결정 정보 기억 처리 프로그램(204)은, 수신된 휴지 상태 정보, 생성된 배터리 착탈 정보, 또는 생성된 기동 트리거 정보를 임베디드 컨트롤러(33)의 내부의 메모리에 기억한다.
기동 방식 결정 정보 제공 프로그램(205)은, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)로부터의 요구에 응하여, 임베디드 컨트롤러(33)의 내부의 메모리에 기억되어 있는 기동 방식 결정 정보를 호스트 CPU(11)에 제공한다.
배터리 착탈 검출 프로그램(206)은, DC-DC 컨버터(34)의 출력 전압을 검출함으로써, 배터리(35)의 착탈을 검출한다.
다음에, 도 6 내지 도 9를 참조하여, 디지털 스틸 카메라의 상태에 관해 설명한다. 도 6에서 도시되는 바와 같이, 디지털 스틸 카메라의 상태는, 메커니컬 오 프 상태(G3), 서스펜션 상태(S3), 하이버네이션 상태(S4), 소프트 오프 상태(S5), 촬영 처리 실행 상태, 열람 처리 실행 상태, 설정 처리 실행 상태, 또는 다른 처리를 실행하는 상태 중 어느 하나이다.
촬영 처리 실행 상태에서는, 촬영 처리 프로그램(81)이 호스트 CPU(11)에 의해 실행되고 있다. 열람 처리 실행 상태에서는, 열람 처리 프로그램(82)이 호스트 CPU(11)에 의해 실행되고 있다. 설정 처리 실행 상태에서는, 설정 처리 프로그램(83)이 호스트 CPU(11)에 의해 실행되고 있다.
다른 처리를 실행하는 상태에서는, USB 매스 스토리지 클래스 처리 프로그램(84)이 호스트 CPU(11)에 의해 실행되고 있다. 또는, 다른 처리를 실행하는 상태에서는, 어플리케이션 프로그램(62)이 호스트 CPU(11)에 의해 실행되고 있지만, 촬영 처리 프로그램(81), 열람 처리 프로그램(82), 설정 처리 프로그램(83), 및 USB 매스 스토리지 클래스 처리 프로그램(84)의 모두가 실행되지 않는다.
서스펜션 상태(S3), 하이버네이션 상태(S4), 및 소프트 오프 상태(S5)는, 휴지 상태라고 칭한다. 또한, 촬영 처리 실행 상태, 열람 처리 실행 상태, 설정 처리 실행 상태, 및 다른 처리를 실행하는 상태는, 동작 상태(S0)라고 칭한다.
도 7은, 동작 상태(S0), 서스펜션 상태(S3), 하이버네이션 상태(S4), 소프트 오프 상태(S5), 및 메커니컬 오프 상태(G3)의 각각에서의, 호스트 CPU(11), SDRAM(29), 또는 임베디드 컨트롤러(33)에의 전원의 공급의 유무를 도시하는 도면이다.
도 7중 "ON"은, 전원이 공급되어 있는 것을 나타내고, "OFF"는, 전원의 공급 이 정지되어 있는 것, 즉, 전원이 공급되지 않는 것을 나타낸다.
동작 상태(S0)에서, DC-DC 컨버터(34)로부터, 호스트 CPU(11), SDRAM(29), 및 임베디드 컨트롤러(33)의 전부에 전원이 공급된다.
서스펜션 상태(S3)에서, DC-DC 컨버터(34)로부터의 호스트 CPU(11)에의 전원의 공급은 정지되고, DC-DC 컨버터(34)로부터, SDRAM(29) 및 임베디드 컨트롤러(33)에 전원이 공급된다. SDRAM(29)은, 그 셀프 리프레시 기능에 의해, 전원이 공급되면 기억하고 있는 데이터(프로그램)를 자기 자신이 리프레시하기 때문에, 서스펜션 상태(S3)에서, 기억하고 있는 프로그램 및 데이터를 유지한다.
하이버네이션 상태(S4) 및 소프트 오프 상태(S5)에서, DC-DC 컨버터(34)로부터의 호스트 CPU(11) 및 SDRAM(29)에의 전원의 공급은 정지되고, DC-DC 컨버터(34)로부터 임베디드 컨트롤러(33)에 전원이 공급된다.
디지털 스틸 카메라에서, 하이버네이션 상태(S4)과 소프트 오프 상태(S5)는, 전기적으로 같은 상태이므로, 이하의 설명에서, 하이버네이션 상태(S4)과 소프트 오프 상태(S5)를 구별하지 않는다.
메커니컬 오프 상태(G3)에서, DC-DC 컨버터(34)로부터의, 호스트 CPU(11), SDRAM(29), 및 임베디드 컨트롤러(33)에의 전원의 공급은 정지된다. 단, 임베디드 컨트롤러(33)에는, 배터리(36)로부터 전원이 공급된다. 이로써, 임베디드 컨트롤러(33)에 내장되어 있는 리얼타임 클록(RTC)의 동작이 유지된다.
또한, 리얼타임 처리용 CPU(12)에의 전원은, 호스트 CPU(11)에의 전원과 마찬가지로, 동작 상태(S0)에서 공급되고, 서스펜션 상태(S3), 하이버네이션 상 태(S4), 소프트 오프 상태(S5), 및 메커니컬 오프 상태(G3)에서 공급이 정지된다.
도 8은, 상태 천이를 설명하는 도면이다. 메커니컬 오프 상태(G3)에서, 배터리(35)가 장착되면, 디지털 스틸 카메라의 상태는, 하이버네이션 상태(S4)(소프트 오프 상태(S5))으로 천이한다.
하이버네이션 상태(S4)(소프트 오프 상태(S5))에서, 배터리(35)가 분리되면, 디지털 스틸 카메라의 상태는, 메커니컬 오프 상태(G3)로 천이한다.
하이버네이션 상태(S4)(소프트 오프 상태(S5))에서, 입력부(31)의 전원 버튼이 가압되면, 디지털 스틸 카메라의 상태는, 동작 상태(S0)로 천이한다. 역으로, 동작 상태(S0)에서, 전원 버튼이 오래 눌리면, 즉 미리 결정된 시간보다 오래 계속해서 가압되면, 디지털 스틸 카메라의 상태는, 하이버네이션 상태(S4)(소프트 오프 상태(S5))으로 천이한다.
동작 상태(S0)에서, 전원 버튼이 가압되거나, 렌즈 캡이 닫히거나, 또는 미리 결정된 시간보다 오래 사용자에 의한 조작이 되지 않으면, 디지털 스틸 카메라의 상태는, 서스펜션 상태(S3)로 천이한다.
서스펜션 상태(S3)에서, 전원 버튼이 가압되거나, 입력부(31)의 무선 LAN 버튼이 가압되거나, 렌즈 캡이 열리거나, 또는 한쪽의 단말이 다른 기기에 접속되어 있는 케이블의 다른쪽의 단말이 USB 접속 단자(41)에 접속되면, 디지털 스틸 카메라의 상태는, 동작 상태(S0)로 천이한다.
서스펜션 상태(S3)에서, 배터리(35)의 전압이 미리 정한 임계치보다 낮아지거나, 또는 서스펜션 상태(S3)로 천이하고 나서 미리 정한 길이의 시간, 즉 장시간 이 경과하면, 디지털 스틸 카메라의 상태는, 하이버네이션 상태(S4)(소프트 오프 상태(S5))으로 천이한다.
또한, 서스펜션 상태(S3)에서 배터리(35)가 분리되면, 디지털 스틸 카메라의 상태는 메커니컬 오프 상태(G3)로 천이한다. 마찬가지로, 동작 상태(S0)에서, 배터리(35)가 분리되면, 디지털 스틸 카메라의 상태는, 메커니컬 오프 상태(G3)로 천이한다.
또한, 동작 상태(S0)에서, 일정 시간 처리가 실행되지 않으면(아이들이 되면), 디지털 스틸 카메라의 상태는, 호스트 CPU(11)의 클록의 주파수를 떨어뜨린, 이른바 아이들 상태로 천이한다. 아이들 상태에서는, 일정한 기간마다 인터럽트가 들어가, 디지털 스틸 카메라의 상태는, 일정한 기간마다 동작 상태(S0)가 된다.
도 9를 참조하여, 동작 상태(S0)의 상세를 설명한다. 동작 상태(S0)에는, 촬영 처리 실행 상태, 열람 처리 실행 상태, 및 설정 처리 실행 상태에 더하여, 다른 처리를 실행하는 상태에 상당하는, USB 매스 스토리지 클래스 처리 실행 상태, 및 초기 상태(S0N)가 포함된다.
USB 매스 스토리지 클래스 처리 실행 상태에서는, USB 매스 스토리지 클래스 처리 프로그램(84)이 호스트 CPU(11)에 의해 실행되고 있다.
초기 상태(S0N)는, 어플리케이션의 처리의 실행이 억제된 상태이다. 초기 상태(S0N)에서, 어플리케이션 프로그램(62)이 호스트 CPU(11)에 의해 실행되고 있지만, 촬영 처리 프로그램(81), 열람 처리 프로그램(82), 설정 처리 프로그램(83), 또는 USB 매스 스토리지 클래스 처리 프로그램(84)은 모두 실행되지 않는다.
디지털 스틸 카메라는, 초기 상태(S0N)로부터, 촬영 처리 실행 상태, 열람 처리 실행 상태, 설정 처리 실행 상태, 또는 USB 매스 스토리지 클래스 처리 실행 상태의 어느 하나로 천이할 수 있고, 촬영 처리 실행 상태, 열람 처리 실행 상태, 설정 처리 실행 상태, 또는 USB 매스 스토리지 클래스 처리 실행 상태로부터, 초기 상태(S0N)로 천이할 수 있다.
디지털 스틸 카메라는, 촬영 처리 실행 상태로부터, 열람 처리 실행 상태, 설정 처리 실행 상태, 또는 USB 매스 스토리지 클래스 처리 실행 상태로 직접 천이할 수 없고, 또한, 열람 처리 실행 상태로부터, 촬영 처리 실행 상태, 설정 처리 실행 상태, 또는 USB 매스 스토리지 클래스 처리 실행 상태로 직접 천이할 수는 없다. 설정 처리 실행 상태로부터, 열람 처리 실행 상태, 촬영 처리 실행 상태, 또는 USB 매스 스토리지 클래스 처리 실행 상태로 직접 천이할 수 없고, USB 매스 스토리지 클래스 처리 실행 상태로부터, 촬영 처리 실행 상태, 열람 처리 실행 상태, 또는 설정 처리 실행 상태로 직접 천이할 수는 없다.
즉, 촬영 처리 실행 상태와, 열람 처리 실행 상태와, 설정 처리 실행 상태와, USB 매스 스토리지 클래스 처리 실행 상태 사이에서는 직접 천이할 수는 없다.
다음에, 도 10 내지 도 12를 참조하여, 기동의 처리의 순서의 개요를 설명한다.
우선, 휴지하기 이전의 동작 상태(S0)에서 SDRAM(29)에 기억되어 있던 프로그램의 이미지인 웜 부트 이미지로서, NAND형 플래시 메모리(17)에 기억되어 있는 웜 부트 이미지를 SDRAM(29)에 로드하고 실행함으로써 기동하는 웜 부트의 기동에 관해 설명한다.
도 10은, 웜 부트의 기동의 처리의 순서를 도시하는 도면이다. 시각(t0)에서, 호스트 CPU(11)의 리셋이 해제되면, 호스트 CPU(11)는, 마스크 ROM(13)의 미리 정한 번지에 격납되어 있는 부트 로더의 실행을 시작한다. 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는 2차 부트 로더를 SDRAM(29)에 로드한다. 부트 로더의 점프 명령에 의해, 호스트 CPU(11)는, 2차 부트 로더의 실행을 시작한다.
2차 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는, 리얼타임 처리용 CPU(12)에 실행되는 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 SDRAM(29)에 로드한다.
그리고, 2차 부트 로더를 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 리셋을 해제한다.
리셋이 해제된 리얼타임 처리용 CPU(12)는, 시각(t1)에서, SDRAM(29)의 미리 정한 번지로부터 프로그램의 명령의 실행을 시작함으로써, 오퍼레이팅 시스템(141)의 실행을 시작한다.
2차 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는, 웜 부트 이미지를 SDRAM(29)에 로드한다.
웜 부트 이미지의 SDRAM(29)에의 로드가 완료되면, 시각(t2)에서, 호스트 CPU(11)는, 로드된 웜 부트 이미지에 포함되어 있는 전원 관리 기구(73)의 실행을 시작한다. 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, DC-DC 컨버터(34) 및 배터리(35)를 포함하는 전원의 상태를 검출하여, 검출한 전원의 상태에 맞추어 내부의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
전원 관리 기구(73)의 복귀의 처리가 완료되면, 시각(t3)에서, 호스트 CPU(11)는, 로드된 웜 부트 이미지에 포함되어 있는 커널(71)의 실행을 시작한다. 커널(71)을 실행하는 호스트 CPU(11)는, SDRAM(29)의 기억 공간의 점유의 상태 등을 검출하여, SDRAM(29) 등의 자원의 관리의 프로세스의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
커널(71)의 복귀의 처리가 완료되면, 시각(t4)에서, 호스트 CPU(11)는, 로드된 웜 부트 이미지에 포함되어 있는 디바이스 드라이버(72)의 복귀의 처리의 실행을 시작한다. 즉, 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 각각의 디바이스의 상태를 검출하여, 검출한 디바이스의 상태에 맞추어 디바이스 드라이버(72)의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
디바이스 드라이버(72)의 복귀의 처리가 완료되면, 호스트 CPU(11)는, 디바이스 드라이버(72)의 복귀의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다.
호스트 CPU(11)로부터의 디바이스 드라이버(72)의 복귀의 처리가 완료된 것의 통지를 수신하면, 리얼타임 처리용 CPU(12)는 리얼타임 처리 프로그램(171)을 실행함으로써 실행되는 리얼타임 처리의 제어의 처리와, 호스트 CPU(11)에서의 처 리의 통신이 시작된다.
또한, 디바이스 드라이버(72)의 복귀의 처리가 완료되면, 시각(t5)에서, 호스트 CPU(11)는, 로드된 웜 부트 이미지에 포함되는 어플리케이션 프로그램(62)의 복귀의 처리를 시작한다. 호스트 CPU(11)는, 셔터 스피드, 노출, 또는 줌 등의 설정치를 설정하는 등의, 어플리케이션 프로그램(62)의 복귀의 처리를 행한다.
어플리케이션 프로그램(62)의 복귀의 처리가 완료되면, 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 복귀의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다. 어플리케이션 프로그램(62)의 전원 관리 프로그램(86)은, 전원 관리 기구(73)로부터 전원의 상태를 나타내는 파라미터를 취득하는 등으로, 전원의 상태의 감시를 시작한다.
도 11은 휴지하기 직전의 동작 상태(S0)에서 SDRAM(29)에 기억되어 있던 프로그램으로서, 서스펜션 상태(S3)에서 SDRAM(29)에 기억되어 있는 프로그램을 실행함으로써 기동하는 핫 부트의 기동의 처리의 순서를 도시하는 도면이다.
또한, SDRAM(29)은, 휴지하기 직전의 동작 상태(S0)에서 기억하고 있던 오퍼레이팅 시스템(61), 어플리케이션 프로그램(62), 오퍼레이팅 시스템(141), 및 어플리케이션 프로그램(142)의 기억을, 서스펜션 상태(S3) 및 핫 부트의 기동의 처리의 시작 후에 유지한다.
시각(t0)에서, 호스트 CPU(11)의 리셋이 해제되면, 호스트 CPU(11)는, 마스크 ROM(13)의 미리 정한 번지에 격납되어 있는 부트 로더의 실행을 시작한다. 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는 2 차 부트 로더를 SDRAM(29)에 로드한다. 부트 로더의 점프 명령에 의해, 호스트 CPU(11)는, 2차 부트 로더의 실행을 시작한다.
상술한 바와 같이, SDRAM(29)이, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 기억을, 서스펜션 상태(S3) 및 핫 부트의 기동의 처리의 시작 후에 유지하고 있기 때문에, 핫 부트의 기동의 처리에서, 2차 부트 로더를 실행하는 호스트 CPU(11)가 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 SDRAM(29)으로 다시 로드할 필요는 없다.
2차 부트 로더를 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 리셋을 해제한다.
리셋이 해제된 리얼타임 처리용 CPU(12)는, 시각(t1)에서, SDRAM(29)의 미리 정한 번지로부터 프로그램의 명령의 실행을 시작함으로써, 오퍼레이팅 시스템(141)의 실행을 시작한다.
리얼타임 처리용 CPU(12)의 리셋을 해제한 후, 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 전원 관리 기구(73)의 실행을 시작한다. 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, DC-DC 컨버터(34) 및 배터리(35)를 포함하는 전원의 상태를 검출하고, 검출한 전원의 상태에 맞추어 내부의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
전원 관리 기구(73)의 복귀의 처리가 완료되면, 시각(t2)에서, 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 커널(71)의 실행을 시작한다. 커널(71)을 실행하는 호스트 CPU(11)는, SDRAM(29)의 기억 공간의 점유의 상태 등을 검출하여, SDRAM(29) 등의 자원의 관리의 프로세스의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
커널(71)의 복귀의 처리가 완료되면, 시각(t3)에서, 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 디바이스 드라이버(72)의 복귀의 처리의 실행을 시작한다. 즉, 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 각각의 디바이스의 상태를 검출하여, 검출한 디바이스의 상태에 맞추어 디바이스 드라이버(72)의 파라미터를 수정하는 등의 복귀의 처리를 행한다.
디바이스 드라이버(72)의 복귀의 처리가 완료되면, 호스트 CPU(11)는, 디바이스 드라이버(72)의 복귀의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다.
호스트 CPU(11)로부터의 디바이스 드라이버(72)의 복귀의 처리가 완료된 것의 통지를 수신하면, 리얼타임 처리용 CPU(12)는 리얼타임 처리 프로그램(171)을 실행함으로써 실행되는 리얼타임 처리의 제어의 처리와, 호스트 CPU(11)에서의 처리의 통신이 시작된다.
또한, 디바이스 드라이버(72)의 복귀의 처리가 완료되면, 시각(t4)에서, 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 어플리케이션 프로그램(62)의 복귀의 처리의 실행을 시작한다. 호스트 CPU(11)는, 셔터 스피드, 노출, 또는 줌 등의 설정치를 설정하는 등의, 어플리케이션 프로그램(62)의 복귀의 처리를 행한다.
어플리케이션 프로그램(62)의 복귀의 처리가 완료되면, 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 복귀의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다. 어플리케이션 프로그램(62)의 전원 관리 프로그램(86)은, 전원 관리 기구(73)로부터 전원의 상태를 나타내는 파라미터를 취득하는 등으로, 전원의 상태의 감시를 시작한다.
이와 같이, 핫 부트의 기동의 처리에서는, 웜 부트 이미지를 NAND형 플래시 메모리(17)로부터 판독하여, SDRAM(29)에 로드하는 등의 처리가 불필요해지기 때문에, 웜 부트의 기동의 처리에 비교하여, 더욱더 신속하게 기동할 수 있다.
다음에, 디지털 스틸 카메라를 출하하기 전에 공장에서 실행되거나, 또는, 이른바 펌 웨어를 업데이트할 때에 실행되는 기동의 방식인, NAND형 플래시 메모리(17)에 기억되어 있는, 오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)을 열어서 기동하는 콜드 부트에 관해 설명한다.
도 12는, 콜드 부트의 기동의 처리의 순서를 도시하는 도면이다.
시각(t0)에서, 호스트 CPU(11)의 리셋이 해제되면, 호스트 CPU(11)는, 마스크 ROM(13)의 미리 정한 번지에 격납되어 있는 부트 로더의 실행을 시작한다. 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는 2차 부트 로더를 SDRAM(29)에 로드한다. 부트 로더의 점프 명령에 의해, 호스트 CPU(11)는, 2차 부트 로더의 실행을 시작한다.
2차 부트 로더를 실행하는 호스트 CPU(11)는, 시각(t1)에서, NAND형 플래시 메모리(17)에 기억되어 있는 오퍼레이팅 시스템(141) 및 어플리케이션 프로그 램(142)의 SDRAM(29)에의 로드를 시작한다.
2차 부트 로더를 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)에 실행되는 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 SDRAM(29)에의 로드가 완료되면, 리얼타임 처리용 CPU(12)의 리셋을 해제한다.
리셋이 해제된 리얼타임 처리용 CPU(12)는, 시각(t2)에서, SDRAM(29)의 미리 정한 번지로부터 프로그램의 명령의 실행을 시작함으로써, 오퍼레이팅 시스템(141)의 실행을 시작한다.
또한, 2차 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는 오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)을, SDRAM(29)에 로드한다.
오퍼레이팅 시스템(61) 및 어플리케이션 프로그램(62)의 SDRAM(29)에의 로드가 완료되면, 시각(t3)에서, 호스트 CPU(11)는, SDRAM(29)에 로드된 전원 관리 기구(73)의 실행을 시작한다. 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, DC-DC 컨버터(34) 및 배터리(35)를 포함하는 전원의 상태를 검출하여, 검출한 전원의 상태에 맞추어 내부의 파라미터를 초기화하는 등의 초기화의 처리를 행한다.
전원 관리 기구(73)의 초기화의 처리가 완료되면, 시각(t4)에서, 호스트 CPU(11)는, SDRAM(29)에 로드된 커널(71)의 실행을 시작한다. 커널(71)을 실행하는 호스트 CPU(11)는, SDRAM(29)의 기억 공간의 크기(어드레스의 범위) 등을 검출하여, SDRAM(29) 등의 자원의 관리의 프로세스의 파라미터를 초기화하는 등의 초기화의 처리를 행한다.
커널(71)의 초기화의 처리가 완료되면, 시각(t5)에서, 호스트 CPU(11)는, SDRAM(29)에 로드된 디바이스 드라이버(72)의 초기화의 처리를 시작한다. 즉, 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 각각의 디바이스를 검출하여, 검출한 디바이스에 맞추어 디바이스 드라이버(72)의 파라미터를 초기화하는 등의 초기화의 처리를 행한다.
디바이스 드라이버(72)의 초기화의 처리가 완료되면, 호스트 CPU(11)는, 디바이스 드라이버(72)의 초기화의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다.
호스트 CPU(11)로부터의 디바이스 드라이버(72)의 초기화의 처리가 완료된 것의 통지를 수신하면, 리얼타임 처리용 CPU(12)는 리얼타임 처리 프로그램(171)을 실행함으로써 실행되는 리얼타임 처리의 제어의 처리와, 호스트 CPU(11)에서의 처리의 통신이 시작된다.
또한, 디바이스 드라이버(72)의 초기화의 처리가 완료되면, 시각(t6)에서, 호스트 CPU(11)는, SDRAM(29)에 로드된 어플리케이션 프로그램(62)의 초기화의 처리를 시작한다. 호스트 CPU(11)는, 촬영 처리 또는 열람 처리에 이용하는 각종의 파라미터를 디폴트의 값으로 설정하는 등의, 어플리케이션 프로그램(62)의 초기화의 처리를 행한다.
어플리케이션 프로그램(62)의 초기화의 처리가 완료되면, 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 초기화의 처리가 완료된 것을 리얼타임 처리용 CPU(12)에 통지한다. 어플리케이션 프로그램(62)의 전원 관리 프로그램(86)은, 전원 관리 기구(73)로부터 전원의 상태를 나타내는 파라미터를 취득하는 등으로, 전원의 상태의 감시를 시작한다.
또한, 호스트 CPU(11)는, 웜 부트 이미지를 생성하여, 생성한 웜 부트 이미지를 NAND형 플래시 메모리(17)에 기억시킨다.
이와 같이, 펌 웨어를 업데이트할 때 등, 콜드 부트의 기동의 처리가 실행되어, NAND형 플래시 메모리(17)에 기억되어 있는 웜 부트 이미지가 갱신된다.
또한, 초기화가 완료된 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)가, NAND형 플래시 메모리(17)에 기억되어 있는 어플리케이션 프로그램(62)을, SDRAM(29)에 로드하도록 하여도 좋다.
다음에, 도 13을 참조하여, 동작 상태(S0)로부터 휴지 상태로 천이하는 휴지의 처리의 순서의 개요를 설명한다.
시각(t0)에서, 휴지의 처리의 시작이 지시되면, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 휴지 상태로 천이하기 전에, 상태를 초기 상태(S0N)로 천이시킨다. 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 서스펜션 상태(S3)로 천이하는지, 또는 하이버네이션 상태(S4)으로 천이하는지를 결정한다.
또한, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 촬영한 화상의 데이터를 격납하는 파일을 닫는 등의 종료 처리를 실행한다.
또한, 시각(t1)에서, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11) 는, 리얼타임 처리용 CPU(12)에 종료를 통지한다.
그러면, 리얼타임 처리용 CPU(12)는, 도시하지 않은 광학계를 구성하는 렌즈를 종료 위치로 되돌리는 등의 종료의 처리를 시작한다.
또한, 어플리케이션 프로그램(62)의 전원 관리 프로그램(86)은, 결정한 서스펜션 상태(S3) 또는 하이버네이션 상태(S4)에의 천이를 지시하는 커맨드를 발행함으로써, 전원 관리 기구(73)에 종료를 통지한다.
어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)에 의한 종료의 처리가 완료되면, 시각(t2)에서, 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 디바이스를 제어하기 위한 프로세스를 종료시키는 등, 디바이스 드라이버(72)의 종료의 처리를 시작한다.
디바이스 드라이버(72)의 종료의 처리가 완료되면, 시각(t3)에서, 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 디바이스의 감시, SDRAM(29) 등의 자원의 관리, 인터럽트 처리, 또는 프로세스 사이 통신 등의 소정의 프로세스를 완료시키는 커널(71)의 종료의 처리를 시작한다.
커널(71)의 종료의 처리가 완료되면, 시각(t4)에서, 호스트 CPU(11)는, 휴지 상태에서의 파라미터를 설정하는 등의 전원 관리 기구(73)의 종료의 처리를 시작한다.
리얼타임 처리용 CPU(12)로부터 종료의 처리의 완료가 통지되면, 시각(t5)에서, 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에 전원의 공급 정지(차단)를 요구한다. 임베디드 컨트롤러(33)는, 호스트 CPU(11)로부터 전원의 공급 정지가 요구되면, 시각(t6)에서, 서스펜션 상태(S3)로 천이하는 경우, DC-DC 컨버터(34)에, SDRAM(29)에의 전원의 공급을 유지시킨 채로, 호스트 CPU(11) 및 리얼타임 처리용 CPU(12)에의 전원의 공급을 정지(차단)시키고, 하이버네이션 상태(S4)으로 천이하는 경우, DC-DC 컨버터(34)에, SDRAM(29), 호스트 CPU(11), 및 리얼타임 처리용 CPU(12)에의 전원의 공급을 정지시킨다.
이와 같이, 서스펜션 상태(S3) 또는 하이버네이션 상태(S4)으로 천이하여 휴지할 수 있다.
다음에, 웜 부트, 핫 부트, 및 콜드 부트의 기동의 처리의 상세를 각각 설명한다.
도 14 내지 도 16은, 웜 부트의 기동의 처리의 상세를 설명하는 플로우 차트이다. 단계 S101에서, 기동 방식 결정 정보 취득 프로그램(203)을 실행하는 임베디드 컨트롤러(33)는, 기동의 요인이 되는 입력부(31)로부터의 신호를 취득한다. 즉, 기동 방식 결정 정보 취득 프로그램(203)은, 입력부(31)로부터 공급되는, 기동의 요인이 되는, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압, 또는 렌즈 캡의 개폐를 나타내는 신호를 취득한다. 기동 방식 결정 정보 취득 프로그램(203)을 실행하는 임베디드 컨트롤러(33)는, 취득한 신호에 따라, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압, 또는 렌즈 캡을 여는 것 등의 기동의 트리거를 나타내는 기동 트리거 정보를 생성한다.
단계 S102에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 단계 S101에서 취득한 신호에 따라 생성된 기동 트리거 정보를 내부의 메모리에 기억한다. 즉, 기동 방식 결정 정보 취득 프로그램(203)에 의해, 기동의 요인이 되는, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압 또는 렌즈 캡의 개폐를 나타내는 신호가 입력부(31)로부터 취득되면, 전원 버튼, 무선 LAN 버튼, 또는 USB 버튼의 가압 또는 렌즈 캡을 여는 것 등의 기동의 트리거를 나타내는 기동 트리거 정보가 생성되기 때문에, 기동 방식 결정 정보 기억 처리 프로그램(204)은, 생성된 기동 트리거 정보를 임베디드 컨트롤러(33)의 내부의 메모리에 기억한다.
단계 S103에서, 전원 제어 프로그램(201)을 실행하는 임베디드 컨트롤러(33)는, DC-DC 컨버터(34)에, 디지털 스틸 카메라의 각 부분에의 전력의 공급을 시작시킨다. 이로써, 호스트 CPU(11) 내지 범용 입출력부(32)에의 전원의 공급이 시작된다.
단계 S104에서, 임베디드 컨트롤러(33)는, 공급되는 전원 및 전원의 공급이 시작된 각 부분의 동작이 안정될 때까지, 미리 정한 소정의 시간 웨이트한다.
단계 S105에서, 다른 CPU 리셋 제어 프로그램(202)을 실행하는 임베디드 컨트롤러(33)는, 호스트 CPU(11)의 리셋을 해제한다. 예를 들면, 임베디드 컨트롤러(33)는, 임베디드 컨트롤러(33)와 호스트 CPU(11)를 접속하는, 리셋 신호를 공급하기 위한 신호선의 그 리셋 신호의 레벨을 변화시킴에 의해, 호스트 CPU(11)의 리셋을 해제한다.
리셋이 해제되면, 단계 S201에서 호스트 CPU(11)는 마스크 ROM(13)의 부트 로더를 기동하여, 부트 로더의 실행을 시작한다. 즉, 호스트 CPU(11)는, 리셋 해제의 하드웨어 인터럽트에 의해, 마스크 ROM(13)의 미리 정해진 번지에 격납되어 있는 명령을 실행함으로써, 부트 로더를 기동한다. 단계 S202에서, 호스트 CPU(11)는, 부트 로더를 초기화한다.
단계 S203에서, 부트 로더를 실행하는 호스트 CPU(11)는, NAND형 플래시 메모리(17)에 기억되어 있는 2차 부트 로더(101)를 SDRAM(29)에 로드한다. 단계 S204에서, 호스트 CPU(11)는, 부트 로더에 포함되는 명령인, 2차 부트 로더(101)로의 점프의 명령을 실행하고, 절차는, 2차 부트 로더(101)로 점프한다. 그 결과, 호스트 CPU(11)는, 2차 부트 로더(101)의 실행을 시작한다.
또한, 2차 부트 로더(101)를 마스크 ROM(13)에 기억시키고, 마스크 ROM(13)에 기억되어 있는 2차 부트 로더(101)로 점프하도록 하여도 좋다.
단계 S205에서, 호스트 CPU(11)는, 2차 부트 로더(101)를 초기화한다. 2차 부트 로더(101)에는, 시리얼 인터페이스(19)의 드라이버가 포함되어 있기 때문에, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)와 임베디드 컨트롤러(33)의 통신이 가능해진다.
단계 S206에서, 2차 부트 로더(101)의 기동 방식 결정 정보 취득 프로그램(121)을 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에, 기동 방식 결정 정보의 요구를 송신한다.
단계 S106에서, 기동 방식 결정 정보 제공 프로그램(205)을 실행하는 임베디 드 컨트롤러(33)는, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)로부터 송신되어 오는 기동 방식 결정 정보의 요구를 수신한다. 단계 S107에서, 기동 방식 결정 정보 제공 프로그램(205)을 실행하는 임베디드 컨트롤러(33)는, 임베디드 컨트롤러(33)의 내부의 메모리에 기억되어 있는 기동 방식 결정 정보를, 시리얼 인터페이스(19)를 통하여 호스트 CPU(11)에 송신한다.
단계 S207에서, 2차 부트 로더(101)의 기동 방식 결정 정보 취득 프로그램(121)을 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)로부터 송신되어 오는 기동 방식 결정 정보를 수신한다.
단계 S208에서, 2차 부트 로더(101)의 기동 방식 결정 정보 취득 프로그램(121)을 실행하는 호스트 CPU(11)는, 수신한 기동 방식 결정 정보를 SDRAM(29)에 기억시킨다. 이 경우, 호스트 CPU(11)는, SDRAM(29)의 기억 영역중, 미리 정한 영역에 기동 방식 결정 정보를 기억시킨다.
단계 S209에서, 2차 부트 로더(101)의 기동 방식 결정 프로그램(122)을 실행하는 호스트 CPU(11)는, 단계 S207의 수신에 의해 취득한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 웜 부트의 기동의 방식으로, 기동의 방식이 결정된다. 또한, 기동 방식 결정 프로그램(122)은, 휴지 상태 정보가 서스펜션 상태(S3)를 나타냄과 함께 배터리 착탈 정보가 배터리가 분리된 것을 나타내는 경우, 또는 휴지 상태 정보가 하이버네이션 상태(S4)를 나타내는 경우, 기동의 방식을 웜 부트의 기동의 방식으로 결정한다.
단계 S210에서, 2차 부트 로더(101)를 실행하는 호스트 CPU(11)는, 범용 입 출력부(32)를 초기화한다.
단계 S211에서, 2차 부트 로더(101)의 설정치 판독 프로그램(123)을 실행하는 호스트 CPU(11)는, 기동에서의 복귀에서 필요하게 되는, 셔터 스피드나 노출, 줌, 또는 촬영하는 화상의 사이즈나 부호화할 때의 압축률 등의 설정치를 NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
단계 S212에서, 2차 부트 로더(101) 외에 CPU 프로그램 판독 프로그램(124)을 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
단계 S213에서, 2차 부트 로더(101)를 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 리셋을 해제한다.
리셋이 해제되면, 단계 S301에서, 리얼타임 처리용 CPU(12)는, SDRAM(29)에 로드되어 있는 오퍼레이팅 시스템(141)의 실행을 시작한다. 즉, 예를 들면, 리얼타임 처리용 CPU(12)는, 리셋 해제의 하드웨어 인터럽트 또는 소프트웨어 인터럽트에 의해, SDRAM(29)의 미리 정해진 번지에 격납되어 있는 명령을 실행함으로써, 오퍼레이팅 시스템(141)의 실행을 시작한다. 단계 S302에서, 호스트 CPU(11)는, 오퍼레이팅 시스템(141)을 초기화한다.
단계 S303에서, 오퍼레이팅 시스템(141)의 기동 방식 결정 정보 취득 프로그램(161)을 실행하는 리얼타임 처리용 CPU(12)는, SDRAM(29)으로부터, 단계 S208에서 기억된 기동 방식 결정 정보를 판독한다. 단계 S304에서, 오퍼레이팅 시스 템(141)의 기동 방식 결정 프로그램(162)을 실행하는 리얼타임 처리용 CPU(12)는, 단계 S209와 같은 처리로, 단계 S303에서 판독한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 웜 부트의 기동의 방식으로, 기동의 방식이 결정된다.
단계 S305에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 어플리케이션 프로그램(142)을 기동한다. 단계 S306에서, 리얼타임 처리용 CPU(12)는, 어플리케이션 프로그램(142)을 초기화한다.
단계 S307에서, 어플리케이션 프로그램(142)을 실행하는 리얼타임 처리용 CPU(12)는, 그래픽 컨트롤러(21)를 제어하고, LCD(20)의 표시를 시작시키고, 도시하지 않은 스피커 또는 버저에 기동음을 출력시킨다.
단계 S308에서, 어플리케이션 프로그램(142)의 기동 화면 표시 프로그램(173)을 실행하는 리얼타임 처리용 CPU(12)는, 그래픽 컨트롤러(21)를 제어하여, LCD(20)에, 기동을 나타내는 기동 화면을 표시시킨다.
단계 S309에서, 어플리케이션 프로그램(142)의 GUI 처리 프로그램(172)을 실행하는 리얼타임 처리용 CPU(12)는, 리얼타임 처리용 CPU(12)가 호스트 CPU(11)와 공용하는 입력부(31)로부터 사용자의 지시가 취득되는 유저 인터페이스의 처리로서, 어플리케이션 프로그램(62)의 기능에 비교하여 적은 기능의, 즉 기능이 한정된 유저 인터페이스의 처리를 시작한다.
단계 S310에서, 어플리케이션 프로그램(142)의 리얼타임 처리 프로그램(171)을 실행하는 리얼타임 처리용 CPU(12)는, 도시하지 않은 광학계, CCD(14), 아날로 그 프런트 엔드(15), 및 신호 처리부(16)에 대한 리얼타임 처리의 제어의 처리를 시작한다.
또한, 단계 S310에서, 기동 방식 결정 정보중 기동 트리거 정보를 참조하여, 렌즈 캡이 열림에 의해 기동된 경우, 리얼타임 처리의 제어의 처리로서, 도시하지 않은 광학계, CCD(14), 아날로그 프런트 엔드(15), 및 신호 처리부(16)의 초기화의 처리를 행하도록 하여도 좋다.
리얼타임 처리용 CPU(12)에 의해 실행되는 단계 S301 내지 단계 S310과 병행하여, 호스트 CPU(11)에 의해 단계 S214 내지 단계 S218이 실행된다. 즉, 단계 S214에서, 2차 부트 로더(101)의 웜 부트 이미지 판독 프로그램(125)을 실행하는 호스트 CPU(11)는, 웜 부트 이미지를, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
단계 S215에서, 호스트 CPU(11)는, 2차 부트 로더(101)에 포함되는 명령인, 커널(71)로의 점프의 명령을 실행하여, 절차는, 커널(71)로 점프한다. 그 결과, 호스트 CPU(11)는, 오퍼레이팅 시스템(61)의 실행을 시작한다.
단계 S216에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, DC-DC 컨버터(34) 및 배터리(35) 등의 전원의 상태를 검출하고, 검출한 전원의 상태에 맞추어 내부의 파라미터를 수정하는 등의 전원 관리 기구(73)의 복귀의 처리를 실행한다.
단계 S217에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, SDRAM(29)의 기억 공간의 점유의 상태 등을 검출하여, SDRAM(29) 등의 자원의 관리 의 프로세스의 파라미터를 수정하는 등의 커널(71)의 복귀의 처리를 실행한다.
단계 S218에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 각각의 디바이스의 상태를 검출하고, 검출한 디바이스의 상태에 맞추어 디바이스 드라이버(72)의 파라미터를 수정하는 등의 디바이스 드라이버(72)의 복귀의 처리를 실행한다.
단계 S219에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)에, 디바이스 드라이버(72)의 복귀 처리의 완료의 통지를 송신한다.
단계 S311에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)로부터 송신되어 오는, 디바이스 드라이버(72)의 복귀 처리의 완료의 통지를 수신한다.
또한, 단계 S220에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 실행을 시작한다. 단계 S221에서, 호스트 CPU(11)는, 셔터 스피드, 노출, 또는 줌 등의 설정치를 설정하는 등의, 어플리케이션 프로그램(62)의 복귀의 처리를 실행한다.
또한, 단계 S221의 후, 디지털 스틸 카메라의 상태는, 초기 상태(S0N)로 된다.
단계 S222에서, 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12) 에, 어플리케이션 프로그램(62)의 복귀 처리의 완료의 통지를 송신한다.
단계 S312에서, 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)로부터 송신되어 오는, 어플리케이션 프로그램(62)의 복귀 처리의 완료의 통지를 수신한다.
단계 S313에서, 오퍼레이팅 시스템(141)의 어플리케이션 기동 종료 제어 프로그램(163)을 실행하는 리얼타임 처리용 CPU(12)는, 어플리케이션 프로그램(142)의 GUI 처리 프로그램(172)을 종료시킴에 의해, 기능이 한정된 유저 인터페이스의 처리를 종료시키고, 웜 부트의 기동의 처리는 종료한다.
이와 같이, 웜 부트의 기동의 처리에 의해, 디지털 스틸 카메라는 휴지 상태로부터 초기 상태(S0N)로 신속하게 천이할 수 있다.
다음에, 도 17 내지 도 19의 플로우 차트를 참조하여, 핫 부트의 기동의 처리의 상세를 설명한다.
임베디드 컨트롤러(33)에 의한 단계 S131 내지 단계 S137은, 각각, 도 14의 단계 S101 내지 단계 S107의 각각과 같음으로, 그 설명은 생략한다.
호스트 CPU(11)에 의한 단계 S231 내지 단계 S238은, 각각, 도 14의 단계 S201 내지 단계 S208의 각각과 같음으로, 그 설명은 생략한다.
단계 S239에서, 2차 부트 로더(101)의 기동 방식 결정 프로그램(122)을 실행하는 호스트 CPU(11)는, 단계 S237의 수신에 의해 취득한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 호스트 CPU(11)는, 핫 부트의 기동의 방식으로, 기동의 방식이 결정된다. 또한, 기동 방식 결정 프로그램(122)은, 휴지 상태 정보가 서스펜션 상태(S3)를 나타냄과 함께 배터리 착탈 정보가 배터리가 분리되지 않은 것을 나타내는 경우, 기동의 방식을 핫 부트의 기동의 방식으로 결정한다.
호스트 CPU(11)에 의한 단계 S240 및 단계 S241은, 각각, 도 14 또는 도 15의 단계 S210 및 단계 S211의 각각과 같음으로, 그 설명은 생략한다.
단계 S242에서, 2차 부트 로더(101)를 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 리셋을 해제한다.
리얼타임 처리용 CPU(12)에 의한 단계 S331 내지 단계 S333은, 각각, 도 15의 단계 S301 내지 단계 S303의 각각과 같음으로, 그 설명은 생략한다.
단계 S334에서, 오퍼레이팅 시스템(141)의 기동 방식 결정 프로그램(162)을 실행하는 리얼타임 처리용 CPU(12)는, 단계 S239와 같은 처리로, 단계 S333에서 판독한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 핫 부트의 기동의 방식으로, 기동의 방식이 결정된다.
리얼타임 처리용 CPU(12)에 의한 단계 S335 내지 단계 S338은, 각각, 도 15 또는 도 16의 단계 S305 내지 단계 S308의 각각과 같음으로, 그 설명은 생략한다.
단계 S339에서, 어플리케이션 프로그램(142)의 리얼타임 처리 프로그램(171)을 실행하는 리얼타임 처리용 CPU(12)는, 도시하지 않은 광학계, CCD(14), 아날로그 프런트 엔드(15), 및 신호 처리부(16)에 대한 리얼타임 처리의 제어의 처리를 시작한다.
즉, 이 경우, 리얼타임 처리용 CPU(12)에 의한, GUI 처리 프로그램(172)의 실행은 억제되고, 이로써, 리얼타임 처리용 CPU(12)가 호스트 CPU(11)와 공용하는 입력부(31)로부터 사용자의 지시가 취득되는 유저 인터페이스의 처리로서, 어플리케이션 프로그램(62)의 기능에 비교하여 적은 기능의, 즉 기능이 한정된 유저 인터페이스의 처리의 실행이 억제된다.
핫 부트의 기동에서는, 호스트 CPU(11)가 극히 신속하게 기동하기 때문에, 리얼타임 처리용 CPU(12)가 GUI 처리 프로그램(172)을 실행하지 않도록 한 쪽이, 결과적으로, 보다 신속하게 기동할 수 있게 된다.
리얼타임 처리용 CPU(12)에 의해 실행되는 단계 S331 내지 단계 S339와 병행하여, 호스트 CPU(11)에 의해 단계 S243 내지 단계 S246이 실행된다. 즉, 텝S243에서, 호스트 CPU(11)는, 2차 부트 로더(101)에 포함되는 명령인, 커널(71)로의 점프의 명령을 실행하고, 절차는, 커널(71)로 점프한다. 그 결과, 호스트 CPU(11)는, 오퍼레이팅 시스템(61)의 실행을 시작한다.
호스트 CPU(11)에 의한 단계 S244 내지 단계 S246은, 각각, 도 15 또는 도 16의 단계 S216 내지 단계 S218의 각각과 같음으로 그 설명은 생략한다.
또한, 호스트 CPU(11)에 의한 단계 S247 내지 단계 S250은, 각각, 도 16의 단계 S219 내지 단계 S222의 각각과 같음으로 그 설명은 생략한다. 또한, 리얼타임 처리용 CPU(12)에 의한 단계 S340 및 단계 S341은, 각각, 도 16의 단계 S311 및 단계 S341의 각각과 같음으로 그 설명은 생략한다.
단계 S250의 후의 단계 S251에서, 어플리케이션 프로그램(62)의 상태 천이 처리 프로그램(85)을 실행하는 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 기동 방식 결정 정보중 기동 트리거 정보를 참조하여, 디지털 스틸 카메라의 상태를, 기동 요인에 따른 어플리케이션의 실행 상태로 천이시키고, 핫 부트의 기동의 처리는 종료한다. 예를 들면, 단계 S251에서, 상태 천이 처리 프로그램(85)은, 기동 요인이 입력부(31)의 전원 버튼의 가압인 경우, 열람 처리 프로그램(82)을 기동시켜서, 디지털 스틸 카메라의 상태를 열람 처리 실행 상태로 천이시킨다. 또한, 예를 들면, 단계 S251에서, 상태 천이 처리 프로그램(85)은, 기동 요인이 렌즈 캡을 여는 것인 경우, 촬영 처리 프로그램(81)을 기동시켜서, 디지털 스틸 카메라의 상태를 촬영 처리 실행 상태로 천이시킨다.
이와 같이, 핫 부트의 기동의 처리에 의해, 아주 신속하게 기동함과 함께, 동작 상태(S0)중, 기동 요인에 따른 처리를 실행하는 상태로 천이할 수 있다.
다음에, 도 20 내지 도 22의 플로우 차트를 참조하여, 디지털 스틸 카메라를 출하하기 전에 공장에서 실행되거나, 또는, 이른바 펌 웨어를 업데이트할 때에 실행되는 콜드 부트의 기동의 처리의 상세를 설명한다.
임베디드 컨트롤러(33)에 의한 단계 S161 내지 단계 S167은, 각각, 도 14의 단계 S101 내지 단계 S107의 각각과 같음으로, 그 설명은 생략한다.
호스트 CPU(11)에 의한 단계 S261 내지 단계 S268은, 각각, 도 14의 단계 S201 내지 단계 S208의 각각과 같음으로, 그 설명은 생략한다.
단계 S269에서, 2차 부트 로더(101)의 기동 방식 결정 프로그램(122)을 실행하는 호스트 CPU(11)는, 단계 S267의 수신에 의해 취득한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 콜드 부트의 기동의 방식으로, 기동의 방식이 결정된다.
예를 들면, 단계 S269에서, 기동 방식 결정 프로그램(122)을 실행하는 호스트 CPU(11)는, 휴지 상태 정보에 포함되는 이미지 작성 플래그를 참조하여, 이미지 작성 플래그가 세트되어 있는 경우, 즉, 이미지 작성 플래그가 서 있는 경우, 웜 부트 이미지를 작성할 필요가 있기 때문에, 콜드 부트의 기동의 방식으로, 기동의 방식을 결정한다.
또한, 이미지 작성 플래그는, 업데이트된 펌 웨어가 취득되고, 사용자로부터 펌 웨어의 업데이트가 지시된 경우 등, 후술하는 휴지의 처리에서, 세트된다.
호스트 CPU(11)에 의한 단계 S270 내지 단계 S273은, 각각, 도 14 또는 도 15의 단계 S210 내지 단계 S213의 각각과 같음으로, 그 설명은 생략한다.
리얼타임 처리용 CPU(12)에 의한 단계 S361 내지 단계 S363은, 각각, 도 15의 단계 S301 내지 단계 S303의 각각과 같음으로, 그 설명은 생략한다.
단계 S364에서, 오퍼레이팅 시스템(141)의 기동 방식 결정 프로그램(162)을 실행하는 리얼타임 처리용 CPU(12)는, 단계 S269와 같은 처리로, 단계 S363에서 판독한 기동 방식 결정 정보를 기초로, 기동의 방식을 결정한다. 이 경우, 콜드 부트의 기동의 방식으로, 기동의 방식이 결정된다.
리얼타임 처리용 CPU(12)에 의한 단계 S365 및 단계 S366은, 각각, 도 15의 단계 S305 및 단계 S306의 각각과 같음으로, 그 설명은 생략한다.
단계 S367에서, 어플리케이션 프로그램(142)을 실행하는 리얼타임 처리용 CPU(12)는, 그래픽 컨트롤러(21)를 제어하고, LCD(20)에, 펌 웨어 업데이트중인 취 지를 표시시킨다.
이와 같이 함으로써, 사용자는, 펌 웨어의 업데이트가 행하여지고 있는 것을 알 수 있다.
가령, 펌 웨어 업데이트중인 취지의 표시의 제어를 호스트 CPU(11)에 행하게 하면, 펌 웨어 업데이트중인 취지를 표시시키는 웜 부트 이미지가 생성되어 버리지만, 펌 웨어 업데이트중인 취지의 표시의 제어를, 리얼타임 처리용 CPU(12)가 행하기 때문에, 생성된 웜 부트 이미지를 이용하여, 웜 부트의 기동의 처리가 실행되어도, 펌 웨어 업데이트중인 취지가 표시되는 일은 없다.
단계 S368에서, 어플리케이션 프로그램(142)의 리얼타임 처리 프로그램(171)을 실행하는 리얼타임 처리용 CPU(12)는, 도시하지 않은 광학계, CCD(14), 아날로그 프런트 엔드(15), 및 신호 처리부(16)에 대한 리얼타임 처리의 제어의 처리를 시작한다.
즉, 이 경우, 리얼타임 처리용 CPU(12)에 의한, GUI 처리 프로그램(172)의 실행은 억제되고, 이로써, 리얼타임 처리용 CPU(12)가 호스트 CPU(11)와 공용하는 입력부(31)로부터 사용자의 지시가 취득되는 유저 인터페이스의 처리로서, 어플리케이션 프로그램(62)의 기능에 비교하여 적은 기능의, 즉 기능이 한정된 유저 인터페이스의 처리의 실행이 억제된다. 또한, 이 경우, 리얼타임 처리용 CPU(12)에 의한, 기동 화면 표시 프로그램(173)의 실행은 억제되고, 이로써, LCD(20)에의, 기동을 나타내는 기동 화면의 표시가 억제된다.
리얼타임 처리용 CPU(12)에 의해 실행되는 단계 S361 내지 단계 S368과 병행 하여, 호스트 CPU(11)에 의해 단계 S274 내지 단계 S278이 실행된다. 즉, 단계 S274에서, 2차 부트 로더(101)를 실행하는 호스트 CPU(11)는, 오퍼레이팅 시스템(61)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
단계 S275에서, 호스트 CPU(11)는, 2차 부트 로더(101)에 포함되는 명령인, 커널(71)로의 점프의 명령을 실행하고, 절차는, 커널(71)로 점프한다. 그 결과, 호스트 CPU(11)는, 오퍼레이팅 시스템(61)의 실행을 시작한다.
단계 S276에서, 오퍼레이팅 시스템(61)의 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, DC-DC 컨버터(34) 및 배터리(35) 등의 전원의 상태를 검출하고, 검출한 전원의 상태에 맞추어 내부의 파라미터를 초기화하는 등으로, 전원 관리 기구(73)를 초기화한다.
단계 S277에서, 오퍼레이팅 시스템(61)의 커널(71)을 실행하는 호스트 CPU(11)는, SDRAM(29)의 기억 공간의 점유의 상태 등을 검출하고, SDRAM(29) 등의 자원의 관리의 프로세스의 파라미터를 초기화하는 등으로, 커널(71)을 초기화한다.
단계 S278에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 각각의 디바이스를 검출함과 함께 그 상태를 검출하고, 그 결과에 따라 디바이스 드라이버(72)의 파라미터를 초기화하는 등으로, 디바이스 드라이버(72)를 초기화한다.
단계 S279에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)에, 디바이스 드라이버(72)의 초기화의 완료의 통지를 송신한다.
단계 S369에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)로부터 송신되어 오는, 디바이스 드라이버(72)의 초기화의 완료의 통지를 수신한다.
또한, 단계 S280에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 어플리케이션 프로그램(62)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다. 단계 S281에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 실행을 시작한다.
단계 S282에서, 호스트 CPU(11)는, 어플리케이션 프로그램(62)을 초기화한다. 또한, 단계 S282의 후, 상태는, 초기 상태(S0N)로 된다.
단계 S283에서, 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)에, 어플리케이션 프로그램(62)의 초기화의 완료의 통지를 송신한다.
단계 S370에서, 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)로부터 송신되어 오는, 어플리케이션 프로그램(62)의 초기화의 완료의 통지를 수신한다.
단계 S284에서, 휴지 상태 정보 제공 프로그램(75)을 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에, 이미지 작성 플래그의 클리어의 요구를 송신한다.
단계 S168에서, 기동 방식 결정 정보 취득 프로그램(203)을 실행하는 임베디드 컨트롤러(33)는, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)로부터 송신 되어 오는 이미지 작성 플래그의 클리어의 요구를 수신한다.
단계 S169에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 휴지 상태 정보에 포함되는 이미지 작성 플래그를 클리어한다.
단계 S285에서, 오퍼레이팅 시스템(61)의 웜 부트 이미지 생성 프로그램(78)을 실행하는 호스트 CPU(11)는, SDRAM(29)에 기억되어 있는 프로그램 및 데이터를 판독하여, 웜 부트 이미지를 생성한다. 즉, 웜 부트 이미지 생성 프로그램(78)은, 동작 상태(S0)중 초기 상태(S0N)에서 SDRAM(29)에 로드되어 있는 프로그램 및 데이터를 그대로 데이터로 함으로써, 웜 부트 이미지를 생성한다.
단계 S286에서, 오퍼레이팅 시스템(61)의 웜 부트 이미지 생성 프로그램(78)을 실행하는 호스트 CPU(11)는, 단계 S285에서 생성한 웜 부트 이미지를 NAND형 플래시 메모리(17)에 기억시키고, 콜드 부트의 기동의 처리는 종료한다. 예를 들면, 단계 S286에서, 웜 부트 이미지 생성 프로그램(78)은, NAND형 플래시 메모리(17)에 지금까지 기억하고 있던 웜 부트 이미지에, 생성한 웜 부트 이미지를 재기록하도록, 생성한 웜 부트 이미지를 NAND형 플래시 메모리(17)에 기억시킨다.
이와 같이, 콜드 부트의 기동의 처리에 의해, 업데이트된 펌 웨어를 포함하는 웜 부트 이미지가 생성되어, NAND형 플래시 메모리(17)에 기억된다.
또한, 단계 S286의 후, 즉석에서, 다음에 설명하는 종료의 처리를 실행하도록 하여도 좋다.
또한, 웜 부트 이미지가 정상적으로 생성된 것을 확인한 후에, 호스트 CPU(11)가, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에, 이미지 작성 플래그의 클리어의 요구를 송신하고, 임베디드 컨트롤러(33)가, 이미지 작성 플래그의 클리어의 요구를 수신하고, 휴지 상태 정보에 포함되는 이미지 작성 플래그를 클리어하도록 하여도 좋다. 이와 같이 함으로써, 웜 부트 이미지가 정상적으로 생성된 경우에만, 이미지 작성 플래그가 클리어되게 된다. 즉, 웜 부트 이미지가 더 확실하게 생성된다.
마찬가지로, 웜 부트 이미지가 NAND형 플래시 메모리(17)에 정상적으로 기억되고 나서, 이미지 작성 플래그가 클리어되도록 하여도 좋음은 당연하다.
또한, 콜드 부트의 기동의 처리가 완료되고 나서, 휴지하고, 단계 S285에서 생성된 웜 부트 이미지를 이용하여, 웜 부트의 방식으로 기동하고, 올바르게 기동된 경우, 이미지 작성 플래그가 클리어되도록 하여도 좋다. 이와 같이 함으로써, 웜 부트 이미지를 이용하여 정상적으로 기동된 경우에만, 이미지 작성 플래그가 클리어되게 된다.
예를 들면, 휴지 상태 정보에 이미지 작성 플래그와 함께 포함되는 이미지 생성 완료 플래그로서, 웜 부트 이미지가 생성되었는지의 여부를 나타내는 이미지 생성 완료 플래그가, 웜 부트 이미지가 생성된 경우, 웜 부트 이미지가 생성된 것을 나타내도록 세트되고, 그리고, 다음에 기동하는 경우 세트되어 있는 이미지 생성 완료 플래그와 세트되어 있는 이미지 작성 플래그가 참조되어, 기동의 방식이 웜 부트의 기동의 방식으로 결정되고, 오퍼레이팅 시스템(61)의 복귀의 처리가 완료되어, 어플리케이션 프로그램(62)의 복귀 처리가 완료된 후에, 이미지 생성 완료 플래그와 이미지 작성 플래그가 클리어되도록 하여도 좋다.
또한, 이미지 작성 플래그와 이미지 생성 완료 플래그가 사용되는 경우, 이미지 생성 완료 플래그가 리셋되고, 이미지 작성 플래그가 세트되어 있을 때, 기동의 방식은 콜드 부트의 기동의 방식으로 결정되고, 이미지 생성 완료 플래그가 리셋되고, 이미지 작성 플래그가 리셋되어 있을 때, 기동의 방식은 휴지하는 경우에 결정된 휴지 상태와, 휴지 상태에서의 배터리(35)의 착탈의 이력으로부터 결정된다.
다음에, 도 23의 플로우 차트를 참조하여, 휴지의 처리의 예를 설명한다.
단계 S501에서, 어플리케이션 프로그램(62)의 상태 천이 처리 프로그램(85)을 실행하는 호스트 CPU(11)는, 촬영 처리 프로그램(81), 열람 처리 프로그램(82), 설정 처리 프로그램(83), 또는 USB 매스 스토리지 클래스 처리 프로그램(84)의 실행을 종료시킴에 의해, 디지털 스틸 카메라의 상태를 동작 상태(S0)중 초기 상태(S0N)로 천이시킨다.
단계 S502에서, 오퍼레이팅 시스템(61)의 휴지 상태 결정 프로그램(74)을 실행하는 호스트 CPU(11)는, 천이하려고 하는 휴지 상태를 결정한다. 즉, 휴지 상태 결정 프로그램(74)은, 천이하려고 하는 휴지 상태를 서스펜션 상태(S3) 또는 하이버네이션 상태(S4)의 어느 한쪽으로 결정한다.
예를 들면, 단계 S502에서, 휴지 상태 결정 프로그램(74)은, 배터리(35)의 출력 전압이 미리 정한 임계치 이상이고, 또한, 입력부(31)의 전원 버튼이 가압된 경우, 또는, 배터리(35)의 출력 전압이 미리 정한 임계치 이상이고, 또한, 렌즈 캡 이 닫힌 경우, 천이하려고 하는 휴지 상태를 서스펜션 상태(S3)로 결정한다.
예를 들면, 단계 S502에서, 휴지 상태 결정 프로그램(74)은, 배터리(35)의 출력 전압이 미리 정한 임계치 미만인 경우, 또는 전원 버튼이 미리 결정된 시간보다 길게 계속해서 가압된 경우, 천이하려고 하는 휴지 상태를 하이버네이션 상태(S4)으로 결정한다.
단계 S503에서, 오퍼레이팅 시스템(61)의 휴지 상태 정보 제공 프로그램(75)을 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에, 천이하려고 하는 휴지 상태를 나타내는 휴지 상태 정보를 송신한다.
단계 S601에서, 기동 방식 결정 정보 취득 프로그램(203)을 실행하는 임베디드 컨트롤러(33)는, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)로부터 송신되오 온 휴지 상태 정보를 수신한다. 단계 S602에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 단계 S601에서 수신한 휴지 상태 정보를 임베디드 컨트롤러(33)의 내부의 메모리에 기억한다.
또한, 업데이트된 펌 웨어, 즉 오퍼레이팅 시스템(61) 또는 어플리케이션 프로그램(62)이 취득되고, 사용자로부터 펌 웨어의 업데이트가 지시된 경우, 단계 S503에서, 세트된 이미지 작성 플래그를 포함하는 휴지 상태 정보가 송신되고, 단계 S601에서, 세트된 이미지 작성 플래그를 포함하는 휴지 상태 정보가 수신되고, 단계 S602에서, 세트된 이미지 작성 플래그를 포함하는 휴지 상태 정보가, 임베디드 컨트롤러(33)의 내부의 메모리에 기억된다.
한편, 업데이트된 펌 웨어가 취득되지 않거나, 또는 업데이트된 펌 웨어가 취득되어도, 사용자로부터 펌 웨어의 업데이트가 지시되지 않은 경우, 단계 S503에서, 클리어된 이미지 작성 플래그를 포함하는 휴지 상태 정보가 송신되고, 단계 S601에서, 클리어된 이미지 작성 플래그를 포함하는 휴지 상태 정보가 수신되고, 단계 S602에서, 클리어된 이미지 작성 플래그를 포함하는 휴지 상태 정보가, 임베디드 컨트롤러(33)의 내부의 메모리에 기억된다.
단계 S603에서, 배터리 착탈 검출 프로그램(206)을 실행하는 임베디드 컨트롤러(33)는, DC-DC 컨버터(34)의 출력 전압을 검출함으로써, 배터리(35)의 착탈을 검출한다. 그리고, 기동 방식 결정 정보 취득 프로그램(203)을 실행하는 임베디드 컨트롤러(33)는, 배터리(35)의 착탈의 검출 결과에 따른 배터리 착탈 정보를 생성한다.
단계 S604에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 배터리(35)의 착탈의 검출 결과에 따른 배터리 착탈 정보를 내부의 메모리에 기억한다. 즉, 단계 S604에서, 기동 방식 결정 정보 기억 처리 프로그램(204)은, 배터리(35)가 분리된 경우, 배터리(35)가 분리된 것을 나타내는 배터리 착탈 정보를 내부의 메모리에 기억하고, 배터리(35)가 장착되어 있는 경우, 배터리(35)가 분리되지 않은 것을 나타내는 배터리 착탈 정보를 내부의 메모리에 기억한다.
한편, 단계 S504에서, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 어플리케이션 프로그램(62)의 종료 처리를 실행한다. 예를 들면, 단계 S504에서, 어플리케이션 프로그램(62)은, 촬영한 화상의 데이터를 격납하는 파일을 닫는 등의 종료 처리를 실행한다.
단계 S505에서, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)에 종료의 통지를 송신한다.
단계 S701에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)로부터 송신되어 오는 종료의 통지를 수신한다.
단계 S702에서, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 실행하는 리얼타임 처리용 CPU(12)는, 종료 처리를 실행하고, 단계 S703에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)에 종료 처리의 시작의 통지를 송신한다.
예를 들면, 단계 S702에서, 어플리케이션 프로그램(142)의 리얼타임 처리 프로그램(171)은, 도시하지 않은 광학계를 구성하는 렌즈를 종료 위치로 되돌리는 등을 한다.
단계 S506에서, 어플리케이션 프로그램(62)을 실행하는 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)로부터 송신되어 오는 종료 처리의 시작의 통지를 수신한다.
그리고, 종료 처리가 완료되면, 단계 S704에서, 오퍼레이팅 시스템(141)을 실행하는 리얼타임 처리용 CPU(12)는, 버스를 통하여, 호스트 CPU(11)에 종료 처리의 완료의 통지를 송신하여 오기 때문에, 단계 S507에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 버스를 통하여, 리얼타임 처리용 CPU(12)로부터 송신 되어 온 종료 처리의 완료의 통지를 수신한다.
또한, 리얼타임 처리용 CPU(12)는, 호스트 CPU(11)에 종료 처리의 완료의 통지를 송신한 후, 종료 처리의 완료의 통지를 수신한 호스트 CPU(11)로부터의 제어에 의해 리셋되고, 그 리셋 상태가 유지되거나, 또는, 리얼타임 처리용 CPU(12)는, 무한 루프의 명령을 실행한다.
단계 S508에서, 오퍼레이팅 시스템(61)의 설정치 기억 처리 프로그램(77)을 실행하는 호스트 CPU(11)는, 기동에서의 복귀에서 필요해지는 설정치를, NAND형 플래시 메모리(17)에 기억시킨다. NAND형 플래시 메모리(17)에 기억되는 설정치는, 셔터 스피드나 노출, 줌, 촬영하는 화상의 사이즈나 부호화할 때의 압축률, 또는 호스트 CPU(11)의 내부의 각 레지스터의 값 등을 나타내는 것이다. 또한, 단계 S508에서, NAND형 플래시 메모리(17)에 기억되는 설정치에는, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 변수로서 SDRAM(29)에 기억되어 관리되고 있는, 리얼타임 처리용 CPU(12)의 내부의 각 레지스터의 값이나 리얼타임 처리용 CPU(12)의 내부의 인터페이스의 각 레지스터의 값이 포함되어 있다.
단계 S509에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 디바이스 드라이버(72)의 종료의 처리를 실행한다. 즉, 오퍼레이팅 시스템(61)은, 신호 처리부(16), 시리얼 인터페이스(19), 그래픽 컨트롤러(21), 메모리 카드 인터페이스(23), 컨트롤러(25), IDE 인터페이스(28), 및 범용 입출력부(32) 등의 디바이스를 제어하기 위한 프로세스를 종료시키는 등, 디바이스 드라이버(72)의 종료의 처리를 실행한다.
디바이스 드라이버(72)의 종료의 처리의 일부로서, 단계 S510에서, 오퍼레이팅 시스템(61)의 다른 CPU 프로그램 판독 프로그램(76))을 실행하는 호스트 CPU(11)는, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
이와 같이 함으로써, 다음에 핫 부트의 기동의 처리가 실행되는 경우, 그 기동의 처리에서, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 SDRAM(29)에 로드할 필요가 없어지고, 더욱더 신속하게 기동할 수 있도록 된다.
리얼타임 처리용 CPU(12)가 종료 처리를 실행하고 있는 동안은, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 실행되고, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 내부 변수 등이 변경된다. 따라서, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 SDRAM(29)에의 로드는, 리얼타임 처리용 CPU(12)의 종료 처리가 완료되고 나서, 행하여진다.
또한, 호스트 CPU(11)가, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드하기 전에, 리얼타임 처리용 CPU(12)를 리셋하고, 리얼타임 처리용 CPU(12)의 리셋 상태를 유지시키도록 한 경우, 리얼타임 처리용 CPU(12)에 무한 루프의 명령을 실행시키는 경우에 비교하여, 보다 안전하게 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을 SDRAM(29)에 로드하고, 기동에서 실행시킬 수 있다. 즉, SDRAM(29)에 로드된 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이, 다음에 기동하기까지, 리얼타임 처리용 CPU(12)에 의해 변경되어 버릴 가능성을 더욱 적게 할 수 있다.
리얼타임 처리용 CPU(12)를 리셋 상태로 하지 않고, 리얼타임 처리용 CPU(12)에 무한 루프의 명령을 실행시키는 경우, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 로드되는 기억 영역 이외의 기억 영역에, 리얼타임 처리용 CPU(12)에 의해 실행되는 무한 루프의 명령이 격납된다. 예를 들면, 리얼타임 처리용 CPU(12)는, SDRAM(29)의 기억 영역중, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 로드되는 기억 영역 이외의 기억 영역에 격납되어 있는, 무한 루프의 명령을 실행하거나, 또는, 마스크 ROM(13)에 격납되어 있는 무한 루프의 명령을 실행한다.
이와 같이, 종료 처리를 완료하면, 리얼타임 처리용 CPU(12)의 리셋 상태가 유지되거나, 또는 리얼타임 처리용 CPU(12)가 무한 루프의 명령을 실행하기 때문에, 다음에 핫 부트의 방식에 의해 기동되기까지의 동안에, SDRAM(29)에 로드된 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 변경되어 버리는 것을 방지할 수 있다.
또한, 단계 S502에서, 휴지 상태가 하이버네이션 상태(S4)으로 결정된 경우, 단계 S510을 스킵하도록 하여도 좋다.
디바이스 드라이버(72)의 종료의 처리가 완료되면, 단계 S511에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 커널(71)의 종료의 처리를 실행한다. 예를 들면, 단계 S511에서, 오퍼레이팅 시스템(61)은, 어플리케이션 프로그램(62)의 디바이스의 감시, SDRAM(29) 등의 자원의 관리, 또는 프로세스 가 통신 등의 소 정의 프로세스를 완료시킨다.
커널(71)의 종료의 처리가 완료되면, 단계 S512에서, 오퍼레이팅 시스템(61)을 실행하는 호스트 CPU(11)는, 휴지 상태에서의 파라미터를 설정하는 등의 전원 관리 기구(73)의 종료의 처리를 실행한다.
단계 S513에서, 오퍼레이팅 시스템(61)의 전원 관리 기구(73)를 실행하는 호스트 CPU(11)는, 시리얼 인터페이스(19)를 통하여, 임베디드 컨트롤러(33)에 전원의 공급 정지의 요구를 송신한다.
단계 S605에서, 전원 제어 프로그램(201)을 실행하는 임베디드 컨트롤러(33)는, 시리얼 인터페이스(19)를 통하여, 호스트 CPU(11)로부터 송신되어 오는 전원의 공급 정지의 요구를 수신한다.
단계 S606에서, 전원 제어 프로그램(201)을 실행하는 임베디드 컨트롤러(33)는, DC-DC 컨버터(34)에 전원의 공급을 정지시키고, 처리는 종료한다. 예를 들면, 단계 S606에서, 전원 제어 프로그램(201)은, 임베디드 컨트롤러(33)의 내부의 메모리에 기억된 휴지 상태 정보를 참조하여, 서스펜션 상태(S3)로 천이하는 경우, DC-DC 컨버터(34)에, SDRAM(29)에의 전원의 공급을 유지시킨 채로, 호스트 CPU(11) 및 리얼타임 처리용 CPU(12)에의 전원의 공급을 정지시키고, 하이버네이션 상태(S4)으로 천이하는 경우, DC-DC 컨버터(34)에, SDRAM(29), 호스트 CPU(11), 및 리얼타임 처리용 CPU(12)에의 전원의 공급을 정지시킨다.
이와 같이, 휴지 상태가 결정되고, 결정된 휴지 상태를 나타내는 휴지 상태 정보가 임베디드 컨트롤러(33)의 내부의 메모리에 기억되고 나서, 디지털 스틸 카 메라의 상태가, 그 결정된 휴지 상태로 천이된다. 또한, 휴지 상태로 천이하기 전에, 기동에서의 복귀에서 필요해지는 설정치가, NAND형 플래시 메모리(17)에 기억된다.
또한, 서스펜션 상태(S3)로 천이하기 전에, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 SDRAM(29)에 로드된다.
또한, 서스펜션 상태(S3)로 천이하기 전에, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 SDRAM(29)에 로드되도록 한 경우, 상술하는 단계 S332에서, 리얼타임 처리용 CPU(12)는, 단계 S241의 처리에서 SDRAM(29)에 로드된 설정치에 포함되어 있는, 리얼타임 처리용 CPU(12)의 내부의 각 레지스터의 값이나 그 중부의 인터페이스의 각 레지스터의 값으로서, 휴지하기 전의 값을 SDRAM(29)으로부터 판독하여, 리얼타임 처리용 CPU(12)의 내부의 각 레지스터 또는 리얼타임 처리용 CPU(12)의 내부의 인터페이스의 각 레지스터의 각각에 설정한다.
이와 같이 함으로써, 리얼타임 처리용 CPU(12)의 내부의 각 레지스터 및 그 내부의 인터페이스의 각 레지스터에 올바른 값이 설정된 상태에서, 오퍼레이팅 시스템(141)이 실질적으로 실행되기 때문에, 리얼타임 처리용 CPU(12)가 폭주하거나, 서스펜션 상태(S3)로 천이하기 전에 SDRAM(29)에 로드된 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 파괴되는 일 없이, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)이 확실하고 올바르게 실행된다.
도 24는, 휴지의 처리의 다른 예를 도시하는 플로우 차트이다.
단계 S531 내지 단계 S539, 단계 S631 내지 단계 S634, 및 단계 S731 내지 단계 S734는, 각각, 도 23의 단계 S501 내지 단계 S509, 단계 S601 내지 단계 S604, 및 단계 S701 내지 단계 S704의 각각과 같음으로, 그 설명은 생략한다.
도 24의 플로우 차트에서 도시되는 휴지의 처리에서의 디바이스 드라이버(72)의 종료의 처리에서, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)은, SDRAM(29)에 로드되지 않는다.
단계 S540 내지 단계 S542, 및 단계 S635 및 단계 S636은, 각각, 도 23의 단계 S511 내지 단계 S513, 및 단계 S605 및 단계 S606의 각각과 같음으로, 그 설명은 생략한다.
이와 같이, 디바이스 드라이버(72)의 종료의 처리에서, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을, SDRAM(29)에 로드하지 않도록 하여도 좋다.
오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 SDRAM(29)에의 로드에는, 소정의 시간이 걸리기 때문에, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 SDRAM(29)에의 로드가 행하여지지 않는 경우에는, 더욱 짧은 시간에 휴지의 처리를 할 수 있다.
또한, 단계 S538에서, NAND형 플래시 메모리(17)에 기억시키는 설정치에는, 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)의 변수로서 SDRAM(29)에 기억되어 관리되고 있는, 리얼타임 처리용 CPU(12)의 내부의 각 레지스터의 값이나 리얼타임 처리용 CPU(12)의 내부의 인터페이스의 각 레지스터의 값은 포함되지 않 는다.
따라서, 설정치의 기억에 필요한, NAND형 플래시 메모리(17)의 기억 영역의 기억 용량을 더욱 적게 할 수 있다.
또한, 도 24의 플로우 차트에서 도시되는 휴지의 처리의 후, 도 17 내지 도 19의 플로우 차트를 참조하여 설명한 핫 부트의 기동의 처리가 실행되는 경우, 단계 S242의 전에, 2차 부트 로더(101)의 다른 CPU 프로그램 판독 프로그램(124)을 실행하는 호스트 CPU(11)가, 리얼타임 처리용 CPU(12)의 오퍼레이팅 시스템(141) 및 어플리케이션 프로그램(142)을, NAND형 플래시 메모리(17)로부터 SDRAM(29)에 로드한다.
다음에, 휴지 상태에서, DC-DC 컨버터(34)로부터 전원이 공급되고, 메커니컬 오프 상태(G3)에서, 배터리(36)로부터 전력이 공급되는 임베디드 컨트롤러(33)가 미리 정해진 기간마다 실행하는, 배터리(35)의 분리 이력의 기억의 처리에 관해 설명한다.
도 25는, 배터리(35)의 장착 이력의 기억의 처리를 설명하는 플로우 차트이다. 단계 S901에서, 배터리 착탈 검출 프로그램(206)을 실행하는 임베디드 컨트롤러(33)는, DC-DC 컨버터(34)의 출력 전압을 검출함으로써, 배터리(35)의 착탈을 검출한다. 예를 들면, 단계 S901에서, 배터리 착탈 검출 프로그램(206)은, DC-DC 컨버터(34)의 출력 전압과 미리 정한 임계치를 비교함으로써, 배터리(35)의 장착 또는 분리를 검출한다.
단계 S902에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 배터리(35)가 분리되었는지의 여부를 판정한다. 단계 S902에서, 배터리(35)가 분리되었다고 판정된 경우, 절차는 단계 S903으로 진행하고, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)는, 배터리(35)가 분리된 것을 나타내는 배터리 착탈 정보를 내부의 메모리에 기억하고, 처리는 종료한다. 즉, 배터리(35)가 분리된 경우, 임베디드 컨트롤러(33)의 내부에 기억되어 있는 배터리 착탈 정보는, 배터리(35)가 분리된 것을 나타내도록 갱신된다.
단계 S902에서, 배터리(35)가 분리되지 않았다고 판정된 경우, 임베디드 컨트롤러(33)의 내부에 기억되어 있는 배터리 착탈 정보를 갱신할 필요는 없기 때문에, 단계 S903은 스킵되고, 처리는 종료한다.
이와 같이, 휴지 상태에서 배터리(35)가 분리되면, 배터리(35)가 분리된 것을 나타내도록 배터리 착탈 정보가 갱신되기 때문에, 배터리 착탈 정보는, 휴지 상태에서의 배터리(35)의 착탈의 이력을 나타내게 된다.
또한, 단계 S901에서, 배터리 착탈 검출 프로그램(206)을 실행하는 임베디드 컨트롤러(33)가, DC-DC 컨버터(34)의 출력 전압을 검출함으로써, 외부 전원으로부터의 전원의 공급 정지를 검출하고, 단계 S902에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)가, 외부 전원으로부터의 전원의 공급이 정지되었는지의 여부를 판정하고, 외부 전원으로부터의 전원의 공급이 정지된 경우, 단계 S903에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)가, 외부 전원으로부터의 전원의 공급이 정지된 것을 나타내는 배터리 착탈 정보를 내부의 메모리에 기억하도록 하여도 좋다. 즉, 이 경우, 배터리 착탈 정보는, 외부 전원으로부터의 전원의 공급의 이력을 나타낸다.
또한, 단계 S901에서, 배터리 착탈 검출 프로그램(206)을 실행하는 임베디드 컨트롤러(33)가, DC-DC 컨버터(34)의 출력 전압을 검출함으로써, 외부 전원으로부터의 전원의 공급 정지와 배터리(35)의 착탈을 검출하고, 단계 S902에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)가, 외부 전원으로부터의 전원의 공급이 정지되고, 또한, 배터리(35)가 분리되었는지의 여부를 판정하고, 외부 전원으로부터의 전원의 공급이 정지되고, 또한, 배터리(35)가 분리된 경우, 단계 S903에서, 기동 방식 결정 정보 기억 처리 프로그램(204)을 실행하는 임베디드 컨트롤러(33)가, 외부 전원으로부터의 전원의 공급이 정지되고, 또한, 배터리(35)가 분리된 것을 나타내는 배터리 착탈 정보를 내부의 메모리에 기억하도록 하여도 좋다.
즉, 배터리 착탈 정보는, 휴지 상태에서의, 서스펜션 상태(S3)를 유지하기 위한 전원의 공급 정지의 이력을 나타내는 정보의 한 예이다. 또한, 이 경우, 배터리 착탈 검출 프로그램(206)은, 휴지 상태에서의, 서스펜션 상태(S3)를 유지하기 위한 전원의 공급 정지를 검출한다.
또한, 도 26에서 도시되는 바와 같이, 메커니컬 오프 상태(G3)에서, 배터리(35)가 장착되면, 이 배터리(35)의 장착을 기동의 트리거로 하여, 콜드 부트 또는 웜 부트의 기동의 방식에 의해, 동작 상태(S0)로 천이하도록 디지털 스틸 카메라를 기동하고, 이 동작 상태(S0)로부터 무조건 서스펜션 상태(S3)로 천이하도록 하여도 좋다. 이 경우, 기동 화면은 표시되지 않고, 기동음도 출력되지 않는다.
이와 같이 함으로써, 콜드 부트 또는 웜 부트의 기동의 처리에 시간이 걸리는 경우라도, 배터리(35)를 장착하는 것만으로, 사용자가 알아차리기 전에, 디지털 스틸 카메라를, 서스펜션 상태(S3)로 휴지시킬 수 있다.
그리고, 디지털 스틸 카메라는, 서스펜션 상태(S3)에서 전원 버튼이 가압되면, 핫 부트의 기동의 방식에 의해, 동작 상태(S0)로 천이하도록 기동된다. 렌즈 캡을 여는 것 등의 다른 기동 요인에 의해, 서스펜션 상태(S3)로부터, 핫 부트의 기동의 방식에 의해, 동작 상태(S0)로 천이하도록 하여도 좋음은 당연하다.
그 결과, 사용자로부터는, 전원 버튼의 가압 등을 트리거로 하여, 메커니컬 오프 상태(G3)로부터 신속하게 기동한 것처럼 보이다.
이상과 같이, 디지털 스틸 카메라는, 사용자의 조작에 응하여, 그 상태를, 휴지 상태로 천이시키거나, 또는 동작 상태(S0)로 천이시키고, 휴지 상태로부터 동작 상태(S0)로 천이하는 경우에는, 신속하게 천이하는, 즉, 신속하게 기동할 수 있다.
디지털 스틸 카메라가, 서스펜션 상태(S3)로, 사용자가 배터리(35)를 분리하는 일 없이, 기동시킨 경우에는, 핫 부트의 방식에 의해 기동하고, 또한, 서스펜션 상태(S3)로, 사용자가 배터리(35)를 분리하고, 재차 장착한 경우에는, 웜 부트의 방식에 의해 기동하고, 또한, 하이버네이션 상태(S4)으로 휴지하면, 배터리(35)의 착탈과 무관계하게, 웜 부트의 방식에 의해 기동하기 때문에, 사용자로부터는, 휴지 상태가, 마치 전원을 오프하고 있는 상태(메커니컬 오프 상태(G3))로 보인다.
이와 같이, 휴지 상태로서 서스펜션 상태 또는 하이버네이션 상태으로 천이하도록 한 경우에는, 서스펜션 상태 또는 하이버네이션 상태으로부터 리줌할 수 있다. 또한, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 천이하는 서스펜션 상태 또는 하이버네이션 상태중 어느 한쪽의 휴지 상태를 나타내는 휴지 상태 정보의 기억을 제어하고, 휴지 상태에서의, 서스펜션 상태를 유지하기 위한 전원의 공급 정지를 검출하고, 검출 결과에 따른 휴지 상태에서의 전원의 공급 정지의 이력을 나타내는 이력 정보 및 휴지 상태 정보로부터, 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하도록 한 경우에는, 서스펜션 상태를 유지하기 위한 전원의 공급이 정지된 때라도, 보다 신속하게 기동할 수 있다.
또한, 서스펜션 상태 또는 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우에 기억된, 천이하는 서스펜션 상태 또는 하이버네이션 상태중 어느 한쪽의 휴지 상태를 나타내는 휴지 상태 정보, 및 휴지 상태에서의, 서스펜션 상태를 유지하기 위한 전원의 공급 정지의 검출 결과에 따른, 휴지 상태에서의 전원의 공급 정지의 이력을 나타내는 이력 정보를 취득하고, 이력 정보 및 휴지 상태 정보로부터, 휴지 상태로부터 동작 상태로의 기동의 방식을 결정하도록 한 경우에는, 서스펜션 상태를 유지하기 위한 전원의 공급이 정지된 때라도, 보다 신속하게 기동할 수 있다.
또한, 본 발명은, 디지털 스틸 카메라로 한하지 않고, 퍼스널 컴퓨터, 디지털 비디오 카메라, 휴대 전화기, 또는 휴대형의 플레이어, 또는, HDD 레코더 플레 이어나 텔레비전 수상기 등이 거치형의 각종의 기기에도 적용할 수 있다.
또한, 디지털 스틸 카메라가, 웜 부트 또는 콜드 부트의 방식에 의해 기동한 경우, 초기 상태(S0N)로 천이한다고 설명하였지만, 웜 부트 또는 콜드 부트의 방식에 의해 기동한 경우도, 동작 상태(S0)중, 기동 요인에 따른 처리를 실행하는 상태로 천이하도록 하여도 좋다.
상술한 일련의 처리는, 하드웨어에 의해 실행할 수도 있고, 소프트웨어에 의해 실행할 수도 있다. 일련의 처리를 소프트웨어에 의해 실행하는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 전용의 하드웨어에 조립되어 있는 컴퓨터, 또는, 각종의 프로그램을 인스톨함으로써, 각종의 기능을 실행하는 것이 가능한, 예를 들면 범용의 퍼스널 컴퓨터 등에, 프로그램 기록 매체로부터 인스톨된다.
컴퓨터(호스트 CPU(11), 리얼타임 처리용 CPU(12), 또는 임베디드 컨트롤러(33))가 실행하는 프로그램은, 예를 들면, 자기 디스크(플렉시블 디스크를 포함한다), 광디스크(CD-ROM(Compact Disc-Read Only Memory), DVD(Digital Versatile Disc) 등), 광자기 디스크, 또는 반도체 메모리 등으로 이루어지는 패키지 미디어인 리무버블 미디어에 기록하고, 또는, 로컬 에어리어 네트워크, 인터넷, 디지털 위성 방송이라는, 유선 또는 무선의 전송 매체를 통하여 제공된다.
그리고, 프로그램은, 리무버블 미디어를 IDE 인터페이스(28)에 접속되어 있는 드라이브에 장착함으로써, IDE 인터페이스(28)를 통하여, NAND형 플래시 메모리(17)에 기억함으로써, 인스톨할 수 있다. 또한, 프로그램은, 무선의 전송 매체를 통하여, 무선 LAN 인터페이스(24)로 수신하거나, 또는 유선의 전송 매체를 통하여, 범용 입출력부(32)에서 수신하여, NAND형 플래시 메모리(17)에 기억함으로써, 인스톨할 수 있다. 그 밖에, 프로그램은, NAND형 플래시 메모리(17)에 미리 기억하여 둠으로써, 미리 인스톨하여 둘 수 있다.
또한, 컴퓨터가 실행하는 프로그램은, 본 명세서에서 설명하는 순서에 따라 시계열로 처리가 행하여지는 프로그램이라도 좋고, 병렬로, 또는 호출이 행하여진 때 등의 필요한 타이밍에 처리가 행하여지는 프로그램이라도 좋다.
본 발명은 첨부된 청구항과 동등한 범주내에서 다양한 수정, 변경 및 조합이 이루어질 수 있다.
도 1은 본 발명의 한 실시의 형태의 정보 처리 장치의 한 예인 디지털 스틸 카메라의 구성을 도시하는 블록도.
도 2는 호스트 CPU에 의해 실행되는 오퍼레이팅 시스템 및 어플리케이션 프로그램의 구성을 도시하는 블록도.
도 3은 호스트 CPU에 의해 실행되는 2차 부트 로더의 구성을 도시하는 블록도.
도 4는 리얼타임 처리용 CPU에 의해 실행되는 오퍼레이팅 시스템 및 어플리케이션 프로그램의 구성을 도시하는 블록도.
도 5는 임베디드 컨트롤러에 의해 실행되는 프로그램의 구성을 도시하는 블록도.
도 6은 디지털 스틸 카메라의 상태를 설명하는 도면.
도 7은 디지털 스틸 카메라의 상태를 설명하는 도면.
도 8은 디지털 스틸 카메라의 상태의 천이를 설명하는 도면.
도 9는 디지털 스틸 카메라의 상태를 설명하는 도면.
도 10은 웜 부트의 기동의 처리의 순서의 개요를 설명하는 도면.
도 11은 핫 부트의 기동의 처리의 순서의 개요를 설명하는 도면.
도 12는 콜드 부트의 기동의 처리의 순서의 개요를 설명하는 도면.
도 13은 휴지의 처리의 순서의 개요를 설명하는 도면.
도 14는 웜 부트의 기동의 처리의 상세를 설명하는 플로우 차트.
도 15는 도 14의 플로우 차트의 연속도.
도 16은 도 15의 플로우 차트의 연속도.
도 17은 핫 부트의 기동의 처리의 상세를 설명하는 플로우 차트.
도 18은 도 17의 플로우 차트의 연속도.
도 19는 도 18의 플로우 차트의 연속도.
도 20은 콜드 부트의 기동의 처리의 상세를 설명하는 플로우 차트.
도 21은 도 20의 플로우 차트의 연속도.
도 22는 도 21의 플로우 차트의 연속도.
도 23은 휴지의 처리의 예를 설명하는 플로우 차트.
도 24는 휴지의 처리의 다른 예를 설명하는 플로우 차트.
도 25는 배터리의 장착 이력의 기억의 처리를 설명하는 플로우 차트.
도 26은 기동에서 상태 천이의 예를 도시하는 도면.
(도면의 주요 부분에 대한 부호의 설명)
11 : 호스트 CPU
12 : 리얼타임 처리용 CPU
13 : 마스크 ROM
17 : NAND형 플래시 메모리
19 : 시리얼 인터페이스
20 : LCD
22 : 메모리 카드
24 : 무선 LAN 인터페이스
26 : NAND형 플래시 메모리
29 : SDRAM
31 : 입력부
32 : 범용 입출력부
33 : 임베디드 컨트롤러
34 : DC-DC 컨버터
35 : 배터리
36 : 배터리
41 : USB 접속 단자
61 : 오퍼레이팅 시스템,
62 : 어플리케이션 프로그램
71 : 커널
72 : 디바이스 드라이버
73 : 전원 관리 기구
74 : 휴지 상태 결정 프로그램
75 : 휴지 상태 정보 제공 프로그램
76 : 다른 CPU 프로그램 판독 프로그램
77 : 설정치 기억 처리 프로그램
78 : 웜 부트 이미지 생성 프로그램
81 : 촬영 처리 프로그램
82 : 열람 처리 프로그램
83 : 설정 처리 프로그램
84 : USB 매스 스토리지 클래스 처리 프로그램
85 : 상태 천이 처리 프로그램
86 : 전원 관리 프로그램
101 : 2차 부트 로더
121 : 기동 방식 결정 정보 취득 프로그램
122 : 기동 방식 결정 프로그램
123 : 설정치 판독 프로그램
124 : 다른 CPU 프로그램 판독 프로그램
125 : 웜 부트 이미지 판독 프로그램
141 : 오퍼레이팅 시스템
142 : 어플리케이션 프로그램
161 : 기동 방식 결정 정보 취득 프로그램
162 : 기동 방식 결정 프로그램
163 : 어플리케이션 기동 종료 제어 프로그램
171 : 리얼타임 처리 프로그램
172 : GUI 처리 프로그램
173 : 기동 화면 표시 프로그램
201 : 전원 제어 프로그램
202 : 다른 CPU 리셋 제어 프로그램
203 : 기동 방식 결정 정보 취득 프로그램
204 : 기동 방식 결정 정보 기억 처리 프로그램
205 : 기동 방식 결정 정보 제공 프로그램
206 : 배터리 착탈 검출 프로그램

Claims (12)

  1. 서스펜션 상태 및 하이버네이션 상태를 포함하는 휴지 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치에 있어서,
    상기 서스펜션 상태 및 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 그에 대한 휴지 상태 정보의 기억을 제어하는 기억 제어 수단과,
    상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위해 공급되는 전원의 공급 정지를 검출하는 검출 수단과,
    전력 공급의 중단에 관한 검출 결과에 따른 상기 휴지 상태에서 상기 전원의 공급의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여 휴지 상태로부터 동작 상태로의 천이하는 기동 방식을 결정하는 기동 방식 결정 수단을 구비하는 것을 특징으로 하는 정보 처리 장치.
  2. 제 1항에 있어서,
    상기 기동 방식 결정 수단은 제 1의 기동 방식과 제 2의 기동 방식 사이에서 휴지 상태로부터 동작 상태로의 천이를 위한 기동 방식을 결정하며,
    제 1의 기동 방식은 휴지 상태로 천이하기 직전의 상기 동작 상태에서 휘발성 메모리에 기억되어 있던 프로그램이며, 상기 서스펜션 상태에서 상기 휘발성 메모리에 기억되어 있는 프로그램을 실행함으로써 시작하는 방식이고,
    제 2의 기동 방식은 휴지 상태로 천이하기 이전의 상기 동작 상태에서 상기 휘발성 메모리에 기억되어 있던 프로그램의 이미지이며, 실행을 위해 불휘발성 메모리에 기억되어 있는 이미지를 상기 휘발성 메모리에 로드함으로써 시작하는 방식인 것을 특징으로 하는 정보 처리 장치.
  3. 제 2항에 있어서,
    상기 기동 방식 결정 수단은, 상기 휴지 상태 정보가 상기 서스펜션 상태를 나타내고, 상기 이력 정보가 상기 서스펜션 상태에서 상기 전원의 공급이 정지되지 않은 것을 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 천이를 위한 기동 방식으로서 상기 제 1의 기동 방식으로 결정하는 것을 특징으로 하는 정보 처리 장치.
  4. 제 2항에 있어서,
    상기 기동 방식 결정 수단은, 상기 휴지 상태 정보가 상기 서스펜션 상태를 나타내고, 상기 이력 정보가 상기 서스펜션 상태에서 상기 전원의 공급이 정지된 것을 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 천이를 위한 기동 방식으로서 상기 제 2의 기동 방식으로 결정하는 것을 특징으로 하는 정보 처리 장치.
  5. 제 2항에 있어서,
    상기 기동 방식 결정 수단은, 상기 휴지 상태 정보가 상기 하이버네이션 상 태를 나타내는 경우, 상기 휴지 상태로부터 상기 동작 상태로의 천이를 위한 기동 방식으로서 상기 제 2의 기동 방식으로 결정하는 것을 특징으로 하는 정보 처리 장치.
  6. 제 1항에 있어서,
    상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 한쪽으로 천이하는지를 결정하는 휴지 상태 결정 수단을 또한 구비하는 것을 특징으로 하는 정보 처리 장치.
  7. 제 1항에 있어서,
    상기 서스펜션 상태를 유지하기 위해 전원을 공급하는 배터리가 분리되고 나서 장착된 경우, 상기 배터리의 장착에 응하여 동작 상태가 작동되고, 상기 서스펜션 상태로 무조건 천이하는 것을 특징으로 하는 정보 처리 장치.
  8. 제 1항에 있어서,
    상기 검출 수단은, 상기 서스펜션 상태를 유지하기 위해 전원을 공급하는 배터리의 분리에 따라, 상기 전원의 공급 정지를 검출하는 것을 특징으로 하는 정보 처리 장치.
  9. 제 1항에 있어서,
    상기 검출 수단은, 상기 서스펜션 상태를 유지하기 위해 외부 전원으로부터공급된 전원의 공급 정지를 검출하는 것을 특징으로 하는 정보 처리 장치.
  10. 서스펜션 상태 및 하이버네이션 상태를 포함하는 휴지 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치의 정보 처리 방법에 있어서,
    상기 서스펜션 상태 및 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 그에 대한 휴지 상태 정보의 기억을 제어하는 단계와,
    상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위해 공급되는 전원의 공급 정지를 검출하는 단계와,
    전력 공급의 중단에 관한 검출 결과에 따른 상기 휴지 상태에서 상기 전원의 공급의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여 휴지 상태로부터 동작 상태로의 천이하는 기동 방식을 결정하는 단계를 구비하는 것을 특징으로 하는 정보 처리 방법.
  11. 서스펜션 상태 또는 하이버네이션 상태를 포함하는 휴지 상태중 하나로 휴지하는 정보 처리 장치의 정보 처리 방법을, 컴퓨터에 행하게 하는 프로그램에 있어서,
    상기 서스펜션 상태 또는 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우에 기억된, 상기 어느 하나의 휴지 상태를 나타내는 휴지 상태 정보, 및 상기 서스펜션 상태를 유지하기 위한 전원의 공급 정지의 검출에 따른, 상 기 휴지 상태에서의 상기 전원의 공급 정지의 이력을 나타내는 이력 정보를 취득하는 단계,
    상기 이력 정보 및 상기 휴지 상태 정보에 의거하여, 상기 휴지 상태로부터 동작 상태로의 천이를 위한 기동 방식을 결정하는 단계를 포함하는 것을 특징으로 하는 프로그램.
  12. 서스펜션 상태 및 하이버네이션 상태를 포함하는 휴지 상태중 어느 하나의 상태로 휴지하는 정보 처리 장치에 있어서,
    상기 서스펜션 상태 및 상기 하이버네이션 상태중 어느 하나의 휴지 상태로 천이하는 경우, 그에 대한 휴지 상태 정보의 기억을 제어하는 기억 제어 유닛과,
    상기 휴지 상태로서 상기 서스펜션 상태를 유지하기 위해 공급되는 전원의 공급 정지를 검출하는 검출 유닛과,
    전력 공급의 중단에 관한 검출 결과에 따른 상기 휴지 상태에서 상기 전원의 공급의 이력을 나타내는 이력 정보 및 상기 휴지 상태 정보에 의거하여 휴지 상태로부터 동작 상태로의 천이하는 기동 방식을 결정하는 기동 방식 결정 유닛을 구비하는 것을 특징으로 하는 정보 처리 장치.
KR1020070130719A 2006-12-28 2007-12-14 정보 처리 장치, 기동 방법, 및 프로그램 KR20080063083A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00355323 2006-12-28
JP2006355323A JP4517303B2 (ja) 2006-12-28 2006-12-28 情報処理装置、起動方法、およびプログラム

Publications (1)

Publication Number Publication Date
KR20080063083A true KR20080063083A (ko) 2008-07-03

Family

ID=39611284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070130719A KR20080063083A (ko) 2006-12-28 2007-12-14 정보 처리 장치, 기동 방법, 및 프로그램

Country Status (5)

Country Link
US (1) US8117476B2 (ko)
JP (1) JP4517303B2 (ko)
KR (1) KR20080063083A (ko)
CN (1) CN101211214B (ko)
TW (1) TWI372970B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4293239B2 (ja) * 2006-12-28 2009-07-08 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US8499174B2 (en) 2008-09-08 2013-07-30 Via Technologies, Inc. Method and controller for power management
US8504850B2 (en) * 2008-09-08 2013-08-06 Via Technologies, Inc. Method and controller for power management
JP5422308B2 (ja) * 2009-08-31 2014-02-19 任天堂株式会社 情報処理装置
US9483103B2 (en) * 2010-10-22 2016-11-01 Hewlett-Packard Development Company, L.P. Process state of a computing machine
US8788798B2 (en) 2010-12-06 2014-07-22 Microsoft Corporation Fast computer startup
US9032194B2 (en) 2010-12-06 2015-05-12 Microsoft Technology Licensing, Llc Fast computer startup
US8543849B2 (en) 2010-12-06 2013-09-24 Microsoft Corporation Fast computer startup
US10817043B2 (en) * 2011-07-26 2020-10-27 Nvidia Corporation System and method for entering and exiting sleep mode in a graphics subsystem
JP5959841B2 (ja) * 2011-12-12 2016-08-02 キヤノン株式会社 画像処理装置及びその制御方法、並びにプログラム
US9495173B2 (en) 2011-12-19 2016-11-15 Sandisk Technologies Llc Systems and methods for managing data in a device for hibernation states
JP2013182389A (ja) * 2012-03-01 2013-09-12 Canon Inc 情報処理装置、その制御方法及びプログラム
JP5870947B2 (ja) * 2013-03-12 2016-03-01 カシオ計算機株式会社 情報処理装置、及び情報処理方法、プログラム
US9459683B2 (en) * 2013-09-27 2016-10-04 Intel Corporation Techniques for entering a low power state
CN103648029B (zh) * 2013-12-06 2016-09-28 乐视致新电子科技(天津)有限公司 智能电视的通电保护方法及系统
US10741182B2 (en) * 2014-02-18 2020-08-11 Lenovo (Singapore) Pte. Ltd. Voice input correction using non-audio based input
CN108459882B (zh) * 2017-02-21 2022-04-05 佳能株式会社 电子设备及其控制方法
CN112640249B (zh) * 2018-08-29 2024-02-09 华为数字能源技术有限公司 无线电池充电期间的带内通信
CN112602260B (zh) 2018-08-29 2022-12-06 华为数字能源技术有限公司 效率提高的无线电池充电
EP3881411A4 (en) 2018-11-21 2022-01-19 Huawei Digital Power Technologies Co., Ltd. OUT-BAND COMMUNICATIONS WHILE CHARGING A BATTERY WIRELESSLY
KR20200084730A (ko) * 2019-01-03 2020-07-13 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN114158115B (zh) * 2022-02-10 2022-04-19 为准(北京)电子科技有限公司 一种无线测试设备的供电管理方法、装置及系统
TWI799270B (zh) * 2022-05-17 2023-04-11 瑞昱半導體股份有限公司 能判斷冷啟動事件原因的電子系統以及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3853941B2 (ja) * 1996-11-21 2006-12-06 株式会社日立製作所 情報処理装置
JPH11194846A (ja) * 1997-10-30 1999-07-21 Toshiba Corp コンピュータシステムおよびそのシステムステート制御方法
JP2000020182A (ja) * 1998-06-29 2000-01-21 Nec Corp パワーマネージメント方法
US6901298B1 (en) * 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
JP4281421B2 (ja) 2003-06-06 2009-06-17 ソニー株式会社 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP2006101041A (ja) * 2004-09-28 2006-04-13 Fujitsu Ltd 携帯電話機

Also Published As

Publication number Publication date
CN101211214A (zh) 2008-07-02
CN101211214B (zh) 2011-01-26
US8117476B2 (en) 2012-02-14
US20080180564A1 (en) 2008-07-31
JP2008165552A (ja) 2008-07-17
TW200836053A (en) 2008-09-01
TWI372970B (en) 2012-09-21
JP4517303B2 (ja) 2010-08-04

Similar Documents

Publication Publication Date Title
KR20080063083A (ko) 정보 처리 장치, 기동 방법, 및 프로그램
JP4748057B2 (ja) 情報処理装置、起動方法、およびプログラム
JP4232121B2 (ja) 情報処理装置および方法、プログラム、並びに記録媒体
JP4595937B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4766332B2 (ja) 情報処理装置、起動方法、およびプログラム
JP4831418B2 (ja) 情報処理装置および方法、並びにプログラム
JP2007288532A (ja) 電子機器、電子機器による周辺機器の制御方法、プログラム及び記憶媒体
JP4293239B2 (ja) 情報処理装置および方法、プログラム、並びに記録媒体
JP2010287950A (ja) 電子機器
JP2008165586A (ja) 情報処理装置、情報処理方法、およびプログラム
CN114765656A (zh) 可拆卸设备及其控制方法
WO2021102483A2 (en) Method and apparatus for operating a companion processing unit
JP4836233B2 (ja) 画像処理装置及びその制御方法、コンピュータプログラム、及び、記憶媒体
JP4371977B2 (ja) 画像記録装置
JP2005341433A (ja) 携帯機器及びその制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid