KR100876748B1 - 부트코드 업데이트 방법 - Google Patents

부트코드 업데이트 방법 Download PDF

Info

Publication number
KR100876748B1
KR100876748B1 KR1020040057812A KR20040057812A KR100876748B1 KR 100876748 B1 KR100876748 B1 KR 100876748B1 KR 1020040057812 A KR1020040057812 A KR 1020040057812A KR 20040057812 A KR20040057812 A KR 20040057812A KR 100876748 B1 KR100876748 B1 KR 100876748B1
Authority
KR
South Korea
Prior art keywords
boot
area
boot code
update
region
Prior art date
Application number
KR1020040057812A
Other languages
English (en)
Other versions
KR20060008131A (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 KR1020040057812A priority Critical patent/KR100876748B1/ko
Publication of KR20060008131A publication Critical patent/KR20060008131A/ko
Application granted granted Critical
Publication of KR100876748B1 publication Critical patent/KR100876748B1/ko

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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

Abstract

본 발명은 소프트웨어 업데이트에 관한 것으로, 특히 부트 코드(boot code)를 업데이트 하는 방법에 관한 것이다. 이를 위하여 본 발명은 비휘발성 메모리에 저장되는 부트 코드를 업데이트하는 방법에 있어서, 부트영역을 메인(main) 부트 영역과 슬레이브(slave) 부트 영역으로 구분한 부트 영역중 상기 메인 부트 영역을 통해 부팅하여 주기적으로 부트 코드 업데이트 파일을 다운로드 받는 과정과, 상기 다운로드 받은 부트 코드 업데이트 파일을 비휘발성 메모리에 저장하는 과정과, 상기 다운로드한 부트 코드 업데이트 파일의 버전정보가 현재 버전정보보다 최신 버전인가를 판단하여 상기 최신 버전이면 슬레이브 부트 영역을 통해 재부팅하는 과정과, 다운로드 받은 상기 부트 코드를 이용하여 메인 부트 영역의 부트코드를 업데이트하는 과정을 포함함을 특징으로 한다.
부트 코드 업데이트, 부팅, 다운로드

Description

부트코드 업데이트 방법{METHOD FOR UPDATING BOOT CODE}
도 1은 본 발명의 실시예에 따른 프로그램 가능한 비휘발성 메모리의 메모리 맵,
도 2는 상기한 도 1의 비휘발성 메모리를 사용하는 본 발명의 실시예에 따른 부트 코드 업데이트를 수행하는 장치적인 구성도.
도 3은 본 발명의 실시예에 따른 부트코드 업데이트 방법을 보인 흐름도.
***도면의 주요부분에 대한 부호의 설명***
100: 부트 영역 102: 어플리케이션 영역
104: 폰트 영역 106: 콘텐츠 영역
108: 업데이트 영역 110: 부트 로더 영역
112: 부트 스트랩퍼 영역 114: OTA 다운로드 프로그램 영역
116: 업데이트 에이전트 프로그램 영역
118: 다운로드 업데이트 파일 영역
120: 패치 플래그 영역 200: 비휘발성 메모리
202: 프로세서 204: 램
본 발명은 소프트웨어 업데이트에 관한 것으로, 특히 부트 코드(boot code)를 업데이트 하는 방법에 관한 것이다.
최근 이동 통신 단말, PDA(Personal Digital Accessory) 등의 각종 휴대 단말은 급속한 발전을 거듭하고 있으며, 디지털 컨버전스(digital convergence)가 이루어짐에 따라 각종 기능이 새로이 융합되고 있을 뿐만 아니라, 모델 교체 주기도 짧아지는 추세이다. 이에 따라 휴대 단말의 개발 과정 중에 원치 않고 눈에 잘 띄지 않던 기능상의 오류가 포함되어 시중에 유통되는 경우가 발생할 가능성이 높아지게 되었다. 또한 휴대 단말의 개발 완료 시점 이후에도 추가적인 기능이 패치(patch) 형식으로 릴리즈(release)될 경우가 발생하게 되었다.
위와 같은 경우에는 이미 판매된 휴대 단말의 소프트웨어 오류를 수정하거나 업그레이드(upgrade)하기 위해 휴대 단말의 소프트웨어를 업데이트해야만 한다. 이를 위해 휴대 단말의 제조 업체나 서비스 업체의 서비스 엔지니어가 업데이트 대상이 되는 휴대 단말을 가지고 있는 사용자를 직접 방문하거나, 아니면 업데이트 대상 휴대 단말을 가지고 있는 사용자가 대리점이나 A/S(After Service) 센터로 직접 방문해야만 하는 불편함이 있었다.
이러한 불편함을 줄이기 위해 이동 통신 기능을 구비한 휴대 단말에 대하여는 OTA-SD(Over The Air - Software Download)라는 방식이 제안되었다. 이는 업데 이트 대상 휴대 단말의 사용자가 인터넷(Internet)을 통해 정해진 서버(server)에 접속한 다음에 다운로드(download) 받을 업데이트 파일을 선택하여 휴대 단말로 다운로드받는 방식이다. 이러한 OTS-SD와 달리 인터넷을 통해 PC(Personal Computer)로 업데이트 파일을 다운로드받은 다음에, 다시 USB(Universal Serial Bus) 케이블을 통해 휴대 단말에 다운로드받을 수도 있다.
상기한 바와 같이 업데이트 파일을 다운로드받은 후, 휴대 단말을 다시 부팅(booting)시킴으로써 업데이트가 실행된다. 이러한 업데이트는 통상적으로 휴대 단말에서 소프트웨어가 저장되는 비휘발성(non-volatile) 메모리에서 업데이트 대상 소프트웨어의 코드가 저장되어 있는 영역을 소거한 후, 업데이트해야 할 다운로드받은 소프트웨어 코드를 업데이트 대상 영역에 저장함으로써 이루어진다. 휴대 단말에 있어서 소프트웨어를 저장하는 비휘발성 메모리로서는 통상적으로 플래시 메모리(flash memory)와 같은 프로그램(program) 가능한 비휘발성 메모리가 사용되고 있는데, 이 비휘발성 메모리에는 어플리케이션 프로그램(application program), 폰트 바이너리(fonts binary), 콘텐츠 바이너리(contents binary) 등의 소프트웨어가 저장될 뿐만 아니라, 부트 코드(boot code)도 저장된다.
상기한 바와 같이 소프트웨어를 휴대 단말에 다운로드받아 업데이트하는 경우에, 업데이트를 하는 도중에 비정상적인 원인으로 인해 업데이트가 중단되는 경우가 발생할 수 있다. 비정상적인 원인의 예로서, 휴대 단말의 배터리(baterry)가 분리됨에 따라 휴대 단말의 전원이 갑자기 차단되는 경우를 들 수 있다.
한편 휴대 단말에 있어서 전원이 최초 인가될 때, 가장 먼저 부팅이 이루어 지는데, 부팅은 상기한 바와 같이 비휘발성 메모리의 부트 영역에 저장되는 부트 코드가 실행됨으로써 이루어진다. 통상적으로 부트 코드의 기능은 휴대 단말의 기본적인 하드웨어를 초기화하는 역할, 어플리케이션 코드를 비휘발성 메모리로부터 휘발성 메모리로 읽어오는 역할 등을 실행하는 것이다. 상기한 하드웨어 초기화에서는 하드웨어에 대한 가장 기본적인 세팅(setting)들이 이루어진다. 이러한 하드웨어 세팅들 중에도 휴대 단말이 시판된 이후에 수정되어야 할 파라미터(parameter)가 있을 수 있다. 이러한 파라미터 수정의 예로서 프로세서의 동작 주파수의 변경이 해당될 수 있다. 이러한 경우에 부트 코드도 상기한 바와 같이 휴대 단말에 다운로드하여 업데이트할 필요가 있다.
그러나, 부트 코드를 상기한 바와 같은 절차에 따라 업데이트하는 중에 비정상적인 원인으로 인해 전원이 차단되는 경우가 발생할 수 있다.
일예로, 휴대 단말의 부트코드 업데이트중, 배터리가 분리되어 그 배터리를 장착한후 부팅을 하면, 이전의 부트코드들이 틀어져 부팅자체가 이루어지지 않게 된다.
이처럼 부트 코드를 다운로드받아 업데이트하는 경우에는, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리 등의 소프트웨어를 업데이트하는 경우와 달리, 부트 코드를 업데이트하는 도중에 비정상적인 원인으로 인해 업데이트가 중단된 이후에 부팅이 불가능하게 되는 경우가 발생할 수 있다. 이렇게 되면 이후에 전원이 다시 정상적으로 공급된다해도 중단되었던 부트 코드 업데이트를 계속할 수 없는 것은 물론이고 부팅조차 되지 않으므로 그 휴대 단말을 사용할 수 없게 된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창출한 것으로, 부트 코드를 업데이트하는 부트영역을 구분되게 할당하여 부트코드를 업그레이드할 수 있도록 한 휴대 단말의 부트 업그레이드 방법을 제공함에 그 목적이 있다.
또한, 본 발명의 목적은 패치파일을 다운로드 받아 부트 코드를 업데이트하는 중에 비정상적으로 업데이트가 중단되었던 경우에도 부팅이 가능하도록 할 수 있는 방법을 제공함에 있다.
또한, 본 발명의 또 다른 목적은 프로그램 가능한 비휘발성 메모리에 부트 코드를 다운로드받아 업데이트하는 중에 비정상적으로 업데이트가 중단되었던 경우에도 중단되었던 업데이트를 이후에 계속하도록 할 수 있는 방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위하여 본 발명은, 비휘발성 메모리에 저장되는 부트 코드를 업데이트하는 방법에 있어서, 부트영역을 메인(main) 부트 영역과 슬레이브(slave) 부트 영역으로 구분한 부트 영역중 상기 메인 부트 영역을 통해 부팅하여 주기적으로 부트 코드 업데이트 파일을 다운로드 받는 과정과, 상기 다운로드 받은 부트 코드 업데이트 파일을 비휘발성 메모리에 저장하는 과정과, 상기 다운로드한 부트 코드 업데이트 파일의 버전정보가 현재 버전정보보다 최신 버전인가를 판단하여 상기 최신 버전이면 슬레이브 부트 영역을 통해 재부팅하는 과정과,다운로드 받은 상기 부트 코드를 이용하여 메인 부트 영역의 부트코드를 업데이트하는 과정을 포함함을 특징으로 한다.
이를 위한 본 발명에 따라, 프로그램 가능한 비휘발성 메모리의 부트 영역을 부팅을 실행하기 위한 부트 코드인 메인(main) 부트영역의 부트 로더(boot loader) 영역과, 슬레이브(slave) 부트영역의 부트 스트랩퍼(boot strapper) 영역으로 구분한다. 그리고, 주기적으로 부트코드 업데이트파일을 다운로드하고, 그 다운로드한 파일의 버전정보와 현재 부트코드의 버전정보를 비교하여 최신의 버전으로 부트코드를 업데이트하기위해 상기 슬레이브 부트영역의 부트 스트랩퍼로 재부팅을 시작한다. 이때, 상기 메인 부트영역의 부트 로더로 재부팅하는것이 아니기때문에, 휴대 단말기의 전원이 오프되거나 배터리가 이탈되어도 이전의 부트코드를 저장하고 있는 메인 부트영역의 부트 코드에는 이상이 발생하지 않는다. 여기서, 상기 메인 부트영역의 부트 로더와 슬레이브 부트영역의 부트 스트랩퍼는 부트 코드 업데이트시, 메인 부트영역과 슬레이브 부트영역을 교번하여 부트 코드 업데이트를 수행한다. 따라서, 부팅중인 휴대 단말의 전원이 오프된후 재부팅시 부팅이 되지 않는 문제점을 해소할 수 있다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 프로그램 가능한 비휘발성 메모리의 메모리 맵(memory map)으로, 본 발명이 적용되는 휴대 단말의 동작 및 각종 기능을 위한 부트 코드, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리를 저장함과 아울러 전술한 바와 같이 OTA-SD에 의해 업데이트 파일을 다운로드받아 업데이트하는 경우의 예를 보인 것이다. 상기 도 1에 보인 바와 같이 본 발명에 따른 비휘발성 메모리는 통상적인 경우와 마찬가지로, 각각 부트 코드, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리를 저장하는 부트 영역(100), 어플리케이션 영역(102), 폰트 영역(104), 콘텐츠 영역(106), 업데이트 영역(108)으로 구분된다.
하지만 본 발명에 따라 부트 영역(100)에는 메인이 되는 부트 로더 영역(110)과 슬레이브의 부트 스트랩퍼 영역(112)으로 구분되게 할당되며, 업데이트 영역(108)에는 부트 코드 업데이트를 나타내는 정보의 부트 패치 플래그(Flag) 영역(120)이 할당된다. 이러한 부트 로더 영역(110)과 부트 스트랩퍼 영역(112)에 저장하는 것은 롬 라이터(ROM(Read Only Memory writer) 등을 사용하여 부트 코드를 비휘발성 메모리에 저장하는 것과 마찬가지로 제조 업체에서 생산시 이루어질 수 있다.
상기한 바와 같은 비휘발성 메모리에서 통상적으로 어플리케이션 영역(102), 폰트 영역(104), 콘텐츠 영역(106)에 각각 저장되는 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리도 업데이트 대상이지만, 본 발명은 부트 코드를 업데이트하여 부트 업그레이드를 수행하는 것이므로, 이하의 설명에서는 부트 영역(100)에 저장되는 부트 코드를 업데이트하는 경우만을 설명한다.
그리고 OTA-SD에 의해 업데이트 파일을 다운로드받아 업데이트를 실행하는데 필요한 영역인 업데이트 영역(108)은 OTA 다운로드 프로그램 영역(114), 업 데이트 에이전트(agent) 프로그램 영역(116), 다운로드 업데이트 파일 영역(118)뿐만 아니 라, 본 발명에 따라 부트 코드 업데이트를 나타내는 정보의 부트 패치 플래그(Flag) 영역(120)을 추가로 구비한다.
OTA 다운로드 프로그램 영역(114)은 OTA-SD에 따른 업데이트 파일 다운로드를 실행하는 OTA 다운로드 프로그램이 저장되는 영역이고, 다운로드 업데이트 파일 영역(116)은 다운로드한 업데이트 파일이 저장되는 영역이다. 업 데이트 에이전트 프로그램 영역(118)은 업 데이트 절차를 실행하는 업데이트 에이전트 프로그램이 저장되는 영역이고, 부트 패치 플래그(Flag) 영역(120)은 다운로드 받은 부트 코드 업데이트 파일의 버전과 현재 부트 코드의 버전정보중 어떠한 것이 최신 버전인가를 나타내는 영역이다. 여기서, 상기 패치 플래그 영역(120)은 다운로드한 파일의 버전정보가 상기 현재 부트 코드의 버전보다 최신 버전이면 '1'로 표시된다. 그러나, 이와는 반대로 상기 다운로드한 파일의 버전정보가 상기 현재 부트 코드의 버전정보보다 구버전이면, '0'으로 표시된다.
업데이트 에이전트 프로그램 영역(116)에 저장되는 업데이트 에이전트 프로그램은 부트 로더 영역(110) 또는 부트 스트랩퍼(112)에 대한 업데이트를 실행하게 되면, 본 발명에 따라 업데이트를 시작하기 전에 "업데이트 시작"을 나타내는 값을 부트 업데이트 상태 영역(126)에 저장한다. 이후 부트 로더영역(110) 또는 부트 스트랩퍼 영역(112)에 대한 부트 코드의 업데이트를 성공적으로 완료하게 되면, 부트 업데이트 상태 정보를 "업데이트 완료", 즉 부트 로더의 업데이트를 성공적으로 완료하였음을 나타내는 값으로 변경하고, 아울러 패치 플래그 영역(120)에도 최신 버전의 파일로 부트 코드를 업데이트 하였음을 알리는 정보를 저장한다. 이렇게 함으 로써 휴대 단말기의 전원이 최신 버전의 파일을 통해 부트 코드를 업데이트가 정상적으로 완료되었음을 확인할 수 있게 된다.
도 2는 상기한 도 1의 비휘발성 메모리를 사용하는 본 발명의 실시예에 따른 부트 코드 업데이트를 수행하는 장치적인 구성도를 보인 것이다. 비휘발성 메모리(200)는 프로세서(202)의 동작을 위한 소프트웨어를 저장하기 위한 메모리로서, 본 발명에 따라 상기한 도 1에 보인 바와 같은 메모리 맵을 가진다. 프로세서(202)는 부트 코드 업데이트를 수행하는 휴대 단말의 주제어장치로서 사용되는 프로세서(202)에 해당할 수 있으며, 이러한 경우 상기 프로세서(202)는 비휘발성 메모리(200)에 저장되는 소프트웨어에 따라 휴대 단말의 전반적인 기능을 위한 동작을 하게 된다. 램(204)은 프로세서(202)의 프로그램 수행에 따른 워킹 메모리(working memory)로서 제공되며, 통상적으로 SDRAM(Synchronous DRAM(Dynamic Random Access Memory))이 사용된다.
도 3은 본 발명의 실시예에 따른 부트코드 업데이트 방법을 보인 흐름도로서, 상기 도 2의 부트 코드 업데이트의 처리 흐름을 보인 것이다. 여기서, 상기 도 3은 메인 부트영역인 부트로더의 부트코드를 이전에 업데이트하였고, 최신버전의 파일로 부트코드를 업데이트 하였음을 알리는 패치 플래그 영역(120)의 정보가 '0'인 상태인 것을 가정하여 설명한다.
상기 도 3을 참조하면, 프로세서(202)는 311단계에서 전원을 온시키면 메인 부트영역의 부트로더 영역(110)을 통해서 부팅을 시작하고 313단계로 진행한다.
상기 프로세서(202)는 313단계에서 부트코드 업데이트 파일을 주기적으로 다 운로드 받는다. 이때, 상기 부트코드 업데이트 파일을 주기적으로 다운로드 받는것은 최신 버전의 부트 코드를 업데이트 시키기 위함이다. 여기서, 상기 부트코드 업데이트 파일은 무선(air)상으로 수신함을 가정하지만, 휴대 단말과 개인용 컴퓨터(PC)를 통신 케이블을 연결하여 다운로드 받을 수 있다.
이후, 상기 프로세서(202)는 313단계를 통해 상기 부트 코드 업데이트 파일을 수신하면 315단계로 진행하여 부트 코드 업데이트 파일을 업데이트 영역(108)의 다운로드 업데이트 파일 영역(118)에 저장한다. 그리고, 상기 프로세서(202)는 317단계에서 다운로드한 부트 코드 업데이트 파일 버전정보를 부트 스트랩퍼 영역(112)에 저장한다. 여기서, 상기 부트 스트랩퍼 영역(112)에 다운로드한 부트코드 업데이트 파일 버전정보를 저장함은 이후, 다운로드되는 부트코드 업데이트 파일의 버전정보와 비교하기 위함이다.
상기 프로세서(202)는 상기 317단계를 통해 다운로드 업데이트 파일 영역(118)에 저장된 파일로 부트 코드를 업데이트를 수행해야 하는지의 여부를 판단한다.
그러면, 상기 프로세서(202)는 319단계에서 다운로드한 파일의 버전과 현재 부트 코드의 파일 버전을 비교하게 된다. 본 발명에 따라 상기 부트 로더 영역(110)으로 부팅되기 이전의 부트코드 업데이트는 부트 스트랩퍼 영역(112)의 부트코드가 업데이트 되었을 것이고, 그 업데이트에 의해 상기 부트 로더 영역(110)에 해당 업데이트 파일의 버전정보가 저장된다.
이에, 상기 프로세서(202)는 상기 319단계를 통해 다운로드한 버전정보(부트 스트랩퍼 영역(112)에 저장된 버전정보)가 현재 버전정보(부트 로더 영역(110)에 저장된 버전정보)보다 최신 버전인가를 판단한다.
상기 판단결과, 다운로드한 파일의 버전정보가 최신 버전이 아니면, 상기 프로세서(202)는 321단계에서 패치 플래그 영역의 비트를 '0'으로 유지한다.
반면, 상기 319단계의 판단결과, 다운로드한 파일의 버전정보가 최신 버전이면, 상기 프로세서(202)는 323단계에서 패치 플래그 영역의 비트를 '0'에서 '1'로 전환한다. 이는 본 발명의 부트 코드 업데이트의 실행여부를 결정짓는 정보가 됨을 인지해야 한다.
상기 321단계와 323단계이후, 상기 프로세서(202)는 패치 플래그 영역(120)의 비트가 '1' 인가를 판단하여 상기 패치 플래그 영역(120)의 비트가 '1'이면 327단계로 진행해서 부트로더 영역(110)에서 부트 스트랩퍼 영역(112)으로 재부팅을 한다. 이때, 메인 부트 영역(100)의 상기 부트로더 영역(110)에서 부트 스트랩퍼 영역(112)으로 메인 부트 영역(100)이 전환된다. 그러면, 상기 슬레이브 부트 영역(100)은 상기 부트로더 영역(110)이 된다.
이후, 상기 프로세서(202)는 329단계에서 부트 스트랩퍼 영역(112)으로 부팅해서 다운로드 업데이트 파일 영역(118)에 저장된 파일을 통해 상기 부트 스트랩퍼 영역(112)의 부트코드를 업데이트 한다. 이후, 주기적으로 다운로드되는 부트 코드 업데이트 파일이 현재의 버전보다 최신버전이라고 판단되기 전까지는 상기 메인 부트 영역(100)의 부트 스트랩퍼 영역(112)을 통해서 부팅을 시작한다.
그러면, 상기 프로세서(202)는 331단계에서 전술한 과정을 통한 부트 코드 업데이트가 종료되었는지를 판단하여 상기 부트 코드 업데이트가 종료되면 333단계로 진행하여 패치 플래그 영역(120)의 비트를 '0'으로 전환한후 부트 코드 업데이트를 종료한다.
한편, 상기 325단계의 판단결과, 패치 플래그 영역의 비트가 '0'이면, 상기 프로세서(202)는 335단계에서 다운로드한 부트 코드의 업데이트 파일 버전 정보가 현재 버전정보보다 구 버전이라 판단하여 부트 코드를 업데이트하지 않고, 부트 로더 영역(110)을 통해 부팅을 완료한다.
따라서, 부트 코드를 업데이트하는 중에 업데이트 대상 영역을 소거한 상태에서 비정상적인 원인으로 인해 전원이 차단되어, 업데이트가 중단된 경우에도 업데이트 이전에 부팅을 수행하던 메인 부트 영역(100)을 통해 부트 코드를 업데이트 하지 않고, 슬레이브 부트 영역(100)의 부트 코드를 업데이트하여 부팅을 함으로써, 부트 코드가 틀어져서 휴대 단말의 부팅이 이루어지지 않는 문제점 없이 부트 코드를 업데이트할 수 있게 된다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러가지 변형이 본 발명의 범위내에서 이루어질 수 있다. 특히 본 발명의 실시예에서는 부트로더 영역을 메인 부트 영역, 부트 스트랩퍼 영역을 슬레이브 부트 영역으로 가정한 상태에서 본 발명의 실시예를 기재하였으므로, 이와 반대의 경우에 대해서도 가능함은 물론이다. 이는 보트 코드를 업데이트 하는 파일을 통해 부트 코드를 업데이트하는 과정에서 메인 부트 영역과 슬레이브 부트 영역을 교번하여 수행하므로 가능한 것이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 부트 코드를 업데이트하는 중에 업데이트 대상 영역을 소거한 상태에서 비정상적인 원인으로 인해 전원이 차단되어 업데이트가 중단되었던 경우에도 부트 영역을 구분한 메인 부트 영역과 슬레이브 부트 영역을 통해서 부팅하여 부트 코드를 업그레이드함으로써, 부팅이 안되던 문제점을 해소하며 부트 코드에 대한 업데이트를 수행할 수 있는 효과가 있다.

Claims (10)

  1. 비휘발성 메모리에 저장되는 부트 코드를 업데이트하는 방법에 있어서,
    부트영역을 메인(main) 부트 영역과 슬레이브(slave) 부트 영역으로 구분한 부트 영역중 상기 메인 부트 영역을 통해 부팅하여 주기적으로 부트 코드 업데이트 파일을 다운로드 받는 과정과,
    상기 다운로드 받은 부트 코드 업데이트 파일을 비휘발성 메모리에 저장하는 과정과,
    상기 다운로드한 부트 코드 업데이트 파일의 버전정보가 현재 버전정보보다 최신 버전인가를 판단하여 상기 최신 버전이면 슬레이브 부트 영역을 통해 재부팅하는 과정과,
    다운로드 받은 상기 부트 코드를 이용하여 메인 부트 영역의 부트코드를 업데이트하는 과정을 포함함을 특징으로 하는 부트 코드 업데이트 방법.
  2. 제1 항에 있어서, 상기 부트 코드 업데이트 파일을 다운로드 받는 과정은 상기 부트 코드 업데이트 파일의 버전정보를 슬레이브 부트 영역에 저장하는 과정을 포함함을 특징으로 하는 부트 코드 업데이트 방법.
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서, 상기 재부팅하는 과정은
    상기 비휘발성 메모리의 업데이트 영역에 정보를 표시하는 과정을 포함하며,상기 정보는 최신 버전의 파일로 부트 코드를 업데이트해야함을 알리는 정보임을 특징으로 하는 부트 코드 업데이트 방법.
  6. 제5 항에 있어서, 상기 부트 코드를 업데이트 해야 함을 알리는 정보는 업데이트 영역의 패치 플래그(Flag) 영역에 저장됨을 특징으로 하는 부트 코드 업데이트 방법.
  7. 제6 항에 있어서, 상기 패치 플래그 영역은 최신 버전의 파일로 부트 코드를 업데이트해야 할 경우에는 '1'로 표시하며, 업데이트 한 경우에는 '0'으로 표시됨을 특징으로 하는 부트 코드 업데이트 방법.
  8. 제6 항에 있어서, 상기 패치 플래그 영역은 최신 버전의 파일로 부트 코드를 업데이트하지 않아야 할 경우에는 '0'으로 표시됨을 특징으로 하는 부트 코드 업데이트 방법.
  9. 삭제
  10. 삭제
KR1020040057812A 2004-07-23 2004-07-23 부트코드 업데이트 방법 KR100876748B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040057812A KR100876748B1 (ko) 2004-07-23 2004-07-23 부트코드 업데이트 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040057812A KR100876748B1 (ko) 2004-07-23 2004-07-23 부트코드 업데이트 방법

Publications (2)

Publication Number Publication Date
KR20060008131A KR20060008131A (ko) 2006-01-26
KR100876748B1 true KR100876748B1 (ko) 2009-01-07

Family

ID=37119267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040057812A KR100876748B1 (ko) 2004-07-23 2004-07-23 부트코드 업데이트 방법

Country Status (1)

Country Link
KR (1) KR100876748B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755315B2 (en) 2018-12-05 2023-09-12 Samsung Electronics Co., Ltd. Boot ROM update method and boot-up method of embedded system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101566207B1 (ko) * 2011-06-28 2015-11-13 삼성전자 주식회사 로봇 청소기 및 그 제어방법
US20200257521A1 (en) * 2020-02-13 2020-08-13 Intel Corporation Update of boot code handlers
KR102566869B1 (ko) 2022-12-06 2023-08-14 한화시스템 주식회사 비휘발성 메모리에 저장된 소프트웨어의 오류 수정 및 업데이트 방법 및 이를 위한 인터페이스 케이블

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205548B1 (en) 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
KR20020089812A (ko) * 2001-05-24 2002-11-30 주식회사 하이닉스반도체 이동통신 시스템에서 플래시 메모리 업데이트 방법
KR20030020622A (ko) * 2001-09-04 2003-03-10 주식회사 현대시스콤 다중 분할된 플레쉬 롬을 이용한 부팅 장치 및 그 방법
JP2004013477A (ja) 2002-06-06 2004-01-15 Nec Viewtechnology Ltd ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリ
JP2004157767A (ja) 2002-11-06 2004-06-03 Mitsubishi Electric Corp ソフトウェア更新システム
KR20050068722A (ko) * 2003-12-30 2005-07-05 엘지전자 주식회사 하드웨어 부트의 원격 제어 장치 및 그 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205548B1 (en) 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
KR20020089812A (ko) * 2001-05-24 2002-11-30 주식회사 하이닉스반도체 이동통신 시스템에서 플래시 메모리 업데이트 방법
KR20030020622A (ko) * 2001-09-04 2003-03-10 주식회사 현대시스콤 다중 분할된 플레쉬 롬을 이용한 부팅 장치 및 그 방법
JP2004013477A (ja) 2002-06-06 2004-01-15 Nec Viewtechnology Ltd ブートプログラム選択及び更新方法並びにこれを用いたフラッシュメモリ
JP2004157767A (ja) 2002-11-06 2004-06-03 Mitsubishi Electric Corp ソフトウェア更新システム
KR20050068722A (ko) * 2003-12-30 2005-07-05 엘지전자 주식회사 하드웨어 부트의 원격 제어 장치 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755315B2 (en) 2018-12-05 2023-09-12 Samsung Electronics Co., Ltd. Boot ROM update method and boot-up method of embedded system

Also Published As

Publication number Publication date
KR20060008131A (ko) 2006-01-26

Similar Documents

Publication Publication Date Title
KR100506203B1 (ko) 부팅 및 부트 코드 업데이트 방법 및 시스템
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
CN110231952B (zh) 一种ecu程序备份及循环升级控制方法及装置
US8364942B2 (en) Electronic device having an alterable configuration and methods of manufacturing and configuring the same
WO2022007656A1 (zh) Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
KR101427755B1 (ko) Usb를 이용한 펌웨어 업그레이드 장치 및 방법
JP2000357095A (ja) 埋込式システムにソフトウェアをダウンロードする方法および装置
KR20070039841A (ko) 디지털방송처리장치 및 디지털방송처리장치 부트로더의업그레이드 방법
KR100700578B1 (ko) 휴대폰의 펌웨어 업그레이드 방법
CN109753299A (zh) 一种系统升级方法、装置以及计算机存储介质
US20020095619A1 (en) Fault tolerant/redundant boot ROM reprogramming
CN110750280B (zh) 一种基于Android平台的应用升级方法及系统、存储介质
JP2010044574A (ja) 携帯端末、携帯端末制御方法、及び携帯端末制御プログラム
KR100876748B1 (ko) 부트코드 업데이트 방법
US7991390B2 (en) Program updating method of wireless communication terminal and wireless communication terminal using the same
CA2539897C (en) An electronic device having an alterable configuration and methods of manufacturing and configuring the same
CN113721959A (zh) 一种信息处理方法、装置及电子设备
CN115686554A (zh) 一种BootLoader程序升级方法及装置
CN112631669A (zh) 嵌入式系统启动的方法、装置、计算机设备和介质
KR100538627B1 (ko) 무선통신단말기의 소프트웨어 부분 업그레이드 방법
KR100617796B1 (ko) 무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법
KR100429903B1 (ko) 홈 게이트웨이 시스템의 이미지 업데이트 방법
KR100762618B1 (ko) 이동통신 단말기에서 펌웨어 업그레이드 엔진을업그레이드하는 방법 및 시스템
JP2022152170A (ja) ブートプログラム書き換えシステム
KR20040052305A (ko) 내장형 시스템을 위한 운영체제 로딩 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151127

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161129

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171121

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 12

R401 Registration of restoration