KR20150098263A - 펌웨어를 갱신하기 위한 전자 장치 및 방법 - Google Patents

펌웨어를 갱신하기 위한 전자 장치 및 방법 Download PDF

Info

Publication number
KR20150098263A
KR20150098263A KR1020140018955A KR20140018955A KR20150098263A KR 20150098263 A KR20150098263 A KR 20150098263A KR 1020140018955 A KR1020140018955 A KR 1020140018955A KR 20140018955 A KR20140018955 A KR 20140018955A KR 20150098263 A KR20150098263 A KR 20150098263A
Authority
KR
South Korea
Prior art keywords
firmware
update information
updating
internal
electronic device
Prior art date
Application number
KR1020140018955A
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 삼성전자주식회사
Priority to KR1020140018955A priority Critical patent/KR20150098263A/ko
Priority to US14/186,747 priority patent/US20150234650A1/en
Publication of KR20150098263A publication Critical patent/KR20150098263A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 다양한 실시 예는 전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 장치 및 방법에 관한 것이다. 이때, 내부 장치의 펌웨어를 갱신하는 방법은, 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함할 수 있으며 다른 다양한 실시 예들도 가능할 수 있다.

Description

펌웨어를 갱신하기 위한 전자 장치 및 방법{ELECTRONIC DEVICE AND METHOD FOR FIRMWARE UPDATING OF A DEVICE}
본 발명의 다양한 실시 예는 전자 장치에 관한 것이며, 전자 장치에서 펌웨어를 관리하기 위한 장치 및 방법에 관한 것이다.
정보통신 기술 및 반도체 기술의 발전으로 각종 전자 장치들이 다양한 멀티미디어 서비스를 제공하는 멀티미디어 장치로 발전하고 있다. 예를 들어, 전자 장치는 방송 서비스, 무선 인터넷 서비스, 카메라 서비스 및 음악 재생 서비스 등의 다양한 멀티미디어 서비스를 제공할 수 있다.
전자 장치는 하드웨어를 제어하기 위한 프로그램인 펌웨어를 포함할 수 있다. 전자 장치는 펌웨어 갱신(firmware update)을 통해 전자 장치의 오류를 수정하거나 새로운 기능을 추가할 수 있다.
전자 장치는 다양한 기능을 수행하는 적어도 하나의 내부 장치(예: 메모리, 입/출력 장치, 디스플레이 등)를 포함할 수 있다. 이때, 적어도 하나의 내부 장치는 자체의 펌웨어를 내장할 수 있다.
적어도 하나의 내부 장치의 펌웨어 갱신은 호스트가 되는 전자 장치의 펌웨어(예: 운영 체제)와 함께 갱신될 수 있다. 이에 따라, 전자 장치에 포함되는 적어도 하나의 내부 장치의 펌웨어는 호스트 펌웨어의 버전에 종속되며, 내부 장치의 펌웨어를 갱신하기 위하여 호스트 펌웨어를 새롭게 생성해야 하는 불필요한 부하가 발생할 수 있다.
전자 장치의 펌웨어 갱신 시 펌웨어 갱신과 관련되지 않은 신호의 입출력이 발생하는 경우, 전자 장치는 펌웨어 갱신을 실패하거나, 펌웨어를 갱신하는 장치가 망가지는 문제가 발생할 수 있다. 예를 들어, 전자 장치에 포함되는 저장 장치의 펌웨어를 갱신하는 경우, 전자 장치는 운영 체제의 구동에 따라 저장 장치의 펌웨어 갱신과 관련되지 않은 저장 장치의 입출력이 발생하여 저장 장치에 대한 펌웨어 갱신이 실패하거나, 저장 장치가 망가지는 문제가 발생할 수 있다.
본 발명의 실시 예는 전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 장치 및 방법을 제공할 수 있다.
본 발명의 실시 예는 전자 장치에서 내부 장치에 대한 입출력이 제한된 상태에서 해당 내부 장치의 펌웨어를 갱신하기 위한 장치 및 방법을 제공할 수 있다.
본 발명의 실시 예는 전자 장치에서 시스템 정보의 마운트를 지연시켜 저장 장치에 대한 입출력이 제한된 상태에서 저장 장치의 펌웨어를 갱신하기 위한 장치 및 방법을 제공할 수 있다.
본 발명의 실시 예는 전자 장치에서 시스템 정보를 언마운트(unmount)하여 저장 장치에 대한 입출력을 제한한 상태에서 저장 장치의 펌웨어를 갱신하기 위한 장치 및 방법을 제공할 수 있다.
본 발명의 실시 예에 따르면, 전자 장치에서 내부 장치의 펌웨어 갱신 방법은, 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함할 수 있다.
본 발명의 실시 예에 따르면, 전자 장치에서 내부 장치의 펌웨어 갱신 방법은, 상기 전자 장치의 구동 중 내부 장치의 펌웨어를 갱신하기 위한 펌웨어 갱신 정보를 확인하는 동작과 상기 전자 장치의 시스템 정보를 언마운트(unmount)하는 동작과 상기 펨웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함할 수 있다.
본 발명의 실시 예에 따르면, 전자 장치에서 내부 장치의 펌웨어 갱신 방법은, 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 램디스크 영역으로 로딩하는 동작과 상기 램디스크 영역에 로딩된 상기 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작과 상기 전자 장치를 재부팅하는 동작을 포함할 수 있다.
본 발명의 실시 예에 따르면, 전자 장치는, 적어도 하나의 내부 장치와 적어도 하나의 프로세서를 포함하며, 상기 프로세서는, 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 이용하여 상기 적어도 하나의 프로세서 중 적어도 하나의 내부 장치의 펌웨어를 갱신할 수 있다.
본 발명의 실시 예에 따르면, 전자 장치는, 적어도 하나의 내부장치와 적어도 하나의 프로세서를 포함하며, 상기 프로세서는, 상기 전자 장치의 구동 중 상기 적어도 하나의 내부 장치 중 펌웨어를 갱신하기 위한 적어도 하나의 내부 장치의 펌웨어 갱신 정보를 확인하고, 상기 전자 장치의 시스템 정보를 언마운트(unmount)하고, 상기 펨웨어 갱신 정보를 이용하여 상기 펌웨어를 갱신하기 위한 적어도 하나의 내부 장치의 펌웨어를 갱신할 수 있다.
상술한 바와 같이 전자 장치에서 내부 장치(예: 저장 장치)에 대한 입출력이 제한된 상태에서 해당 내부 장치의 펌웨어를 갱신함으로써, 내부 장치에 대한 펌웨어를 안정적으로 갱신할 수 있다.
전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 제어 명령(예: 코드) 및 데이터를 독립적인 실행 파일로 저장 및 실행함으로써, 호스트 펌웨어를 새롭게 생성하지 않고 내부 장치의 펌웨어를 갱신할 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도를 도시한다.
도 2는 본 발명의 실시 예에 따른 전자 장치의 상세 블록도를 도시한다.
도 3은 본 발명의 다른 실시 에에 따른 전자 장치의 상세 블록도를 도시한다.
도 4는 본 발명의 실시 예에 따른 전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시한다.
도 5는 본 발명의 실시 예에 따른 전자 장치에서 부팅 시 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시한다.
도 6은 본 발명의 실시 예에 따른 전자 장치에서 펌웨어 버전에 기반하여 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시한다.
도 7은 본 발명의 실시 예에 따른 전자 장치에서 구동 중 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시한다.
도 8은 본 발명의 다른 실시 예에 따른 전자 장치에서 펌웨어 버전에 기반하여 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시한다.
도 9는 본 발명의 실시 예에 따른 펌웨어 갱신 정보의 구성을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명(present disclosure)을 설명할 수 있다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명 가운데 사용될 수 있는 "포함한다" 또는 "포함할 수 있다" 등의 표현은 발명된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 발명에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명에서 "또는" 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, "A 또는 B"는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명 가운데 "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들이 본 발명의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분 짓기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제 2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명의 실시 예에 따른 전자 장치는 저장 장치(storage device)를 포함하는 장치일 수 있다. 예를 들면, 전자 장치는 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted-device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 또는 스마트 와치(smartwatch))중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 저자 장치를 포함하는 스마트 가전 제품(smart home appliance)일 수 있다. 예를 들자면, 스마트 가전 제품은 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 또는 산업용 또는 가정용 로봇 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에 따르면, 전자 장치는 저장 장치를 포함하는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector) 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 발명에 따른 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 발명에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
이하 첨부된 도면을 참조하여 다양한 실시 예에 따른 전자 장치에 대해서 살펴본다. 다양한 실시 예에서 이용되는 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하 본 발명의 실시 예는 전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 기술에 대해 설명할 수 있다.
이하 본 발명의 실시 예에서 내부 장치는 전자 장치에 전기적 혹은 기계적으로 연결되는 장치를 나타낼 수 있다. 예를 들어, 내부 장치는 전자 장치 내부에 데이터 버스를 통하여 연결된 형태로 구성될 수 있다. 예를 들어, 내부 장치는 USB나 시리얼 인터페이스와 같은 외부 인터페이스를 통하여 전자 장치에 연결되는 것으로, 전자 장치에 탈삽이 가능한 형태로 구성될 수 있다. 예컨대, 내부 장치는 메모리, 저장장치, 키패드, 터치패널, 디스플레이 장치 등을 포함할 수 있다.
이하 설명에서 저장 장치의 펌웨어 갱신은 저장 장치에 포함되는 데이터를 저장하는 저장 영역과 저장 영역에 대한 데이터의 입출력을 제어하는 장치 인터페이스(device interface 또는 device controller) 중 장치 인터페이스의 펌웨어를 갱신하는 일련의 동작을 나타낼 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 장치의 블록도를 도시하고 있다.
도 1을 참조하면 전자장치(100)는 버스(110), 프로세서(120), 메모리(130), 입력 모듈(입력 인터페이스)(140), 표시 모듈(디스플레이)(150), 통신 모듈(통신 인터페이스)(160) 및 펌웨어 제어 모듈(170)을 포함할 수 있다. 여기서, 프로세서(120) 및 메모리(130) 중 하나 이상은 다수 개 존재할 수 있다.
버스(110)는 전자장치(100)에 포함되는 구성요소들을 서로 연결하고, 전자장치(100)에 포함되는 구성요소들 간의 통신을 제어할 수 있다.
프로세서(120)는 전자장치(100)가 다양한 서비스를 제공하도록 제어할 수 있다. 예를 들어, 프로세서(120)는 버스(110)를 통해 전자장치(100)에 포함되는 하나 이상의 다른 구성요소(예: 메모리(130), 입력 모듈(140), 표시 모듈(150), 통신 모듈(160), 펌웨어 제어 모듈(170))로부터 수신된 명령을 해독할 수 있고, 해독된 명령에 따른 연산이나 데이터 처리를 실행할 수 있다.
프로세서(120)는 메모리(130)에 저장된 하나 이상의 프로그램을 실행하여 전자 장치(100)가 다양한 서비스를 제공하도록 제어할 수 있다. 예를 들어, 전자 장치(100)의 부팅 시, 프로세서(120)는 메모리(130)에 저장된 커널 이미지와 램디스크 정보를 램(RAM)과 같은 휘발성 메모리(주 메모리 영역)로 로딩하고, 로딩한 커널 이미지를 이용하여 커널을 초기화한 후, 메모리(130)에 저장된 시스템 정보를 마운트할 수 있다. 만일, 펌웨어 제어 모듈(170)에서 내부 장치(예: 메모리(130))의 펌웨어가 갱신되는 경우, 프로세서(120)는 커널을 초기화한 후, 내부 장치(예: 메모리(130))의 펌웨어 갱신이 완료될 때까지 시스템 정보의 마운트를 지연시킬 수 있다. 여기서, 시스템 정보는 전자 장치(100)의 운영을 위한 플랫폼에 대한 정보를 포함할 수 있다. 시스템 정보의 마운트는 프로세서(120)가 시스템을 운영하기 위해 메모리(130)에 저장된 시스템 정보를 램(RAM)과 같은 휘발성 메모리 영역으로 로딩하는 일련의 동작을 나타낼 수 있다. 예컨대, 시스템 정보는 안드로이드 멀티미디어 프레임워크를 지원하는 전자 장치의 경우, 운영체제(예: 리눅스 커널)에서 마운트하는 안드로이드 커널, 시스템 라이브러리, 어플리케이션 런타임, 어플리케이션 프레임워크, 코어 어플리케이션과 같은 정보를 포함하는 시스템 파티션을 나타낼 수 있다.
펌웨어 제어 모듈(170)은 전자 장치(100)에 포함되는 내부 장치(예: 메모리(130))의 펌웨어를 갱신하도록 제어할 수 있다. 예를 들어, 메모리(130)에 대한 펌웨어 갱신 정보가 램디스크 정보로 저장된 경우, 펌웨어 제어 모듈(170)은 프로세서(120)에 의해 램디스크 영역으로 로딩된 펌웨어 갱신 정보를 이용하여 프로세서(120)에 의해 시스템 정보가 마운트되기 전에 메모리(130)의 펌웨어를 갱신하도록 제어할 수 있다. 예컨대, 펌웨어 제어 모듈(170)은 프로세서(120)에 의해 커널이 초기화된 경우, 프로세서(120)에 의해 커널 이미지와 함께 로딩된 펌웨어 갱신 정보를 이용하여 메모리(130)의 펌웨어를 갱신하도록 제어할 수 있다. 여기서, 펌웨어 갱신 정보는 메모리(130)의 펌웨어 갱신을 위한 제어 명령 및 메모리(130)의 펌웨어 갱신을 위한 데이터를 포함할 수 있다. 예컨대, 펌웨어 갱신 정보는 내부 장치의 펌웨어를 갱신하는 프로그램 및 내부 장치의 신규 펌웨어로 구성될 수 있으며, 커널에서 실행 가능한 하나 이상의 실행 파일의 형태로 구성될 수 있다.
다른 예를 들어, 전자 장치(100)의 구동 중 메모리(130)의 펌웨어 갱신을 위한 이벤트가 발생한 경우, 펌웨어 제어 모듈(170)은 메모리(130)에 저장된 메모리(130)의 펌웨어 갱신 정보를 램(RAM)과 같은 휘발성 메모리(주 기억 영역) 또는 플래시 메모리 또는 보조 플래시 메모리에 로딩할 수 있다. 펌웨어 제어 모듈(170)은 시스템 정보를 언마운트(unmount)하고, 메모리(130)로부터 로딩한 펌웨어 갱신 정보를 이용하여 메모리(130)의 펌웨어를 갱신하도록 제어할 수 있다. 여기서, 시스템 정보의 언마운트는 프로세서(120)에 의한 시스템의 운영을 위해 램(RAM)과 같은 휘발성 메모리 영역에 로딩된 시스템 정보를 휘발성 메모리 영역에서 제거하는 일련의 동작을 나타낼 수 있다.
메모리(130)는 전자장치(100)에 포함되는 하나 이상의 구성 요소(프로세서(120), 입력 모듈(140), 표시 모듈(150), 이미지 센서 모듈(160), 이미지 처리 모듈(170))로부터 수신되거나 하나 이상의 구성 요소에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 예를 들어, 메모리(130)는 메모리(130)의 펌웨어를 갱신하기 위한 펌웨어 갱신 정보를 저장할 수 있다. 예컨대, 메모리(130)는 커널 이미지와 인접한 램 디스크 영역 또는 메모리(130)의 임의의 영역에 메모리(130)의 펌웨어 갱신 정보를 저장할 수 있다.
메모리(130)는 명령 또는 데이터를 저장하는 저장 영역과 논리적 또는 물리적으로 분리되며, 프로세서(120) 및 펌웨어 제어 모듈(170) 중 적어도 하나에 의해 실행 또는 처리되는 명령 또는 데이터가 로딩되는 메모리 영역(예: 램(RAM)과 같은 휘발성 메모리(주 기억 영역)을 포함할 수 있다.
입력 모듈(입력 인터페이스)(140)은 사용자의 선택에 의해 발생하는 명령 또는 데이터를 버스(110)를 통해 프로세서(120) 또는 메모리(130)에 전송할 수 있다. 예를 들어, 입력 모듈(140)은 적어도 하나의 하드웨어 버튼을 포함하는 키패드, 터치 정보를 감지하는 터치 패널 중 하나 이상을 포함할 수 있다.
표시 모듈(150)은 사용자에게 화상, 영상 또는 데이터를 표시할 수 있다. 예를 들어, 표시 모듈(150)은 프로세서(120)에 의해 구동되는 응용프로그램 정보를 표시할 수 있다.
통신 모듈(160)은 적어도 하나의 다른 전자장치(104) 또는 서버(106) 또는 적어도 하나의 주변 기기와 전자 장치(100) 간의 통신을 연결할 수 있다. 예를 들어, 통신 모듈(160)은 근거리 통신 프로토콜(예: Wifi(wireless fidelity), 블루투스(Bluetooth), NFC(near field communication)) 또는 네트워크 통신 프로토콜(예: 인터넷, LAN(local area network), WAN(wire area network), 통신 네트워크(telecommunication network), 셀룰러 네트워크(cellular network), 위성 네트워크(satellite network) 또는 POTS(plain old telephone service)) 또는 유선 통신 프로토콜(예: USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface))를 지원할 수 있다. 이때, 통신 프로토콜(예: 근거리 통신 프로토콜, 네트워크 통신 프로토콜, 유선 통신 프로토콜)은 메모리(130)의 미들웨어 또는 어플리케이션 프로그래밍 인터페이스(API: application programming interface)에서 지원할 수 있다. 여기서, 다른 전자장치는 전자 장치(100)의 주변 기기로 전자 장치(100)와 동일한 타입의 장치이거나 또는 다른 타입의 장치를 포함할 수 있다.
상술한 실시 예에서 전자 장치(100)는 펌웨어 제어 모듈(170)을 이용하여 메모리(130)의 펌웨어를 갱신할 수 있다. 펌웨어 제어 모듈(170)은 소프트웨어로 구성되어, 전자 장치(100)의 호스트 시스템 내에서 동작하는 커널의 일부분으로 구현될 수 있다.
다른 실시 예에서 전자 장치(100)는 프로세서(120)를 이용하여 메모리(130)의 펌웨어를 갱신할 수 있다.
도 2는 본 발명의 실시 예에 따른 전자 장치의 상세 블록도를 도시하고 있다.
도 2를 참조하면 프로세서(120)는 메모리(130)와의 데이터 송수신을 제어하는 호스트 인터페이스(host interface 또는 host controller)(200)를 포함할 수 있다.
메모리(130)는 데이터를 저장하는 저장 영역(220)과 저장 영역(220)에 대한 데이터의 입출력을 제어하는 장치 인터페이스(210)를 포함할 수 있다. 예를 들어, 저장 영역(220)은 다수 개의 저장 영역들에 의한 메모리 배열 또는 하나의 저장 영역(미 도시)을 포함할 수 있다.
프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 펌웨어 갱신 정보를 이용하여 메모리(130)의 장치 인터페이스(210)에 대한 펌웨어를 갱신하도록 제어할 수 있다. 예를 들어, 전자 장치(100)의 부팅 시, 프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 커널 이미지와 램디스크 정보를 확인(reading)하고, 확인된 커널 이미지를 이용하여 커널을 초기화할 수 있다. 예컨대, 프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 커널 이미지와 램디스크 정보를 램(RAM)과 같은 휘발성 메모리(주 메모리 영역)로 로딩하고 로딩한 커널 이미지를 이용하여 커널을 초기화할 수 있다. 커널을 초기화한 경우, 프로세서(120)는 램디스크 정보에 포함되는 펌웨어 갱신 정보를 이용하여 메모리(130)의 장치 인터페이스(210)에 대한 펌웨어를 갱신하도록 제어할 수 있다. 이때, 펌웨어 갱신 정보는 커널 이미지와 함께 로딩되지만 커널 이미지와 구분되는 램디스크 정보에 포함되는 것으로, 프로세서(120)는 커널을 초기화하는 계층과 별도의 다른 계층에서 펌웨어 갱신 정보를 이용하여 메모리(130)의 펌웨어를 갱신하도록 제어할 수 있다. 메모리(130)의 펌웨어를 갱신한 경우, 프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 시스템 정보를 로딩하여 시스템을 구동할 수 있다. 여기서, 펌웨어 갱신 정보는 메모리(130)의 펌웨어 갱신을 위한 제어 명령 및 메모리(130)의 펌웨어 갱신을 위한 데이터를 포함할 수 있다.
다른 예를 들어, 전자 장치(100)의 구동 중 펌웨어 갱신을 위한 이벤트가 발생한 경우, 프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 메모리(130)에 대한 펌웨어 갱신 정보를 확인(reading)할 수 있다. 예컨대, 프로세서(120)는 메모리(130)의 저장 영역(220)에 저장된 메모리(130)에 대한 펌웨어 갱신 정보를 램(RAM)과 같은 휘발성 메모리(주 기억 영역) 또는 플래시 메모리 또는 보조 플래시 메모리에 로딩할 수 있다. 프로세서(120)는 시스템 정보를 언마운트(unmount)하고, 메모리(130)로부터 로딩한 펌웨어 갱신 정보를 이용하여 메모리(130)의 장치 인터페이스(210)에 대한 펌웨어를 갱신하도록 제어할 수 있다.
상술한 실시 예에서 프로세서(120)는 메모리(130)에 저장된 펌웨어 갱신 정보를 램(RAM)과 같은 휘발성 메모리(주 기억 영역) 또는 플래시 메모리 또는 보조 플래시 메모리에 로딩하여 메모리(130)의 장치 인터페이스(210)에 대한 펌웨어를 갱신할 수 있다. 프로세서(120)는 프로세서(120) 내부의 메모리(예: internal RAM) 또는 하기 도 3과 같이 별도의 메모리에 펌웨어 갱신 정보를 로딩하여 메모리(130)의 장치 인터페이스(210)에 대한 펌웨어를 갱신할 수 있다.
도 3은 본 발명의 다른 실시 에에 따른 전자 장치의 상세 블록도를 도시하고 있다.
도 3을 참조하면 프로세서(120)는 메모리(130)와의 데이터 송수신을 제어하는 호스트 인터페이스(300)를 포함할 수 있다.
메모리(130)는 프로세서(120)에서 구동되는 데이터가 로딩되는 제 1 메모리(310)와 데이터를 저장하는 제 2 메모리(320)를 포함할 수 있다. 여기서, 제 1 메모리(310)는 램(RAM)과 같은 휘발성 메모리 및 플래시 메모리 또는 보조 플래시 메모리와 같은 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 제 2 메모리(320)는 데이터를 저장하는 저장 영역(324)과 저장 영역(324)에 대한 데이터의 입출력을 제어하는 장치 인터페이스(322)를 포함할 수 있다. 예를 들어, 저장 영역(324)은 다수 개의 저장 영역들에 의한 메모리 배열 또는 하나의 저장 영역(미 도시)을 포함할 수 있다.
프로세서(120)는 제 2 메모리(320)의 저장 영역(324)에 저장된 펌웨어 갱신 정보를 제 1 메모리(310)에 로딩하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신하도록 제어할 수 있다. 예를 들어, 제 1 메모리(310)가 램과 같은 휘발성 메모리를 포함하는 경우, 프로세서(120)는 전자 장치(100)의 부팅 시, 제 2 메모리(320)의 저장 영역(324)에 저장된 커널 이미지와 램디스크 정보를 제 1 메모리(310)에 로딩하고, 제 1 메모리(310)에 로딩한 커널 이미지를 이용하여 커널을 초기화할 수 있다. 커널을 초기화한 경우, 프로세서(120)는 램디스크 정보에 포함되는 펌웨어 갱신 정보를 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신하도록 제어할 수 있다. 이때, 펌웨어 갱신 정보는 커널 이미지와 함께 로딩되지만 커널 이미지와 구분되는 램디스크 정보에 포함되는 것으로, 프로세서(120)는 커널을 초기화하는 계층과 별도의 다른 계층에서 펌웨어 갱신 정보를 이용하여 제 2 메모리(320)의 펌웨어를 갱신하도록 제어할 수 있다. 제 2 메모리(320)의 펌웨어를 갱신한 경우, 프로세서(120)는 제 2 메모리(320)의 저장 영역(324)에 저장된 시스템 정보를 제 1 메모리(310)로 로딩(예: 시스템 마운트)하여 시스템을 구동할 수 있다.
다른 예를 들어, 전자 장치(100)의 구동 중 펌웨어 갱신을 위한 이벤트가 발생한 경우, 프로세서(120)는 제 2 메모리(320)의 저장 영역(324)에 저장된 펌웨어 갱신 정보를 제 1 메모리(310)(예: 램 또는 플래시 메모리 또는 보조 플래시 메모리)로 로딩할 수 있다. 프로세서(120)는 시스템 정보를 언마운트(unmount)하고, 제 1 메모리(310)에 로딩된 펌웨어 갱신 정보를 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신하도록 제어할 수 있다.
상술한 실시 예에서 메모리(130)는 제 1 메모리(310)와 제 2 메모리(320)를 포함할 수 있다. 이때, 제 1 메모리(310)와 제 2 메모리(320)는 논리적 또는 물리적으로 분리되어 구성될 수 있다.
도 4는 본 발명의 실시 예에 따른 전자 장치에서 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시하고 있다.
도 4를 참조하면 전자 장치(100)는 401 동작에서 내부 장치의 펌웨어를 갱신을 위한 펌웨어 갱신 정보를 확인할 수 있다. 예를 들어, 부팅 시, 전자 장치(100)는 부트로더를 이용하여 메모리(130)에 저장된 커널 이미지와 램디스크 정보를 램(RAM)에 로딩하여 램 디스크 정보에 포함된 펌웨어 갱신 정보를 확인할 수 있다. 여기서, 펌웨어 갱신 정보는 무선 펌웨어 갱신 (FOTA: Firmware Over The Air)와 같은 방법을 통해 전자 장치(100)의 메모리(130)에 저장될 수 있다.
전자 장치(100)는 403 동작에서 펌웨어 갱신 정보를 이용하여 내부 장치(예: 메모리(130))의 펌웨어를 갱신할 수 있다. 예를 들어, 메모리(130)에 대한 펌웨어 갱신 정보가 램디스크 정보에 포함되어 저장된 경우, 전자 장치(100)는 램디스크 영역에 로딩된 메모리(130)의 펌웨어 갱신 정보를 이용하여 메모리(130)의 장치 인터페이스에 대한 펌웨어를 갱신할 수 있다. 예컨대, 전자 장치(100)는 커널 초기화를 위한 모듈과 논리적 또는 물리적으로 분리된 별도의 모듈을 이용하여 메모리(130)의 장치 인터페이스에 대한 펌웨어를 갱신할 수 있다.
내부 장치의 펌웨어를 갱신한 경우, 전자 장치(100)는 405 동작에서 시스템을 마운트할 수 있다. 예를 들어, 전자 장치(100)는 메모리(130)에 저장된 시스템 정보를 램(RAM)에 로딩할 수 있다.
도 5는 본 발명의 실시 예에 따른 전자 장치에서 부팅 시 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시하고 있다.
도 5를 참조하면 전자 장치(100)는 501 동작에서 부팅되는지 확인할 수 있다. 예를 들어, 전자 장치(100)는 전원이 인가되어 부팅되는지 확인할 수 있다.
부팅되는 경우, 전자 장치(100)는 503 동작에서 제 2 메모리(320)에 저장된 커널 이미지와 램디스크 정보를 제 1 메모리(310)(예: 램(RAM))에 로딩할 수 있다.
전자 장치(100)는 505 동작에서 제 1 메모리(310)에 로딩된 커널 이미지를 이용하여 커널을 초기화할 수 있다.
커널을 초기화한 경우, 전자 장치는 507 동작에서 내부 장치(예: 제 2 메모리(320))의 펌웨어를 갱신할 수 있다. 예를 들어, 제 2 메모리(320)에 대한 펌웨어 갱신 정보가 램디스크 정보에 포함되도록 저장된 경우, 전자 장치(100)는 커널 이미지와 함께 제 1 메모리(310)(예: 램(RAM))에 로딩된 펌웨어 갱신 정보를 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신할 수 있다. 예컨대, 전자 장치(100)는 커널 초기화를 위한 모듈과 논리적 또는 물리적으로 분리된 별도의 모듈을 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신할 수 있다.
내부 장치(예: 제 2 메모리(320))의 펌웨어를 갱신한 경우, 전자 장치는 509 동작에서 시스템을 마운트할 수 있다. 예를 들어, 전자 장치는 제 2 메모리(320)의 저장 영역(324)에 저장된 시스템 정보를 제 1 메모리(310)(예: 램(RAM))에 로딩할 수 있다.
도 6은 본 발명의 실시 예에 따른 전자 장치에서 펌웨어 버전에 기반하여 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시하고 있다.
도 6을 참조하면 도 4의 401 동작에서 펌웨어 갱신 정보를 확인하거나 또는 도 5의 505 동작에서 전자 장치(100)의 커널을 초기화한 경우, 전자 장치(100)는 601 동작에서 펌웨어 갱신 정보의 펌웨어 버전과 펌웨어를 갱신하기 위한 내부 장치(예: 메모리)의 펌웨어 버전을 확인할 수 있다. 예를 들어, 전자 장치(100)는 내부 장치의 기 설정된 레지스터를 이용하여 해당 내부 장치의 펌웨어 버전을 확인할 수 있다.
전자 장치(100)는 603 동작에서 펌웨어 갱신 정보의 펌웨어 버전과 펌웨어를 갱신하기 위한 내부 장치(예: 메모리)의 펌웨어 버전을 비교하여 내부 장치(예: 메모리)에 대한 펌웨어를 갱신할 것인지 결정할 수 있다. 예를 들어, 펌웨어 갱신 정보의 펌웨어 버전이 내부 장치(예: 메모리)의 펌웨어 버전과 동일하거나 이전 버전인 경우, 전자 장치(100)는 메모리에 대한 펌웨어를 갱신하지 않는 것으로 결정할 수 있다. 펌웨어 갱신 정보의 펌웨어 버전이 내부 장치(예: 메모리)의 펌웨어 버전보다 이후 버전인 경우, 전자 장치(100)는 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하는 것으로 결정할 수 있다.
603 동작에서 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하지 않는 경우, 전자 장치(100)는 도 4의 405 동작 또는 도 5의 509 동작에서 시스템을 마운트할 수 있다.
603 동작에서 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하는 경우, 전자 장치(100)는 605 동작에서 내부 장치(예: 메모리에 대한 장치 인터페이스)의 펌웨어를 갱신할 수 있다.
내부 장치(예: 메모리)의 펌웨어를 갱신한 경우, 전자 장치(100)는 607 동작에서 시스템을 재부팅하여 초기화할 수 있다.
607 동작에서 시스템을 재부팅한 경우, 전자 장치는 도 4의 401 동작에서 펌웨어 갱신 정보를 확인하거나, 도 5의 503 동작에서 제 2 메모리(320)에 저장된 커널 이미지와 램디스크 정보를 제 1 메모리(310)(예: 램(RAM))에 로딩할 수 있다.
도 7은 본 발명의 실시 예에 따른 전자 장치에서 구동 중 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시하고 있다.
도 7을 참조하면 전자 장치(100)는 701 동작에서 시스템 구동 중 펌웨어 갱신 이벤트가 발생하는지 확인할 수 있다. 예를 들어, 전자 장치(100)는 입력 모듈(140)을 통해 제공받은 입력 정보에 기반하여 펌웨어 갱신에 대한 이벤트가 발생하는지 확인할 수 있다. 여기서, 펌웨어 갱신에 대한 이벤트는 시스템 복원(recovery mode)에 대한 이벤트를 포함할 수 있다.
701 동작에서 펌웨어 갱신 이벤트가 발생한 경우, 전자 장치(100)는 703 동작에서 제 2 메모리(320)에 저장된 펌웨어 갱신 정보를 제 1 메모리(310)(예: 램(RAM) 또는 플래시 메모리 또는 보조 플래시 메모리)에 로딩할 수 있다.
전자 장치(100)는 705 동작에서 시스템 정보를 언마운트할 수 있다. 예를 들어, 전자 장치(100)는 제 1 메모리(310)에서 로딩된 시스템 정보를 제거할 수 있다.
시스템을 언마운트한 경우, 전자 장치는 707 동작에서 내부 장치(예: 제 2 메모리(320))의 펌웨어를 갱신할 수 있다. 예를 들어, 전자 장치(100)는 703 동작에서 제 1 메모리(310)(예: 램(RAM) 또는 플래시 메모리 또는 보조 플래시 메모리)에 로딩된 펌웨어 갱신 정보를 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신할 수 있다. 예컨대, 전자 장치(100)는 커널 초기화를 위한 모듈과 논리적 또는 물리적으로 분리된 별도의 모듈을 이용하여 제 2 메모리(320)의 장치 인터페이스(322)에 대한 펌웨어를 갱신할 수 있다.
도 8은 본 발명의 다른 실시 예에 따른 전자 장치에서 펌웨어 버전에 기반하여 내부 장치의 펌웨어를 갱신하기 위한 절차를 도시하고 있다.
도 8을 참조하면 도 7의 705 동작에서 시스템 정보를 언마운트한 경우, 전자 장치(100)는 801 동작에서 펌웨어 갱신 정보의 펌웨어 버전과 펌웨어를 갱신하기 위한 내부 장치(예: 메모리)의 펌웨어 버전을 확인할 수 있다.
전자 장치(100)는 803 동작에서 펌웨어 갱신 정보의 펌웨어 버전과 펌웨어를 갱신하기 위한 내부 장치(예: 메모리)의 펌웨어 버전을 비교하여 내부 장치(예: 메모리)에 대한 펌웨어를 갱신할 것인지 결정할 수 있다. 예를 들어, 펌웨어 갱신 정보의 펌웨어 버전이 내부 장치(예: 메모리)의 펌웨어 버전과 동일하거나 이전 버전인 경우, 전자 장치(100)는 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하지 않는 것으로 결정할 수 있다. 펌웨어 갱신 정보의 펌웨어 버전이 내부 장치(예: 메모리)의 펌웨어 버전보다 이후 버전인 경우, 전자 장치(100)는 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하는 것으로 결정할 수 있다.
803 동작에서 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하지 않는 경우, 전자 장치(100)는 본 알고리즘을 종료할 수 있다. 다른 예를 들어, 시스템 복원(recovery mode)에 대한 이벤트에 기반하여 내부 장치(예: 메모리)의 펌웨어 갱신 여부를 확인한 경우, 전자 장치는 807 동작에서 재부팅을 수행할 수도 있다.
803 동작에서 내부 장치(예: 메모리)에 대한 펌웨어를 갱신하는 경우, 전자 장치(100)는 805 동작에서 내부 장치(예: 메모리에 대한 장치 인터페이스)의 펌웨어를 갱신할 수 있다.
내부 장치(예: 메모리)의 펌웨어를 갱신한 경우, 전자 장치(100)는 807 동작에서 시스템을 재부팅하여 초기화할 수 있다.
도 9는 본 발명의 실시 예에 따른 펌웨어 갱신 정보의 구성을 도시하고 있다.
도 9를 참조하면 내부 장치의 펌웨어 갱신 정보(900)는 커널 이미지와 논리적 또는 물리적으로 분리된 램디스크 이미지의 일부로 저장 장치(예: 플래시 메모리)(보조 기억 장치)에서 저장될 수 있다. 예를 들어, 내부 장치의 펌웨어 갱신 정보(900)는 내부 장치의 펌웨어 갱신을 위한 제어 명령(실행 코드)와 내부 장치의 펌웨어 갱신을 위한 데이터를 포함할 수 있다. 펌웨어 갱신을 위한 데이터는 내부 장치에 대한 신규 펌웨어 데이터를 포함할 수 있다. 내부 장치의 펌웨어 갱신을 위한 제어 명령(실행 코드)은 내부 장치의 펌웨어 버전과 펌웨어 갱신을 위한 데이터에 포함된 신규 펌웨어 데이터의 버전을 비교하고, 비교 결과에 기반하여 내부 장치의 펌웨어를 수행하도록 제공하는 제어 명령을 포함할 수 있다. 여기서, 펌웨어 갱신 정보(900)는 실행 파일의 형태로 구성될 수 있다.
펌웨어 갱신 정보(900)는 무선 펌웨어 갱신 (FOTA)와 같은 방법을 통해 저장 장치에 저장 또는 갱신될 수 있다.
전자 장치(100)가 부팅되는 경우, 펌웨어 갱신 정보(900)는 전자 장치(100)의 부트로더에 의해 메인 메모리(예: RAM 또는 DRAM)의 램디스크 영역으로 로딩되어 전자 장치(100)의 프로세서(120) 또는 펌웨어 제어 모듈(170)에 의해 실행될 수 있다. 예를 들어, 펌웨어 갱신 정보(900)는 부트로더에 의해 커널 이미지가 메인 메모리에 로딩되는 시점에 메인 메모리(예: RAM 또는 DRAM)의 램디스크 영역으로 로딩될 수 있다.
본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금, 본 발명의 청구항 및/또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM, Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM, Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM, Compact Disc-ROM), 디지털 다목적 디스크(DVDs, Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 전자 장치에 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 전자 장치에 접속할 수 있다.
또한, 통신 네트워크상의 별도의 저장장치가 휴대용 전자 장치에 접속할 수도 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 전자 장치의 동작 순서가 변경 또는 병합되거나 재사용 가능하며 생략 등과 같이 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (23)

  1. 전자 장치에서 내부 장치의 펌웨어 갱신 방법에 있어서,
    커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  2. 제 1항에 있어서,
    상기 펌웨어 갱신 정보는, 램디스크 영역 또는 플래시 메모리 또는 보조 플래시 메모리에 적어도 하나의 파일 형태로 저장되는 방법.
  3. 제 2항에 있어서,
    상기 펌웨어 갱신 정보는, 상기 전자 장치의 부팅 시, 커널 이미지가 램(RAM)에 로딩되는 시점에 램디스크 영역에 로딩되는 방법.
  4. 제 1항에 있어서,
    상기 펌웨어 갱신 정보는, 상기 내부 장치의 펌웨어 갱신을 위한 제어 명령 및 펌웨어 갱신을 위한 데이터를 포함하는 방법.
  5. 제 1항에 있어서,
    상기 내부 장치의 펌웨어를 갱신하는 동작은,
    상기 펌웨어 갱신 정보의 펌웨어 버전과 상기 내부 장치의 펌웨어 버전을 비교하는 동작;
    상기 비교 결과에 기반하여 상기 내부 장치의 펌웨어 갱신 여부를 결정하는 동작;
    상기 내부 장치의 펌웨어를 갱신하는 것으로 결정한 경우, 상기 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  6. 제 1항에 있어서,
    상기 내부 장치의 펌웨어를 갱신하는 동작은,
    상기 펌웨어 갱신 정보를 이용하여 상기 전자 장치에 포함되는 저장 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  7. 제 6항에 있어서,
    상기 저장 장치의 펌웨어를 갱신하는 동작은,
    상기 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 상기 저장 장치의 펌웨어 갱신 정보를 램(RAM)의 램디스크 영역 또는 플래시 메모리 또는 보조 플래시 메모리로 로딩하는 동작;
    상기 램디스크 영역 또는 플래시 메모리 또는 보조 플래시 메모리로 로딩한 상기 저장 장치의 펌웨어 갱신 정보를 이용하여 상기 저장 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  8. 전자 장치에서 내부 장치의 펌웨어 갱신 방법에 있어서,
    상기 전자 장치의 구동 중 내부 장치의 펌웨어를 갱신하기 위한 펌웨어 갱신 정보를 확인하는 동작;
    상기 전자 장치의 시스템 정보를 언마운트(unmount)하는 동작;
    상기 펨웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  9. 제 8항에 있어서,
    상기 펌웨어 갱신 정보를 확인하는 동작은,
    상기 내부 장치의 펌웨어 갱신 정보를 램(RAM) 또는 플래시 메모리 또는 보조 플래시 메모리에 로딩하는 동작을 포함하는 방법.
  10. 제 8항에 있어서,
    상기 내부 장치의 펌웨어를 갱신하는 동작은,
    상기 펌웨어 갱신 정보를 이용하여 상기 전자 장치에 포함되는 저장 장치의 펌웨어를 갱신하는 동작을 포함하는 방법.
  11. 전자 장치에서 내부 장치의 펌웨어 갱신 방법에 있어서,
    커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 램디스크 영역으로 로딩하는 동작;
    상기 램디스크 영역에 로딩된 상기 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 동작;
    상기 전자 장치를 재부팅하는 동작을 포함하는 방법.
  12. 제 11항에 있어서,
    상기 램디스크 영역으로 로딩하는 동작은,
    상기 전자 장치의 부팅 시, 커널 이미지가 램(RAM)에 로딩되는 시점에 상기 내부 장치의 펌웨어 갱신 정보를 램디스크 영역으로 로딩하는 동작을 포함하는 방법.
  13. 전자 장치에 있어서,
    적어도 하나의 내부 장치;
    적어도 하나의 프로세서를 포함하며,
    상기 프로세서는, 커널(운영체제) 이미지와 논리적 또는 물리적으로 분리된 내부 장치의 펌웨어 갱신 정보를 이용하여 상기 적어도 하나의 프로세서 중 적어도 하나의 내부 장치의 펌웨어를 갱신하는 장치.
  14. 제 13항에 있어서,
    램(RAM) 또는 플래시 메모리 또는 보조 플래시 메모리를 더 포함하며,
    상기 펌웨어 갱신 정보는, 상기 램의 램디스크 영역 또는 플래시 메모리 또는 보조 플래시 메모리에 적어도 하나의 파일 형태로 저장되는 장치.
  15. 제 14항에 있어서,
    상기 프로세서는, 상기 전자 장치의 부팅 시, 커널 이미지가 상기 램에 로딩되는 시점에 램디스크 영역에 펌웨어 갱신 정보를 로딩하는 장치.
  16. 제 13항에 있어서,
    상기 펌웨어 갱신 정보는, 상기 내부 장치의 펌웨어 갱신을 위한 제어 명령 및 펌웨어 갱신을 위한 데이터를 포함하는 장치.
  17. 제 13항에 있어서,
    상기 프로세서는, 상기 펌웨어 갱신 정보의 펌웨어 버전과 상기 내부 장치의 펌웨어 버전의 비교 결과에 기반하여 상기 내부 장치의 펌웨어 갱신 여부를 결정하고, 상기 내부 장치의 펌웨어를 갱신하는 것으로 결정한 경우, 상기 펌웨어 갱신 정보를 이용하여 상기 내부 장치의 펌웨어를 갱신하는 장치.
  18. 제 13항에 있어서,
    저장 장치를 더 포함하며,
    상기 프로세서는, 상기 펌웨어 갱신 정보를 이용하여 상기 저장 장치의 펌웨어를 갱신하는 장치.
  19. 제 18항에 있어서,
    상기 저장 장치는, 데이터를 저장하는 저장 영역과 상기 저장 영역에 대한 데이터의 입출력을 제어하는 장치 인터페이스를 포함하고,
    상기 프로세서는, 상기 펌웨어 갱신 정보를 이용하여 상기 저장 장치에 포함되는 상기 장치 인터페이스의 펌웨어를 갱신하는 장치.
  20. 전자 장치에 있어서,
    적어도 하나의 내부 장치;
    적어도 하나의 프로세서를 포함하며,
    상기 프로세서는, 상기 전자 장치의 구동 중 상기 적어도 하나의 내부 장치 중 펌웨어를 갱신하기 위한 적어도 하나의 내부 장치의 펌웨어 갱신 정보를 확인하고, 상기 전자 장치의 시스템 정보를 언마운트(unmount)하고, 상기 펨웨어 갱신 정보를 이용하여 상기 펌웨어를 갱신하기 위한 적어도 하나의 내부 장치의 펌웨어를 갱신하는 장치.
  21. 제 20항에 있어서,
    램(RAM) 또는 플래시 메모리 또는 보조 플래시 메모리를 더 포함하며,
    상기 프로세서는, 펌웨어를 갱신하기 위한 내부 장치의 펌웨어 갱신 정보를 상기 램 또는 상기 플래시 메모리 또는 상기 보조 플래시 메모리에 로딩하는 장치.
  22. 제 20항에 있어서,
    저장 장치를 더 포함하며,
    상기 프로세서는, 상기 저장 장치의 펌웨어 갱신 정보를 이용하여 상기 저장 장치의 펌웨어를 갱신하는 장치.
  23. 제 20항에 있어서,
    상기 저장 장치는, 데이터를 저장하는 저장 영역과 상기 저장 영역에 대한 데이터의 입출력을 제어하는 장치 인터페이스를 포함하고,
    상기 프로세서는, 상기 펌웨어 갱신 정보를 이용하여 상기 저장 장치에 포함되는 상기 장치 인터페이스의 펌웨어를 갱신하는 장치.
KR1020140018955A 2014-02-19 2014-02-19 펌웨어를 갱신하기 위한 전자 장치 및 방법 KR20150098263A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140018955A KR20150098263A (ko) 2014-02-19 2014-02-19 펌웨어를 갱신하기 위한 전자 장치 및 방법
US14/186,747 US20150234650A1 (en) 2014-02-19 2014-02-21 Method of managing firmware and electronic device thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140018955A KR20150098263A (ko) 2014-02-19 2014-02-19 펌웨어를 갱신하기 위한 전자 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150098263A true KR20150098263A (ko) 2015-08-28

Family

ID=53798192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140018955A KR20150098263A (ko) 2014-02-19 2014-02-19 펌웨어를 갱신하기 위한 전자 장치 및 방법

Country Status (2)

Country Link
US (1) US20150234650A1 (ko)
KR (1) KR20150098263A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201525858A (zh) 2013-12-31 2015-07-01 Ibm 基板管理控制器與其韌體載入方法
CN105487904B (zh) * 2015-12-03 2018-12-11 珠海格力电器股份有限公司 一种程序升级文件的数据存储方法、装置和升级系统
CN106874032B (zh) * 2017-01-04 2020-09-04 青岛海信宽带多媒体技术有限公司 光模块固件升级的方法、装置及光模块
CN108334369A (zh) * 2017-09-05 2018-07-27 深圳天珑无线科技有限公司 设备刷机方法、装置及非易失性计算机存储介质
US10990380B2 (en) * 2017-09-21 2021-04-27 Western Digital Technologies, Inc. Power safe offline download
CN108304209B (zh) * 2018-02-28 2021-01-15 联想(北京)有限公司 固件升级方法及固件升级系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265289A (ja) * 1998-03-16 1999-09-28 Mitsubishi Electric Corp 情報処理装置および情報処理装置の高速初期起動方法
US7730295B1 (en) * 2006-09-05 2010-06-01 Western Digital Technologies, Inc. Updating firmware of a peripheral device
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US8898654B2 (en) * 2012-08-29 2014-11-25 Microsoft Corporation Secure firmware updates

Also Published As

Publication number Publication date
US20150234650A1 (en) 2015-08-20

Similar Documents

Publication Publication Date Title
KR20150099269A (ko) 펌웨어를 갱신하기 위한 전자 장치 및 방법
US11630553B2 (en) Electronic device and method for displaying history of executed application thereof
US11256496B2 (en) Apparatus and method for managing application
US9507604B2 (en) Boot method and boot system
CN106293507B (zh) 具有外部存储器的电子设备及操作电子设备的方法
US10181028B2 (en) Method and apparatus to sandbox run-time android applications with lightweight container
KR20150098263A (ko) 펌웨어를 갱신하기 위한 전자 장치 및 방법
US10366029B2 (en) Data transceiving method and device
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US9575740B2 (en) Apparatus and method for running multiple instances of a same application in mobile devices
KR102176645B1 (ko) 어플리케이션 운용 방법 및 이를 이용한 전자 장치
US10146557B2 (en) Method and electronic device for initializing memory and updating firmware
CN105809028B (zh) 在移动设备中运行相同应用的多个实例的装置和方法
US20160147499A1 (en) Method of exchanging information with external device and electronic device for the same
US20170078269A1 (en) Method for managing application and electronic device supporting the same
US20140181495A1 (en) System on chip including boot shell debugging hardware and driving method thereof
KR20150088059A (ko) 어플리케이션 관리 방법 및 그 방법을 처리하는 전자 장치
US9734344B2 (en) Providing control in a multi user environment
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
KR102612758B1 (ko) 원격 자동 설치를 위한 컴퓨터 시스템 및 방법
KR101529713B1 (ko) 비정상 전원절환에 대한 안드로이드 단말의 안정성 강화 방법 및 이를 위한 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR100673999B1 (ko) 이동통신 단말기의 부팅방법
US10417030B2 (en) Apparatus and method for compile time construction of memory structures
KR102488645B1 (ko) 가상 운영체제 서비스 제공을 위한 전자 장치 및 방법
US8819480B2 (en) Display apparatus and method for updating micom code thereof

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination