KR101515198B1 - 모바일 단말의 펌웨어 업그레이드 장치 및 방법 - Google Patents

모바일 단말의 펌웨어 업그레이드 장치 및 방법 Download PDF

Info

Publication number
KR101515198B1
KR101515198B1 KR1020130039542A KR20130039542A KR101515198B1 KR 101515198 B1 KR101515198 B1 KR 101515198B1 KR 1020130039542 A KR1020130039542 A KR 1020130039542A KR 20130039542 A KR20130039542 A KR 20130039542A KR 101515198 B1 KR101515198 B1 KR 101515198B1
Authority
KR
South Korea
Prior art keywords
firmware
section
boot loader
flag
upgrade
Prior art date
Application number
KR1020130039542A
Other languages
English (en)
Other versions
KR20140123143A (ko
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 KR1020130039542A priority Critical patent/KR101515198B1/ko
Priority to US14/242,195 priority patent/US20140310698A1/en
Publication of KR20140123143A publication Critical patent/KR20140123143A/ko
Application granted granted Critical
Publication of KR101515198B1 publication Critical patent/KR101515198B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

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

Abstract

본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치는 둘 이상의 펌웨어 섹션을 포함하는 펌웨어가 설치되며, 설치된 둘 이상의 펌웨어 섹션 중 백업된 펌웨어 섹션을 저장하는 저장부 및 업데이트 펌웨어를 펌웨어 섹션 별로 저장부에 설치하며, 설치된 업데이트 펌웨어 섹션에 오류가 발생하면, 오류가 발생한 업데이트 펌웨어 섹션에 대응하는 백업된 펌웨어 섹션을 복원하는 관리부를 포함한다. 둘 이상의 펌웨어 섹션은 하나의 펌웨어를 기능 또는 설치 단위에 기초하여 분할하여 생성된다.

Description

모바일 단말의 펌웨어 업그레이드 장치 및 방법{APPARATUS AND METHOD FOR FIRMWARE UPGRADE IN MOBILE DEVICE}
본 발명은 소프트웨어 업그레이드(Software Upgrade)에 관한 것으로서, 보다 상세하게는 모바일 기기의 펌웨어(Firmware) 업그레이드에 관한 것이다.
단순한 기능만을 한정적으로 제공하던 종래의 가전제품들이 보다 다양하고 복합적인 기능을 원하는 사용자의 필요에 따라 복잡한 기능과 성능을 구현하기 위해 마이크로 콘트롤러(Microcontroller) 또는 마이크로 프로세서(Microprocessor)가 적용되고 있다. 특히, 스마트폰의 보급에 힘입어 종래의 단순한 가전 기기들에 스마트 개념이 도입되면서, 매우 다양한 가전기기들에 마이크로 콘트롤러가 탑재되고 있는 실정이다. 이와 같이 마이크로 콘트롤러를 탑재한 가전기기는 내부의 메모리에 가전제품을 작동하기 위한 펌웨어(Firmware)를 저장하고 있다. 펌웨어 업그레이드는 이와 같이 제품의 성능을 향상 시키거나, 제품에 발행한 문제점을 해결하기 위한 방법으로 많이 사용된다. 특히, 스마트폰과 같은 스마트기기는 제품 성능의 향상을 위해 종종 펌웨어를 업그레이드 하며, 이러한 펌웨어 업그레이드는 스마트 기기의 성능을 향상시키는데 큰 영향을 미친다.
스마트 기기는 크게 USB 케이블과 같은 유선 연결을 통해 펌웨어를 업그레이드 하는 방식과 무선 펌웨어 업그레이드(Firmware Over The Air, FOTA)를 통해 펌웨어를 업그레이드 하는 방식이 많이 이용된다. 펌웨어 업그레이드는 유선 또는 무선으로 전송 받은 새로운 펌웨어를 통해 저장부에 저장되어 있던 기존의 펌웨어를 업데이트하거나 교체하는 것이다.
하지만 펌웨어 업그레이드를 진행하는 과정에서 스마트 기기의 전원이 부족하거나, 통신 장애 등 여러 가지 이유로 펌웨어를 업그레이드하는 과정에서 오류가 발생할 수 있다. 펌웨어 업그레이드 과정에서 오류가 발생하는 경우, 업그레이드하는 새로운 펌웨어가 제대로 설치되지 않는 문제뿐만 아니라, 현재 설치되어 있던 펌웨어가 손상되는 경우가 발생할 수 있다. 종래의 일반적인 펌웨어 업그레이드는 펌웨어를 업그레이드하는 과정에서 장애가 발생하면, 기본적으로 펌웨어 다운로드 모드(Download Mode)부터 다시 수행하도록 되어 있다. 하지만 시스템을 다운로드 모드로 진입하기 이전에 시스템을 구동시키는데 필수적인 부트로더(Boot loader)와 같은 영역이 손상되는 경우, 해당 스마트 기기는 정상적으로 부팅되거나 펌웨어를 다시 설치하는 과정에 진입하지도 못하는 치명적인 장애가 발생할 수 있다.
하지만, 주변 환경적 요인 또는 인위적 요인으로 펌웨어 업그레이드에서 오류가 발생하는 것을 미리 예측하거나 완전히 예방하기는 어렵다. 또한, 이와 같이 펌웨어를 업그레이드하는 과정에서 오류가 발생하여, 치명적인 오류가 발생하면 사용자가 직접 문제를 해결하기는 어려우며, 해당 스마트 기기의 제조업체에 수리를 의뢰해야 하는 불편함을 겪어야 한다.
본 발명이 해결하고자 하는 과제는 펌웨어 업그레이드 또는 펌웨어 업데이트 과정에서 갑작스런 장애가 발생하여, 펌웨어 업그레이드에 오류가 발생하더라도 해당 단말을 정상적으로 작동시키며, 펌웨어 업그레이드를 재실행 하기 위한 장치 및 방법을 제공하는 것이다.
본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치는 둘 이상의 펌웨어 섹션을 포함하는 펌웨어가 설치되며, 설치된 둘 이상의 펌웨어 섹션 중 백업된 펌웨어 섹션을 저장하는 저장부 및 업데이트 펌웨어를 펌웨어 섹션 별로 저장부에 설치하며, 설치된 업데이트 펌웨어 섹션에 오류가 발생하면, 오류가 발생한 업데이트 펌웨어 섹션에 대응하는 백업된 펌웨어 섹션을 복원하는 관리부를 포함한다. 둘 이상의 펌웨어 섹션은 하나의 펌웨어를 기능 또는 설치 단위에 기초하여 분할하여 생성된다.
본 발명에 따른 모바일 단말의 펌웨어 업그레이드 방법은 먼저, 다운로드 모드에서 수신된 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하고, 수신된 펌웨어 섹션을 업그레이드 한다. 그리고 업그레이드된 펌웨어 섹션의 부트로더 및 백업된 펌웨어 섹션의 부트로더 중에서 정상 작동하는 하나의 부트로더를 선택적으로 실행하여 모바일 단말을 정상적으로 부팅시킨다. 모바일 단말은 업그레이드 플래그의 설정값을 통해 펌웨어 업그레이드가 필요한지 여부를 판단하고, 판단 결과에 기초하여 다운로드 모드로 진입하게 된다.
업그레이드된 펌웨어 섹션의 부트로더 및 백업된 펌웨어 섹션의 부트로더 중에서 정상 작동하는 하나의 부트로더를 선택적으로 실행하는 과정은 먼저, 업그레이드된 펌웨어 섹션의 부트로더의 섹션 플래그의 설정값을 확인한다. 섹션 플래그에 의해 업그레이드된 펌웨어 섹션의 부트로더가 업그레이드를 정상적으로 완료하지 못했다고 판단되면, 백업된 펌웨어 섹션의 부트로더를 복구한다. 그리고 섹션 플래그에 의해 업그레이드된 펌웨어 섹션의 부트로더가 업그레이드를 정상적으로 완료되었다고 판단되면, 업그레이드된 펌웨어 섹션의 부트로더를 실행한다.
다운로드 모드에서 수신된 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하고, 수신된 펌웨어 섹션을 업그레이드 하는 단계는 하나의 펌웨어 섹션을 수신하고, 수신된 하나의 펌웨어 섹션에 대응하는 기존의 펌웨어 섹션을 백업한다. 그리고 수신된 하나의 펌웨어 섹션을 업그레이드하고, 단말을 재부팅 한다.
본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치 및 방법을 통해 펌웨어를 업그레이드 하는 과정에서 예상치 못한 장애가 발생하여 스마트 기기에 치명적인 오류가 발생하더라도, 백업된 부트로더에 의해 정상적으로 부팅되어 펌웨어 업그레이드를 재 수행 할 수 있다.
도 1은 본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치의 일 실시예를 나타내는 구성도이다.
도 2는 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 장치의 펌웨어 저장부의 상세도이다.
도 3은 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법의 부팅 과정의 상세도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세하게 설명한다. 본 명세서에서 사용되는 용어는 실시예에서의 기능 및 효과를 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자 또는 운용자의 의도 또는 업계의 관례 등에 따라 달라질 수 있다. 따라서 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 명시된 경우에는 명시된 정의에 따르며, 구체적으로 명시하지 않는 경우, 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치의 일 실시예를 나타내는 구성도이다.
도 1을 참조하면, 본 발명에 따른 모바일 단말의 펌웨어 업그레이드 장치는 관리부(100) 및 저장부(150)를 포함한다.
관리부(100)는 펌웨어 설치부(110) 및 제어부(130)를 포함하며, 저장부(150)는 펌웨어 저장부(151) 및 백업 저장부(153)를 포함한다.
펌웨어 설치부(110)는 제어부(130)로부터 수신된 펌웨어 설치 신호 또는 펌웨어 복원 신호에 기초하여 새로운 펌웨어를 설치(업그레이드)하거나, 백업 펌웨어를 복원한다. 펌웨어 설치부(110)는 USB 케이블과 같은 유선 연결을 통하거나, FOTA와 같은 무선 연결을 통해 새로운 펌웨어 데이터를 수신할 수 있다. 펌웨어 설치부(110)는 제어부(130)로부터 펌웨어 설치 신호가 전달되면, 수신된 새로운 펌웨어 데이터를 펌웨어 저장부(151)에 설치한다.
그리고 펌웨어 설치부(110)는 제어부(130)로부터 특정 펌웨어 섹션 또는 전체 펌웨어 섹션에 대한 펌웨어 복원 신호가 전달되면, 저장부(150)의 백업 저장부(153)로부터 복원을 위한 펌웨어 섹션 백업 데이터를 수신 받아 펌웨어 저장부(151)에 설치된 펌웨어를 복원한다. 백업 펌웨어 섹션 데이터는 기존에 설치되어 있던 정상적으로 실행되는 펌웨어를 백업한 데이터로서, 펌웨어를 둘 이상의 섹션으로 분할하여 저장한다. 펌웨어 설치부(110)는 수신된 백업 펌웨어 섹션 데이터에 따라 펌웨어 전체를 복원하거나 특정 펌웨어 섹션만을 복원할 수 있다.
제어부(130)는 펌웨어 설치부(110)가 새로운 펌웨어 데이터를 업그레이드를 위해 펌웨어 저장부(151)에 펌웨어 설치 데이터를 설치하기 전에, 먼저 펌웨어 저장부(151)에 펌웨어 섹션 백업 신호를 전달한다. 펌웨어 섹션 백업 신호는 펌웨어 저장부(151)가 펌웨어 업그레이드를 하기 전에, 현재 설치되어 정상적으로 동작하는 펌웨어를 섹션 별로 분할하여 백업하도록 하는 제어 명령이다. 제어부(130)는 펌웨어 섹션 백업 신호를 펌웨어 저장부(151)에 전달하여 펌웨어 저장부(151)가 현재 설치되어 있는 펌웨어를 둘 이상의 펌웨어 섹션으로 분할하여 백업하도록 한다. 하나의 펌웨어를 둘 이상의 펌웨어 섹션으로 나누는 기준은 각각의 기능을 구현하기 위한 단위 또는 분할하여 설치가 가능한 단위가 될 수 있다. 예를 들어, 모바일 단말에 설치되어 있는 하나의 펌웨어를 모바일 단말의 시스템을 구동하기 위한 부트로더(Boot loader), 커널(Kernel) 및 운영체제(Operating system, OS)로 분할하여 둘 이상의 펌웨어 섹션을 생성할 수 있다. 또한, 부트로더는 기능 및 목적에 따라 둘 이상의 부트로더로 분할하여 각각에 대한 펌웨어 섹션을 생성할 수 있다. 하나의 펌웨어 섹션을 둘 이상의 펌웨어 섹션으로 분할함으로써, 오류 발생 시 복원과정에서 펌웨어 전체를 로딩하여 복원할 필요 없이 오류가 발생한 해당 펌웨어 섹션만을 로딩하여 복원할 수 있다. 하나의 펌웨어를 둘 이상의 펌웨어 섹션으로 분할하는 기준은 운영체제 및 모바일 단말의 특성과 성능에 따라 달라질 수 있다.그리고 제어부(130)는 펌웨어 저장부(151)에 설치되어 있는 펌웨어의 동작을 감시한다. 펌웨어 설치부(110)에 의해 펌웨어 저장부(151)의 펌웨어가 업그레이드 되는 과정은 크게 펌웨어가 설치되는 모바일 단말이 부팅(Booting) 또는 재부팅(Rebooting)되는 과정, 모바일 단말의 시스템을 구동하기 위한 부트로더(Boot loader)를 호출하는 부팅 과정, 펌웨어 업그레이드를 위한 다운로드 모드(Download Mode) 과정 및 커널(Kernel) 호출 과정으로 구성된다. 제어부(130)는 펌웨어가 업그레이드 되는 여러 과정에서 플래그(Flag) 검사를 통해 펌웨어가 정상적으로 업그레이드되고 있는지를 감시할 수 있다. 플래그는 프로그램 실행 중에 특정 상태가 성립했는지 여부를 식별하기 위하여 조사되는 데이터의 항목으로, 식별 또는 표시를 목적으로 하여 데이터에 붙여지는 표시기(Indicator)이며, 일반적으로 1비트(bit) 크기의 플래그가 많이 사용된다.
만약 플래그 검사를 통해 펌웨어 업그레이드에 장애가 발생한 사실이 확인되면, 펌웨어에서 장애가 발생한 펌웨어 섹션을 정상적으로 설치되어 있던 이전 펌웨어를 복원할 수 있도록 펌웨어 설치부(110)로 펌웨어 복원 신호를 전달한다. 그리고 제어부(130)는 장애가 발생한 펌웨어 섹션을 복원하도록 백업 저장부(153)에 해당 펌웨어 섹션에 대한 백업 펌웨어 섹션 데이터를 펌웨어 설치부(110)에 전달하도록, 펌웨어 섹션 복원 신호를 전달한다. 제어부(130)가 플래그를 통해 펌웨어의 동작을 감시하는 것은 하나의 실시예일뿐, 플래그로 한정되는 것은 아니다. 운영체제 및 모바일 단말의 특성이나, 개발자의 설정에 따라 다양한 방법을 통해 펌웨어의 동작을 감시할 수 있다.
저장부(150)는 펌웨어 저장부(151) 및 백업 저장부(153)를 포함한다.
펌웨어 저장부(151)는 펌웨어 설치부(110)에 의해 모바일 단말을 구동하기 위한 펌웨어가 설치 및 저장된다. 펌웨어 설치부(110)에 의해 펌웨어 설치 데이터 또는 펌웨어 복원 데이터가 전달되면, 펌웨어 저장부(151)는 수신된 펌웨어 설치 데이터 또는 펌웨어 복원 데이터를 저장하여, 펌웨어를 업그레이드 하거나 펌웨어를 복원한다.
그리고 펌웨어 저장부(151)는 제어부(130)로부터 펌웨어 섹션 백업 신호가 전달되면, 현재 펌웨어 저장부(151)에 설치되어 정상적으로 동작하는 펌웨어를 설치되는 섹션 별로 분할하여 형성한 펌웨어 섹션 백업 데이터를 백업 저장부(153)로 전달한다. 펌웨어 섹션 백업 데이터는 하나의 펌웨어를 기능 또는 설치 단위에 따라 분할된 둘 이상의 펌웨어 섹션을 포함한다. 펌웨어 저장부(151)에서 제어부(130)로부터 수신된 펌웨어 섹션 백업 신호에 의해 기존의 펌웨어를 섹션 별로 백업하는 과정은 펌웨어 설치부(110)에 의해 해당 섹션에 대한 펌웨어 업그레이드를 수행되기 이전에 실시한다.
백업 저장부(153)는 펌웨어 저장부(151)로부터 수신된 펌웨어 섹션 백업 데이터를 저장한다. 그리고 제어부(130)로부터 펌웨어 섹션 복원 신호가 전달되면, 수신된 펌웨어 섹션 복원 신호에 기초하여 해당하는 하나 이상의 펌웨어 섹션 백업 데이터를 펌웨어 설치부(110)로 전달한다.
모바일 단말의 펌웨어 업그레이드 장치에 있어서, 세부 구성 요소의 펌웨어 복원 및 업그레이드 과정에서의 구체적인 처리 방법은 후술하는 도 2 및 도 3에서 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 장치의 펌웨어 저장부의 상세도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 장치의 펌웨어 저장부(151)에 설치되어 저장되어 있는 펌웨어는 둘 이상의 펌웨어 섹션으로 분할되어 설치 및 저장된다. 하나의 펌웨어를 둘 이상의 펌웨어 섹션으로 나누는 기준은 각각의 기능을 구현하기 위한 단위 또는 분할하여 설치가 가능한 단위가 될 수 있다. 모바일 단말에 설치되어 있는 하나의 펌웨어를 모바일 단말의 시스템을 구동하기 위한 제1 부트로더(151-1), 제2 부트로더(151-2), 제3 부트로더(151-3), 커널 섹션(151-4), 운영체제 섹션(151-5) 및 사용자 정의 정보 섹션(151-6)의 펌웨어 섹션으로 분할하여 펌웨어 저장부(151)에 설치할 수 있다. 제1 부트로더(151-1), 제2 부트로더(151-2) 및 제3 부트로더(151-3)는 펌웨어에 포함된 모바일 단말을 구동하기 위한 부트로더를 기능 및 설치 단위에 따라 셋으로 분할한 펌웨어 섹션이다. 커널 섹션(151-4)은 운영체제의 커널단(Kernel Layer)을 포함하는 펌웨어 섹션이며, 운영체제 섹션(151-5)는 모바일 단말의 운영체제를 포함하는 펌웨어 섹션이다. 또한, 사용자 정의 정보 섹션(151-6)은 펌웨어 및 운영체제에 대한 사용자의 설정에 대한 정보를 포함하는 펌웨어 섹션이다. 하나의 펌웨어는 기능 및 설치 단위에 따라 둘 이상의 펌웨어 섹션으로 분할하여 각각에 대한 펌웨어 섹션을 생성할 수 있다. 하나의 펌웨어 섹션을 둘 이상의 펌웨어 섹션으로 분할함으로써, 오류 발생 시 복원과정에서 펌웨어 전체를 로딩하여 복원할 필요 없이 오류가 발생한 해당 펌웨어 섹션만을 로딩하여 복원할 수 있다. 도 2에 따른 펌웨어 섹션 분할 기준은 하나의 실시예일뿐, 이로서 한정되는 것은 아니며, 운영체제 및 모바일 단말의 특성과 성능에 따라 달라질 수 있다
도 3은 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법을 나타내는 흐름도이다.
도 1 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법은 먼저, 모바일 단말이 펌웨어 업그레이드를 위해 부팅된다(301). 모바일 단말의 펌웨어 업그레이드 과정에서 펌웨어 설치는 모바일 단말의 OS(Operating System)가 실행되기 이전의 부팅 과정에서 수행된다.
모바일 단말이 부팅되면, 제어부(130)는 펌웨어 저장부(151)에 설치된 펌웨어에 따른 부트로더의 섹션 플래그를 검사한다(302). 섹션 플래그는 펌웨어의 각 섹션이 정상적으로 설치되었는지 확인하기 위한 지표(Indicator)로서, 펌웨어를 다운로드 하여 설치하는 펌웨어 설치 과정에서 각각의 펌웨어 섹션이 정상적으로 완료되었는지 여부를 나타낸다. 제어부(130)는 섹션 플래그의 설정값을 확인하여 펌웨어의 각 섹션이 정상적으로 설치되었는지 확인한다. 가령, 섹션 플래그의 설정값이 1이면 해당 펌웨어 섹션이 정상적으로 업그레이드가 완료되었음을 나타낸다. 섹션 플래그의 설정값이 1이 아니라면 해당 펌웨어 섹션이 정상적으로 완료되지 않았음을 나타낸다. 만약 섹션 플래그가 펌웨어의 각 섹션이 정상적으로 설치되지 않았다고 표시가 되면, 백업 저장부(153)에 저장된 백업된 펌웨어 섹션의 기존 이미지를 읽어온다.
따라서 제어부(130)는 먼저 부트로더 섹션이 정상적으로 설치되었는지 여부를 섹션 플래그를 통해 확인하고, 부트로더 섹션이 정상적으로 설치되지 않았다면, 백업 저장부(153)에 백업된 기존의 부트로더 섹션의 이미지를 불러온다(202-1). 만약 제어부(130)가 섹션 플래그를 통해 부트로더 섹션이 정상적으로 설치되었다고 판단하면, 현재 설치되어 있는 부트로더 섹션의 이미지를 그대로 불러온다(302-2).
다음으로 부트로더가 실행된다(303). 실행되는 부트로더는 새롭게 업그레이드된 펌웨어의 부트로더 또는 백업된 기존의 부트로더 일 수 있다. 펌웨어의 업그레이드가 정상적으로 완료된 경우, 새롭게 업그레이드된 부트로더가 실행된다. 반면에, 펌웨어의 업그레이드가 정상적으로 완료되지 못한 경우, 새롭게 설치된 부트로더는 정상 동작을 하지 못할 수 있다. 따라서, 펌웨어 저장부(151)에 백업된 기존의 부트로더를 불러와 사용한다. 이를 통해 펌웨어 설치 과정에서 부트로더가 정상적으로 설치되지 못하더라도 기존의 부트로더를 불러옴으로써, 정상적으로 부팅 과정이 수행될 수 있다.
302 및 303 단계에서는 제어부(130)에서 하나의 부트로더를 검사하여 실행되는 것으로 기재되어 있으나, 본 발명에서는 펌웨어는 둘 이상의 펌웨어 섹션으로 분할되어 있다. 따라서, 제어부(130)는 전체 부트로더를 한번에 검사하여 백업된 부트로더의 사용 여부를 결정하는 것이 아니라, 둘 이상의 부트로더 섹션에 대해 각각 플래그를 검사한다. 따라서 제어부(130)는 한번에 전체 부트로더를 기존의 부트로더로 교환하는 것이 아니라, 정상적으로 업그레이드가 진행된 부트로더 섹션은 유지하고, 정상적으로 업그레이드가 완료되지 않은 부트로더 섹션에 대해서만 백업된 부트로더 섹션을 불러오게 된다. 302 및 303 단계의 실시예는 후술하는 도 4에서 설명하도록 한다.
다음으로 제어부(130)는 업그레이드 플래그를 검사한다(304). 업그레이드 플래그는 펌웨어 업그레이드의 필요 유무를 판단하기 위한 지표이다. 즉, 업그레이드 플래그는 펌웨어 업그레이드 과정 전체가 정상적으로 완료되었음을 나타낸다. 섹션 플래그는 펌웨어 업그레이드 과정에서 부트로더에 해당하는 각각의 부트로더 섹션이 정상적으로 업그레이드 되었는지 여부를 판단하는 반면에, 업그레이드 플래그는 전체 펌웨어 업그레이드 과정의 완료 여부를 판단한다. 제어부(130)는 업그레이드 플래그 검사를 통해 펌웨어를 업그레이드할 필요성이 있는지 여부를 판단한다. 업그레이드 플래그가 1로 설정되어 있으면, 펌웨어 업그레이드 과정이 정상적으로 완료된 것을 나타내며, 업그레이드 플래그가 1이 아닌 다른 값으로 설정되어 있으면, 펌웨어 업그레이드가 필요한 것을 나타낸다. 업그레이드 플래그를 통해 펌웨어 업그레이드 필요 여부를 나타내기 위한 설정은 하나의 실시예일뿐 이것으로 한정되는 것은 아니다.
제어부(130)는 업그레이드 플래그 검사를 통해 펌웨어 업그레이드가 필요하다고 판단되면, 펌웨어 업그레이드 과정을 수행하기 위해 다운로드 모드로 진입한다(305). 다운로드 모드는 새로운 펌웨어 데이터를 각각의 섹션 별로 다운로드 하여 설치하는 과정이다.
다운로드 모드는 먼저 업그레이드 플래그를 0으로 설정한다(305-1). 업그레이드 플래그가 0으로 설정되면, 제어부(130)는 304단계에서 0으로 설정된 업그레이드 플래그를 통해 펌웨어 업그레이드가 필요하다고 판단할 수 있다. 따라서 0으로 설정된 업그레이드 플래그가 다시 1로 설정되지 않는다면, 펌웨어 업그레이드가 필요하다고 제어부(130)는 판단하게 된다.
다음으로 펌웨어 섹션을 다운로드 한다(305-2). 다운로드 한 펌웨어 섹션은 기능 또는 설치 단위에 따라 분할된 펌웨어 섹션 별로 설치를 진행한다.
그리고 현재 모바일 단말에 설치되어 있는 펌웨어의 둘 이상의 펌웨어 섹션 중에서 업데이트하려는 하나의 펌웨어 섹션과 대응하는 펌웨어 섹션을 백업 저장부(153)로 백업한다(305-3). 펌웨어 섹션을 업그레이드 하는 과정에서 펌웨어 섹션을 다운로드 하는 유/무선 통신 연결에 문제가 발생하거나, 모바일 단말의 전력 부족이나 모바일 단말에 오류가 발생하여 펌웨어 업그레이드 과정이 중간에 장애가 발생하면, 설치 중이던 펌웨어 섹션이 손상될 수 있다. 특히, 부트로더와 같이 모바일 단말을 부팅하는데 필요한 펌웨어 섹션이 손상되면, 모바일 단말이 사용이 불가능한 상태가 될 수 있다. 따라서, 펌웨어 섹션을 업그레이드 하기 전에 현재 모바일 단말에 설치되어 있는 펌웨어 섹션 중에서 설치하려는 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하여 백업 저장부(153)에 저장한다.
다음으로 섹션 플래그를 0으로 설정한다(305-4). 섹션 플래그는 각각의 펌웨어 섹션이 정상적으로 업그레이드가 완료되었는지 여부를 판단하기 위한 지표이다. 섹션 플래그를 0으로 설정하고, 각각의 펌웨어 섹션에 대한 업그레이드가 정상적으로 완료되면 섹션 플래그를 다시 1로 설정한다. 만약 펌웨어 섹션의 업그레이드가 정상적으로 완료되지 않는다면, 섹션 플래그가 0으로 유지되기 때문에 302 단계에서 제어부(130)가 해당 펌웨어 섹션이 정상적으로 업그레이드 되지 않았다고 판단할 수 있다. 따라서 302 단계에서 제어부(130)는 0으로 설정된 섹션 플래그를 통해 해당 펌웨어 섹션에 문제가 있음을 확인할 수 있다.
다음으로 305-2 단계에서 다운로드 받은 하나의 펌웨어 섹션을 램(Random Access Memory, RAM)으로 불러들이고(305-5), 다운로드 받은 하나의 펌웨어 섹션을 현재 설치되어 있는 펌웨어에서 해당하는 섹션에 쓴다(305-6). 305-5 및 305-6 단계를 통해 다운로드 받은 하나의 펌웨어 섹션으로 대응하는 기존의 펌웨어 섹션을 업그레이드한다.
그리고 305-1에서 0으로 설정한 섹션 플래그를 다시 1로 설정한다(305-7). 305-1 단계에서 305-6 단계까지 진행하면서, 하나의 펌웨어 섹션에 대한 업그레이드를 진행한다. 따라서 섹션 플래그를 다시 1로 설정함으로써, 302 단계에서 제어부(130)는 해당 펌웨어 섹션이 정상적으로 업그레이드 되었음을 확인할 수 있다.
다음으로 업그레이드 해야 할 다른 펌웨어 섹션이 존재하는지 여부를 판단한다(305-8). 펌웨어를 업그레이드하는 과정에서, 펌웨어를 하나 이상의 펌웨어 섹션으로 분할하여 업그레이드를 진행한다. 따라서 펌웨어 업그레이드는 하나의 펌웨어 섹션만을 업그레이드 할 수 있으며, 둘 이상의 펌웨어 섹션을 업그레이드 할 수 있다. 업그레이드를 필요로 하는 추가적인 펌웨어 섹션이 존재한다면, 305-2 단계로 되돌아가 다른 펌웨어 섹션을 다운로드 한다. 한번에 하나의 펌웨어 섹션이 업그레이드가 되며, 둘 이상의 펌웨어 섹션을 업그레이드 하는 경우, 305-8 단계의 판단에 따라 하나의 펌웨어 섹션씩 순차적으로 업그레이드 된다.
만약 305-8 단계에서 더 이상의 펌웨어 섹션 업그레이드가 없다고 판단하면, 업그레이드 플래그를 다시 1로 설정한다(305-9). 305-1 단계에서 업그레이드 플래그를 0으로 설정하고, 펌웨어 섹션 업그레이드를 진행하였다. 업그레이드 플래그를 다시 1로 설정함으로써, 304 단계에서 제어부(130)는 펌웨어 업그레이드가 완료 되었음을 확인하고, 추가적인 펌웨어 업그레이드가 필요 없다고 판단할 수 있다.
다운로드 받은 펌웨어 섹션을 모두 설치하면, 펌웨어 업그레이드를 완료하기 위해 다운로드 모드를 종료하고 모바일 단말을 재부팅 한다(305-10). 새로운 펌웨어 섹션을 다운로드 받아 펌웨어 업그레이드를 진행한 후, 새롭게 설치된 펌웨어를 모바일 단말에 적용하기 위해 모바일 단말을 재부팅 한다. 재부팅 된 모바일 단말은 201 단계부터 다시 순차적으로 진행한다. 재부팅 된 모바일 단말은 205 단계의 다운로드 모드에서 설정된 업그레이드 플래그 및 섹션 플래그의 설정값을 통해 각각의 펌웨어 섹션에 대한 업그레이드가 정상적으로 완료가 되었는지 여부를 판단(302)하고, 정상적으로 완료되지 않았다면 해당 펌웨어 섹션에 대한 백업된 펌웨어 섹션을 다시 불러온다(302-1). 이를 통해 특정 펌웨어 섹션에 오류가 발생해도 모바일 단말은 정상적으로 부팅되어 204 단계를 통해 다운로드 모드로 진입하여 펌웨어 업그레이드를 다시 실행할 수 있다.
상술한 305 단계의 다운로드 모드에서는 모든 펌웨어 섹션에 대해 대응하는 기존의 펌웨어 섹션을 백업하여 저장하고, 펌웨어 섹션 업그레이들 진행한다. 하지만, 모바일 단말은 부팅한 뒤 부트로더가 정상적으로 실행된다면, 304 단계를 통해 다운로드 모드로 진입하여 펌웨어 업그레이드를 진행할 수 있다. 따라서 304 단계 이전에 반드시 실행이 되야 하는 부트로더 섹션 및 기타 필수적인 펌웨어 섹션을 제외한 섹션들은 업그레이드 과정에서 손상된다 하여도 모바일 단말이 다운로드 모드로 진입할 수 있다. 따라서 부트로더 섹션 및 기타 필수적인 섹션을 제외한 펌웨어 섹션에 대해 기존 펌웨어 섹션 백업 및 섹션 플래그 설정 단계를 생략할 수 있다.
304 단계에서 업그레이드 플래그의 설정값이 1이라면, 전체 펌웨어 업그레이드가 정상적으로 완료되었다고 판단하고, 커널(Kernel) 및 OS 등과 같은 펌웨어 섹션을 실행을 완료(306)하여 모바일 단말을 초기화면(IDLE) 상태로 만든다(307).
도 3에 따른 모바일 단말의 펌웨어 업그레이드 방법에서는 다운로드 모드 진입 단계(305 단계) 이전에 실행되는 부트로더 펌웨어 섹션을 백업 및 복원(202,203,205 단계)하고, 다운로드 모드 진입 단계(305 단계) 이후에 실행되는 커널 및 운영체제 펌웨어 섹션은 별도로 백업 및 복원하는 과정을 진행하지 않는다. 하지만, 본 발명에서 부트로더 펌웨어 섹션에 대해서만 펌웨어 섹션의 백업 및 복원(202,203,205 단계)을 진행하는 것은 하나의 실시예일뿐, 이로서 한정되는 것은 아니다. 본 발명에서는 모바일 단말을 실행하기 위해 다운로드 모드 진입 단계(305 단계) 이전에 반드시 실행되어야 하는 펌웨어 섹션에 대해 백업 및 복원 과정(202,203,205 단계)을 수행한다. 즉, 모바일 단말 또는 설치된 운영체제에 따라 다운로드 모드 진입 단계(305 단계) 이전에 커널 및 운영체제가 실행되어야 한다면, 커널 펌웨어 섹션 및 운영체제 펌웨어 섹션에 대해서도 백업 및 복원 과정(202,203,205 단계)을 수행한다. 커널 및 운영체제가 실행된 이후 다운로드 모드 진입 단계(305 단계)를 실행하는 경우, 커널 펌웨어 섹션 및 운영체제 펌웨어 섹션 또한 각각 플래그를 설정하고, 정상적으로 설치되었는지 여부를 판단하여 복원 여부를 결정한다.도 4는 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법의 부팅 과정의 상세도이다.
도 3 및 도 4를 참조하면, 본 발명의 일 실시예에 따른 모바일 단말의 펌웨어 업그레이드 방법에서 부팅 과정은 도 3의 301 단계에서 303 단계까지를 포함한다. 부팅 과정에서 하나 이상의 섹션 플래그 각각의 설정값을 통해 해당 섹션 플래그에 대응하는 펌웨어 섹션이 정상적으로 업그레이드가 완료되었는지 여부를 판단할 수 있다.
모바일 단말이 재부팅 되면, 먼저 부팅과정에서 제일 먼저 실행이 되어야 할 제1 부트로더에 대응하는 제1 플래그 섹션의 설정값이 1인지 여부를 판단한다(401).
만약 제1 플래그 섹션의 설정값이 1이 아니라면, 백업된 제1 부트로더를 로드(Load)한다(402). 제1 플래그 섹션의 설정값이 1이 아니라면, 제1 플래그 섹션에 대응하는 제1 부트로더가 정상적으로 업그레이드가 완료되지 않았다는 것을 나타낸다. 따라서 업그레이드를 진행하던 제1 부트로더에 오류가 발생한 것으로 판단하고, 도 3의 305-3 단계를 통해 백업한 제1 부트로더를 다시 로드 한다.
만약 제1 플래그 섹션의 설정값이 1이라면, 업그레이드된 제1 부트로더를 로드 한다(403). 제1 플래그 섹션의 설정값이 1이라면, 제1 플래그 섹션에 대응하는 제1 부트로더가 정상적으로 업그레이드가 완료되었다는 것을 나타낸다. 따라서 업그레이드가 완료된 제1 부트로더를 로드 한다.
다음으로 로드 된 제1 부트로더를 실행한다(404). 제1 섹션 플래그의 설정값에 따라 업그레이드된 제1 부트로더를 로드 하거나, 또는 백업된 제1 부트로더를 로드하고, 로드 된 제1 부트로더를 실행한다. 이를 통해 제1 부트로더를 업그레이드 하는 과정에서 장애가 발생하여 제1 부트로더에 오류 발생 여부와 관계없이 정상적으로 제1 부트로더를 로드 하여 실행할 수 있다.
제1 부트로더가 정상적으로 실행되면, 다음으로 제2 섹션 플래그의 설정값이 1인지 여부를 판단한다(405).
만약 제2 플래그 섹션의 설정값이 1이 아니라면, 백업된 제2 부트로더를 로드(Load)한다(406). 제2 플래그 섹션의 설정값이 1이 아니라면, 제2 플래그 섹션에 대응하는 제2 부트로더가 정상적으로 업그레이드가 완료되지 않았다는 것을 나타낸다. 따라서 업그레이드를 진행하던 제2 부트로더에 오류가 발생한 것으로 판단하고, 도 2의 405-3 단계를 통해 백업한 제2 부트로더를 다시 로드 한다. 제2 부트로더는 모바일 단말을 구동하기 위한 둘 이상의 부트로더 섹션 중 하나의 섹션으로 제1 부트로더 다음으로 실행되는 부트로더이다.
만약 제2 플래그 섹션의 설정값이 1이라면, 업그레이드된 제2 부트로더를 로드 한다(407). 제1 플래그 섹션의 설정값이 1이라면, 제2 플래그 섹션에 대응하는 제2 부트로더가 정상적으로 업그레이드가 완료되었다는 것을 나타낸다. 따라서 업그레이드가 완료된 제2 부트로더를 로드 한다.
다음으로 로드 된 제2 부트로더를 실행한다(408). 제1 섹션 플래그의 설정값에 따라 업그레이드된 제2 부트로더를 로드 하거나, 또는 백업된 제2 부트로더를 로드하고, 로드 된 제2 부트로더를 실행한다. 이를 통해 제2 부트로더를 업그레이드 하는 과장에서 장애가 발생하여 제1 부트로더에 오류 발생 여부와 관계없이 정상적으로 제1 부트로더를 로드 하여 실행할 수 있다.
제2 부트로더가 실행되면, 401 단계와 마찬가지로 제3 섹션 플래그의 설정값이 1인지 여부를 판단한다(409). 제3 섹션 플래그의 설정값이 1이 아니라면, 제3 펌웨어 섹션이 손상된 것으로 판단하고, 백업된 제3 펌웨어 섹션을 로드 한다(410). 반면에 제3 섹션 플래그의 설정값이 1이라면, 업그레이드된 제3 펌웨어 섹션을 로드 한다(411). 그리고 로드 된 제3 펌웨어를 실행한다(412). 제3 펌웨어 섹션은 부팅 과정에서 반드시 실행되어야 하는 펌웨어로서, 제1 및 제2 부트로더 이후 실행되는 제3 부트로더이거나, 또는 각 제조사의 설계에 따라 부팅 과정에서 도 3의 304 단계에 따른 다운로드 모드 진입 이전에 반드시 실행되어야 하는 펌웨어 섹션을 나타낸다.
제1 섹션 플래그, 제2 섹션 플래그 및 제3 섹션 플래그의 설정값을 통해 제1 부트로더, 제2 부트로더 및 제3 펌웨어 섹션이 정상적으로 업그레이드가 완료되었는지를 확인하고, 오류가 있다면 백업된 기존의 펌웨어 섹션을 로드 하여 사용할 수 있다. 이를 통해, 펌웨어 업그레이드 과정에서 일부 펌웨어 섹션에 오류가 발생해도, 모바일 단말이 다시 펌웨어 업그레이드를 위한 다운로드 모드로 진입할 수 있다. 따라서, 펌웨어 업그레이드 과정에서 발생한 문제로 인해 모바일 단말이 사용 불가능 상태로 되는 것을 방지할 수 있다. 도 4에서 섹션 플래그 및 부트로더를 세 개로 한정하였으나, 이것은 하나의 실시예일뿐, 세 개의 세션 플래그 및 부트로더로 한정되는 것은 아니다. 각 제조사의 설정에 따라 부트로더를 다양한 숫자로 분할할 수 있으며, 분할된 부트로더의 수에 따라 섹션 플래그의 개수 또한 설정될 수 있다.
이상 바람직한 실시예를 들어 본 발명을 상세하게 설명하였으나, 본 발명은 전술한 실시예에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형이 가능하다.
110: 펌웨어 설치부
130: 제어부
150: 저장부
151: 펌웨어 저장부
153: 백업 저장부

Claims (11)

  1. 둘 이상의 펌웨어 섹션을 포함하는 펌웨어가 설치되며, 상기 설치된 둘 이상의 펌웨어 섹션 중 백업된 펌웨어 섹션을 저장하는 저장부; 및
    수신된 업데이트 펌웨어를 펌웨어 섹션 별로 상기 저장부에 설치하며, 상기 설치된 업데이트 펌웨어 섹션에 오류가 발생하면, 상기 오류가 발생한 업데이트 펌웨어 섹션에 대응하는 백업된 펌웨어 섹션을 복원하는 관리부;
    를 포함하며,
    상기 관리부는 상기 설치된 펌웨어에서 부트로더(Boot loader)를 분할하여 백업하고, 펌웨어 업데이트 과정에서 오류가 발생하면, 상기 백업된 부트로더를 복원하여 모바일 단말을 부팅하고, 펌웨어 업데이트 과정을 재수행하며,
    모바일 단말이 부팅되면 상기 저장부에 설치된 펌웨어에 따른 부트로더의 섹션 플래그를 검사하여 부트로더 섹션 정상 설치 여부를 판단하는 제어부;
    를 더 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 장치.
  2. 제 1항에 있어서,
    상기 둘 이상의 펌웨어 섹션은 하나의 펌웨어를 기능 또는 설치 단위에 기초하여 분할하여 생성되는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 장치.
  3. 제 1항에 있어서,
    상기 저장부는,
    상기 수신된 업데이트 펌웨어가 펌웨어 섹션 별로 설치되는 펌웨어 저장부; 및
    상기 하나 이상의 백업된 펌웨어 섹션을 저장하는 백업 저장부;
    를 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 장치.
  4. 삭제
  5. 설치될 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하고, 상기 펌웨어 섹션을 업그레이드 하는 단계; 및
    상기 업그레이드된 펌웨어 섹션의 부트로더 및 상기 백업된 펌웨어 섹션의 부트로더 중에서 정상 작동하는 하나의 부트로더를 선택적으로 실행하는 단계;
    를 포함하며,
    상기 펌웨어 섹션을 백업하는 단계는,
    상기 설치된 펌웨어 섹션에서 부트로더(Boot loader)를 분할하여 백업하고,
    상기 하나의 부트로더를 선택적으로 실행하는 단계는,
    펌웨어 업데이트 과정에서 오류가 발생하면, 상기 백업된 부트로더를 복원하여 모바일 단말을 부팅하고, 펌웨어 업데이트 과정을 재수행하며,
    상기 하나의 부트로더를 선택적으로 실행하는 단계는,
    모바일 단말이 부팅되면 저장부에 설치된 펌웨어에 따른 부트로더의 섹션 플래그를 검사하여 부트로더 섹션 정상 설치 여부를 판단하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  6. 제 5항에 있어서,
    업그레이드 플래그의 설정값을 통해 펌웨어 업그레이드가 필요한지 여부를 판단하는 단계; 및
    상기 판단 결과에 기초하여 상기 펌웨어를 수신하는 단계;
    를 더 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  7. 제 5항에 있어서,
    상기 업그레이드된 펌웨어 섹션의 부트로더 및 상기 백업된 펌웨어 섹션의 부트로더 중에서 정상 작동하는 하나의 부트로더를 선택적으로 실행하는 단계는,
    상기 업그레이드된 펌웨어 섹션의 부트로더의 섹션 플래그의 설정값을 확인하는 단계;
    상기 섹션 플래그에 의해 상기 업그레이드된 펌웨어 섹션의 부트로더가 업그레이드를 정상적으로 완료하지 못했다고 판단되면, 상기 백업된 펌웨어 섹션의 부트로더를 복구하는 단계; 및
    상기 섹션 플래그에 의해 상기 업그레이드된 펌웨어 섹션의 부트로더가 업그레이드를 정상적으로 완료되었다고 판단되면, 상기 업그레이드된 펌웨어 섹션의 부트로더를 실행하는 단계;
    를 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  8. 제 5항에 있어서,
    상기 펌웨어 섹션은 전체 펌웨어를 둘 이상으로 분할하여 생성된 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  9. 제 5항에 있어서,
    다운로드 모드에서 수신된 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하고, 상기 수신된 펌웨어 섹션을 업그레이드 하는 단계는,
    하나의 펌웨어 섹션을 수신하는 단계;
    상기 수신된 하나의 펌웨어 섹션에 대응하는 기존의 펌웨어 섹션을 백업하는 단계;
    상기 수신된 하나의 펌웨어 섹션을 업그레이드하고, 상기 단말을 재부팅 하는 단계;
    를 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  10. 제 9항에 있어서,
    상기 수신된 하나의 펌웨어 섹션이 업그레이드되면, 섹션 플래그를 상기 수신된 하나의 펌웨어 섹션의 업그레이드 완료로 설정하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
  11. 제 5항에 있어서,
    다운로드 모드에서 수신된 펌웨어 섹션에 대응하는 펌웨어 섹션을 백업하고, 상기 수신된 펌웨어 섹션을 업그레이드 하는 단계는,
    업그레이드 플래그를 펌웨어 업그레이드가 필요한 상태로 설정하는 단계;
    하나의 펌웨어 섹션을 수신하는 단계;
    상기 수신된 하나의 펌웨어 섹션에 대응하는 기존의 펌웨어 섹션을 백업하는 단계;
    상기 수신된 하나의 펌웨어 섹션에 대한 섹션 플래그를 업그레이드 미완료 상태로 설정하는 단계;
    상기 수신된 하나의 펌웨어 섹션으로 상기 기존의 펌웨어 섹션을 업그레이드 하는 단계;
    상기 섹션 플래그를 업그레이드 완료 상태로 설정하는 단계; 및
    모든 펌웨어 섹션이 업그레이드 되면, 상기 업그레이드 플래그를 업그레이드 완료 상태로 설정하는 단계;
    를 포함하는 것을 특징으로 하는 모바일 단말의 펌웨어 업그레이드 방법.
KR1020130039542A 2013-04-10 2013-04-10 모바일 단말의 펌웨어 업그레이드 장치 및 방법 KR101515198B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130039542A KR101515198B1 (ko) 2013-04-10 2013-04-10 모바일 단말의 펌웨어 업그레이드 장치 및 방법
US14/242,195 US20140310698A1 (en) 2013-04-10 2014-04-01 Apparatus and method for upgrading firmware of mobile terminal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130039542A KR101515198B1 (ko) 2013-04-10 2013-04-10 모바일 단말의 펌웨어 업그레이드 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140123143A KR20140123143A (ko) 2014-10-22
KR101515198B1 true KR101515198B1 (ko) 2015-05-11

Family

ID=51687706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130039542A KR101515198B1 (ko) 2013-04-10 2013-04-10 모바일 단말의 펌웨어 업그레이드 장치 및 방법

Country Status (2)

Country Link
US (1) US20140310698A1 (ko)
KR (1) KR101515198B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201441932A (zh) * 2013-04-19 2014-11-01 Nuvoton Technology Corp 處理裝置與系統程式更新方法
EP2955629B1 (en) * 2014-06-11 2021-10-27 Home Control Singapore Pte. Ltd. System for installing new firmware on a small-memory device
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
KR102274668B1 (ko) * 2014-11-18 2021-07-08 현대모비스 주식회사 차량용 avn 시스템의 소프트웨어 업데이트 제어 장치 및 방법
DE102014118546A1 (de) * 2014-12-12 2016-06-16 Schneider Electric Automation Gmbh Verfahren zum Update von Firmware von Geräten
CN104536848B (zh) 2014-12-22 2018-05-08 小米科技有限责任公司 固件恢复方法、装置和终端
US9959125B2 (en) * 2015-08-05 2018-05-01 Samsung Electronics Co., Ltd. Field update of boot loader using regular device firmware update procedure
CN106020905B (zh) * 2016-05-31 2021-01-26 阿里云计算有限公司 一种微控制器固件开发与更新的方法及系统
US10606605B2 (en) * 2016-09-29 2020-03-31 Verizon Patent And Licensing, Inc. Software upgrade and disaster recovery on a computing device
US10241803B2 (en) * 2016-10-03 2019-03-26 Schneider Electric It Corporation System and method for updating device software
CN106528336B (zh) * 2016-11-02 2019-08-20 天津市捷威动力工业有限公司 一种防止bms软件升级失败导致不能重新开机启动的方法
US10353779B2 (en) * 2017-05-05 2019-07-16 Dell Products L.P. Systems and methods for detection of firmware image corruption and initiation of recovery
CN109491688A (zh) * 2018-11-16 2019-03-19 珠海云洲智能科技有限公司 对无人船的控制设备进行固件升级的方法、装置及系统
CN109542486A (zh) * 2018-11-23 2019-03-29 珠海格力电器股份有限公司 一种终端设备固件升级系统及其方法与空调
KR102711942B1 (ko) 2019-01-11 2024-09-27 주식회사 엘지에너지솔루션 에러 복구 방법, 이를 이용한 마이크로 컨트롤러 유닛, 및 상기 마이크로 컨트롤러를 포함하는 배터리 장치
KR20210128628A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 전자 장치와, 이를 위한 데이터 저장 장치 및 동작 방법
CN112286551B (zh) * 2020-10-22 2024-01-09 广州华欣电子科技有限公司 触摸设备的固件升级纠错方法和控制装置
CN112363739B (zh) * 2021-01-18 2021-04-09 杭州觅睿科技股份有限公司 终端设备的分区镜像在线升级方法、装置、设备及介质
JP7559600B2 (ja) * 2021-02-18 2024-10-02 トヨタ自動車株式会社 Otaマスタ、センタ、システム、方法、プログラム、及び車両
US11886592B2 (en) * 2021-08-11 2024-01-30 Micron Technology, Inc. Secure firmware update through a predefined server
KR102384966B1 (ko) * 2021-11-10 2022-04-08 씨에스테크놀로지 주식회사 충전기 메모리의 이원화를 통한 전기자동차 충전기 고속 부팅 및 업그레이드 방법
KR102624419B1 (ko) * 2022-12-12 2024-01-16 인터콘시스템스 주식회사 출입문 제어장치 일괄 업데이트 시스템
KR102695842B1 (ko) * 2022-12-12 2024-08-20 인터콘시스템스 주식회사 출입문 제어장치 확장 업데이트 시스템
KR102624416B1 (ko) * 2022-12-12 2024-01-16 인터콘시스템스 주식회사 출입문 제어장치 광역 업데이트 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100873327B1 (ko) * 2007-01-29 2008-12-10 삼성전자주식회사 이동통신 단말기의 펌웨어 업데이트 방법 및 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004038546A2 (en) * 2002-10-21 2004-05-06 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US7480907B1 (en) * 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7904895B1 (en) * 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) * 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7657886B1 (en) * 2004-06-03 2010-02-02 Hewlett-Packard Development Company, L.P. Mobile device with a MMU for faster firmware updates in a wireless network
US7770165B2 (en) * 2006-08-25 2010-08-03 Microsoft Corporation Providing firmware updates to portable media devices
US8010959B2 (en) * 2006-11-29 2011-08-30 Sony Ericsson Mobile Communications Ab System and method for updating device drivers
US8230005B2 (en) * 2009-01-30 2012-07-24 Smart Temps, Llc. System and method for collecting, transferring and managing quality control data
WO2011149857A1 (en) * 2010-05-24 2011-12-01 Abbott Diabetes Care Inc. Method and system for updating a medical device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100873327B1 (ko) * 2007-01-29 2008-12-10 삼성전자주식회사 이동통신 단말기의 펌웨어 업데이트 방법 및 장치

Also Published As

Publication number Publication date
US20140310698A1 (en) 2014-10-16
KR20140123143A (ko) 2014-10-22

Similar Documents

Publication Publication Date Title
KR101515198B1 (ko) 모바일 단말의 펌웨어 업그레이드 장치 및 방법
CN106257417B (zh) 引导程序升级方法、嵌入式设备、控制设备及嵌入式系统
US20060218545A1 (en) Server system and online software update method
CN104572206A (zh) 应用程序自更新和备份恢复的方法
CN106610840A (zh) 一种无线固件升级方法及系统
CA2701491A1 (en) Firmware image update and management
CN101807152B (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
CN103106083B (zh) 一种固件的加载方法及装置
CN110633091A (zh) 一种电子模块及其软件无线升级方法
KR20110055841A (ko) 시스템의 복구 방법 및 이를 지원하는 장치
CN106775674B (zh) 一种基于通用引导加载程序的设备及其启动方法
KR20090120541A (ko) 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법
CN115113905A (zh) 固件升级方法和固件升级装置
CN105183580A (zh) 一种引导程序的存储方法、故障恢复方法及设备
CN115176232A (zh) 固件损坏恢复
CN109814932A (zh) 显卡驱动安装方法、计算设备
CN111273928B (zh) 一种自升级的bootloader设计方法
US20090138865A1 (en) Performing an operating system upgrade without multiple system interruptions
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、系统及终端
CN114741119A (zh) 系统的启动方法、装置、计算机设备和存储介质
KR20070060448A (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
KR101123685B1 (ko) 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템
CN112650538A (zh) 网络设备的启动方法及装置
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
CN103106089A (zh) 一种智能平台管理控制器的升级方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4