KR20060008131A - Method for updating boot code - Google Patents
Method for updating boot code Download PDFInfo
- Publication number
- KR20060008131A KR20060008131A KR1020040057812A KR20040057812A KR20060008131A KR 20060008131 A KR20060008131 A KR 20060008131A KR 1020040057812 A KR1020040057812 A KR 1020040057812A KR 20040057812 A KR20040057812 A KR 20040057812A KR 20060008131 A KR20060008131 A KR 20060008131A
- Authority
- KR
- South Korea
- Prior art keywords
- boot
- area
- boot code
- update
- region
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
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
본 발명은 소프트웨어 업데이트에 관한 것으로, 특히 부트 코드(boot code)를 업데이트 하는 방법에 관한 것이다. 이를 위하여 본 발명은 비휘발성 메모리에 저장되는 부트 코드를 업데이트하는 방법에 있어서, 부트영역을 메인(main) 부트 영역과 슬레이브(slave) 부트 영역으로 구분한 부트 영역중 상기 메인 부트 영역을 통해 부팅하여 주기적으로 부트 코드 업데이트 파일을 다운로드 받는 과정과; 상기 다운로드 받은 부트 코드 업데이트 파일을 비휘발성 메모리에 저장하는 과정과; 상기 다운로드한 부트 코드 업데이트 파일의 버전정보가 현재 버전정보보다 최신 버전인가를 판단하여 상기 최신 버전이면 메인 부트 영역과 슬레이브 부트 영역을 교번하여 재부팅하는 과정과; 상기 재부팅한 부트 영역의 부트코드를 업데이트하는 과정으로 이루어짐을 특징으로 한다.
The present invention relates to software updates, and more particularly, to a method of updating a boot code. To this end, the present invention provides a method of updating a boot code stored in a nonvolatile memory, by booting through a main boot area of a boot area divided into a main boot area and a slave boot area. Periodically downloading a boot code update file; Storing the downloaded boot code update file in a nonvolatile memory; Determining whether the version information of the downloaded boot code update file is newer than the current version information, and alternately rebooting the main boot region and the slave boot region if the latest version is the latest version; And updating the boot code of the rebooted boot region.
부트 코드 업데이트, 부팅, 다운로드Boot code update, boot, download
Description
도 1은 본 발명의 실시예에 따른 프로그램 가능한 비휘발성 메모리의 메모리 맵,1 is a memory map of a programmable nonvolatile memory in accordance with an embodiment of the present invention;
도 2는 상기한 도 1의 비휘발성 메모리를 사용하는 본 발명의 실시예에 따른 부트 코드 업데이트를 수행하는 장치적인 구성도.FIG. 2 is a structural diagram illustrating a boot code update according to an embodiment of the present invention using the nonvolatile memory of FIG. 1.
도 3은 본 발명의 실시예에 따른 부트코드 업데이트 방법을 보인 흐름도.3 is a flowchart illustrating a bootcode updating method according to an embodiment of the present invention.
***도면의 주요부분에 대한 부호의 설명****** Explanation of symbols for main parts of drawing ***
100: 부트 영역 102: 어플리케이션 영역100: boot area 102: application area
104: 폰트 영역 106: 콘텐츠 영역104: font area 106: content area
108: 업데이트 영역 110: 부트 로더 영역108: update area 110: boot loader area
112: 부트 스트랩퍼 영역 114: OTA 다운로드 프로그램 영역112: Bootstrap area 114: OTA download program area
116: 업데이트 에이전트 프로그램 영역116: Update Agent Program Area
118: 다운로드 업데이트 파일 영역118: Download Update Files Area
120: 패치 플래그 영역 200: 비휘발성 메모리120: patch flag area 200: nonvolatile memory
202: 프로세서 204: 램202: processor 204: RAM
본 발명은 소프트웨어 업데이트에 관한 것으로, 특히 부트 코드(boot code)를 업데이트 하는 방법에 관한 것이다.The present invention relates to software updates, and more particularly to a method of updating a boot code.
최근 이동 통신 단말, PDA(Personal Digital Accessory) 등의 각종 휴대 단말은 급속한 발전을 거듭하고 있으며, 디지털 컨버전스(digital convergence)가 이루어짐에 따라 각종 기능이 새로이 융합되고 있을 뿐만 아니라, 모델 교체 주기도 짧아지는 추세이다. 이에 따라 휴대 단말의 개발 과정 중에 원치 않고 눈에 잘 띄지 않던 기능상의 오류가 포함되어 시중에 유통되는 경우가 발생할 가능성이 높아지게 되었다. 또한 휴대 단말의 개발 완료 시점 이후에도 추가적인 기능이 패치(patch) 형식으로 릴리즈(release)될 경우가 발생하게 되었다.Recently, various portable terminals such as mobile communication terminals and PDAs (Personal Digital Accessory) have been rapidly developed, and as digital convergence is made, various functions are newly converged, and the model replacement cycle is also shortened. to be. Accordingly, there is a high possibility that the case of distribution on the market is included in the development process of the mobile terminal, which includes unwanted and inconspicuous functional errors. Also, even after the completion of the development of the mobile terminal, additional functions may be released in the form of patches.
위와 같은 경우에는 이미 판매된 휴대 단말의 소프트웨어 오류를 수정하거나 업그레이드(upgrade)하기 위해 휴대 단말의 소프트웨어를 업데이트해야만 한다. 이를 위해 휴대 단말의 제조 업체나 서비스 업체의 서비스 엔지니어가 업데이트 대상이 되는 휴대 단말을 가지고 있는 사용자를 직접 방문하거나, 아니면 업데이트 대상 휴대 단말을 가지고 있는 사용자가 대리점이나 A/S(After Service) 센터로 직접 방문해야만 하는 불편함이 있었다.In such a case, the software of the portable terminal must be updated to correct or upgrade the software error of the already sold portable terminal. To do this, the manufacturer of the mobile terminal or the service engineer of the service company directly visits the user who has the mobile terminal to be updated, or the user who has the mobile terminal to be updated to the dealer or A / S (After Service) center. There was an inconvenience of having to visit in person.
이러한 불편함을 줄이기 위해 이동 통신 기능을 구비한 휴대 단말에 대하여는 OTA-SD(Over The Air - Software Download)라는 방식이 제안되었다. 이는 업데 이트 대상 휴대 단말의 사용자가 인터넷(Internet)을 통해 정해진 서버(server)에 접속한 다음에 다운로드(download) 받을 업데이트 파일을 선택하여 휴대 단말로 다운로드받는 방식이다. 이러한 OTS-SD와 달리 인터넷을 통해 PC(Personal Computer)로 업데이트 파일을 다운로드받은 다음에, 다시 USB(Universal Serial Bus) 케이블을 통해 휴대 단말에 다운로드받을 수도 있다.In order to reduce such inconvenience, a method called OTA-SD (Over The Air-Software Download) has been proposed for a mobile terminal having a mobile communication function. This is a method in which a user of an update target portable terminal accesses a server through the Internet, selects an update file to be downloaded, and downloads it to the portable terminal. Unlike the OTS-SD, an update file may be downloaded to a personal computer (PC) through the Internet, and then downloaded to a portable terminal through a universal serial bus (USB) cable.
상기한 바와 같이 업데이트 파일을 다운로드받은 후, 휴대 단말을 다시 부팅(booting)시킴으로써 업데이트가 실행된다. 이러한 업데이트는 통상적으로 휴대 단말에서 소프트웨어가 저장되는 비휘발성(non-volatile) 메모리에서 업데이트 대상 소프트웨어의 코드가 저장되어 있는 영역을 소거한 후, 업데이트해야 할 다운로드받은 소프트웨어 코드를 업데이트 대상 영역에 저장함으로써 이루어진다. 휴대 단말에 있어서 소프트웨어를 저장하는 비휘발성 메모리로서는 통상적으로 플래시 메모리(flash memory)와 같은 프로그램(program) 가능한 비휘발성 메모리가 사용되고 있는데, 이 비휘발성 메모리에는 어플리케이션 프로그램(application program), 폰트 바이너리(fonts binary), 콘텐츠 바이너리(contents binary) 등의 소프트웨어가 저장될 뿐만 아니라, 부트 코드(boot code)도 저장된다.After downloading the update file as described above, the update is executed by rebooting the portable terminal. Such an update is typically performed by erasing an area in which a code of an update target software is stored in a non-volatile memory in which a software is stored in a portable terminal, and then storing the downloaded software code to be updated in the update target region. Is done. As a nonvolatile memory for storing software in a portable terminal, a programmable nonvolatile memory such as a flash memory is generally used. The nonvolatile memory includes an application program and a font binary. Not only software, such as binary and contents binary, are stored, but also boot code is stored.
상기한 바와 같이 소프트웨어를 휴대 단말에 다운로드받아 업데이트하는 경우에, 업데이트를 하는 도중에 비정상적인 원인으로 인해 업데이트가 중단되는 경우가 발생할 수 있다. 비정상적인 원인의 예로서, 휴대 단말의 배터리(baterry)가 분리됨에 따라 휴대 단말의 전원이 갑자기 차단되는 경우를 들 수 있다.As described above, when the software is downloaded to the portable terminal and updated, the update may be interrupted due to an abnormal cause during the updating. An example of an abnormal cause may be a case in which the power of the portable terminal is suddenly cut off as the battery of the portable terminal is removed.
한편 휴대 단말에 있어서 전원이 최초 인가될 때, 가장 먼저 부팅이 이루어 지는데, 부팅은 상기한 바와 같이 비휘발성 메모리의 부트 영역에 저장되는 부트 코드가 실행됨으로써 이루어진다. 통상적으로 부트 코드의 기능은 휴대 단말의 기본적인 하드웨어를 초기화하는 역할, 어플리케이션 코드를 비휘발성 메모리로부터 휘발성 메모리로 읽어오는 역할 등을 실행하는 것이다. 상기한 하드웨어 초기화에서는 하드웨어에 대한 가장 기본적인 세팅(setting)들이 이루어진다. 이러한 하드웨어 세팅들 중에도 휴대 단말이 시판된 이후에 수정되어야 할 파라미터(parameter)가 있을 수 있다. 이러한 파라미터 수정의 예로서 프로세서의 동작 주파수의 변경이 해당될 수 있다. 이러한 경우에 부트 코드도 상기한 바와 같이 휴대 단말에 다운로드하여 업데이트할 필요가 있다.On the other hand, when power is first applied to the portable terminal, booting is first performed. The booting is performed by executing the boot code stored in the boot area of the nonvolatile memory as described above. Typically, the function of the boot code is to initialize the basic hardware of the mobile terminal, to read the application code from the nonvolatile memory to the volatile memory, and the like. In the hardware initialization described above, the most basic settings for the hardware are made. Among these hardware settings, there may be a parameter to be modified after the portable terminal is commercially available. An example of such parameter modification may be a change in the operating frequency of the processor. In this case, the boot code needs to be downloaded and updated on the mobile terminal as described above.
그러나, 부트 코드를 상기한 바와 같은 절차에 따라 업데이트하는 중에 비정상적인 원인으로 인해 전원이 차단되는 경우가 발생할 수 있다. However, the power may be cut off due to an abnormal cause while updating the boot code according to the above-described procedure.
일예로, 휴대 단말의 부트코드 업데이트중, 배터리가 분리되어 그 배터리를 장착한후 부팅을 하면, 이전의 부트코드들이 틀어져 부팅자체가 이루어지지 않게 된다.For example, during bootcode update of a mobile terminal, when the battery is detached and booted after the battery is installed, the previous bootcode is turned off so that the booting itself is not performed.
이처럼 부트 코드를 다운로드받아 업데이트하는 경우에는, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리 등의 소프트웨어를 업데이트하는 경우와 달리, 부트 코드를 업데이트하는 도중에 비정상적인 원인으로 인해 업데이트가 중단된 이후에 부팅이 불가능하게 되는 경우가 발생할 수 있다. 이렇게 되면 이후에 전원이 다시 정상적으로 공급된다해도 중단되었던 부트 코드 업데이트를 계속할 수 없는 것은 물론이고 부팅조차 되지 않으므로 그 휴대 단말을 사용할 수 없게 된다.As such, when downloading and updating the boot code, unlike when updating software such as application programs, font binaries, and content binaries, booting becomes impossible after the update is interrupted due to an abnormal cause during updating the boot code. Cases may occur. In this case, even if the power is supplied normally again, the interrupted boot code update cannot be continued and even the boot terminal is not booted, and thus the portable terminal cannot be used.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 창출한 것으로, 부트 코드를 업데이트하는 부트영역을 구분되게 할당하여 부트코드를 업그레이드할 수 있도록 한 휴대 단말의 부트 업그레이드 방법을 제공함에 그 목적이 있다.Accordingly, an object of the present invention is to provide a boot upgrade method of a mobile terminal, which is created to solve the above problems and upgrades a boot code by allocating a boot area for updating a boot code. .
또한, 본 발명의 목적은 패치파일을 다운로드 받아 부트 코드를 업데이트하는 중에 비정상적으로 업데이트가 중단되었던 경우에도 부팅이 가능하도록 할 수 있는 방법을 제공함에 있다.It is also an object of the present invention to provide a method that enables booting even when an update is interrupted abnormally while updating a boot code by downloading a patch file.
또한, 본 발명의 또 다른 목적은 프로그램 가능한 비휘발성 메모리에 부트 코드를 다운로드받아 업데이트하는 중에 비정상적으로 업데이트가 중단되었던 경우에도 중단되었던 업데이트를 이후에 계속하도록 할 수 있는 방법을 제공함에 있다.In addition, another object of the present invention is to provide a method for continuing the interrupted update even after the update is interrupted while the boot code is downloaded and updated in the programmable nonvolatile memory.
상기와 같은 목적을 달성하기 위하여 본 발명은, 비휘발성 메모리에 저장되는 부트 코드를 업데이트하는 방법에 있어서, 부트영역을 메인(main) 부트 영역과 슬레이브(slave) 부트 영역으로 구분한 부트 영역중 상기 메인 부트 영역을 통해 부팅하여 주기적으로 부트 코드 업데이트 파일을 다운로드 받는 과정과; 상기 다운로드 받은 부트 코드 업데이트 파일을 비휘발성 메모리에 저장하는 과정과; 상기 다운로드한 부트 코드 업데이트 파일의 버전정보가 현재 버전정보보다 최신 버전인가를 판단하여 상기 최신 버전이면 메인 부트 영역과 슬레이브 부트 영역을 교번하여 재부팅하는 과정과; 상기 재부팅한 부트 영역의 부트코드를 업데이트하는 과정으로 이루어짐을 특징으로 한다.
In order to achieve the above object, the present invention provides a method of updating a boot code stored in a nonvolatile memory, the boot region of which a boot region is divided into a main boot region and a slave boot region. Booting through the main boot area and periodically downloading a boot code update file; Storing the downloaded boot code update file in a nonvolatile memory; Determining whether the version information of the downloaded boot code update file is newer than the current version information, and alternately rebooting the main boot region and the slave boot region if the latest version is the latest version; And updating the boot code of the rebooted boot region.
이를 위한 본 발명에 따라, 프로그램 가능한 비휘발성 메모리의 부트 영역을 부팅을 실행하기 위한 부트 코드인 메인(main) 부트영역의 부트 로더(boot loader) 영역과, 슬레이브(slave) 부트영역의 부트 스트랩퍼(boot strapper) 영역으로 구분한다. 그리고, 주기적으로 부트코드 업데이트파일을 다운로드하고, 그 다운로드한 파일의 버전정보와 현재 부트코드의 버전정보를 비교하여 최신의 버전으로 부트코드를 업데이트하기위해 상기 슬레이브 부트영역의 부트 스트랩퍼로 재부팅을 시작한다. 이때, 상기 메인 부트영역의 부트 로더로 재부팅하는것이 아니기때문에, 휴대 단말기의 전원이 오프되거나 배터리가 이탈되어도 이전의 부트코드를 저장하고 있는 메인 부트영역의 부트 코드에는 이상이 발생하지 않는다. 여기서, 상기 메인 부트영역의 부트 로더와 슬레이브 부트영역의 부트 스트랩퍼는 부트 코드 업데이트시, 메인 부트영역과 슬레이브 부트영역을 교번하여 부트 코드 업데이트를 수행한다. 따라서, 부팅중인 휴대 단말의 전원이 오프된후 재부팅시 부팅이 되지 않는 문제점을 해소할 수 있다.According to the present invention, a boot loader region of a main boot region, which is a boot code for executing booting of a boot region of a programmable nonvolatile memory, and a boot strapper of a slave boot region (boot strapper) area. In addition, the bootcode update file is periodically downloaded, and the reboot information is rebooted into the boot strapper of the slave boot area in order to update the bootcode with the latest version by comparing the downloaded file version information with the current bootcode version information. To start. In this case, since the boot loader of the main boot region is not rebooted, the boot code of the main boot region storing the previous boot code does not occur even when the portable terminal is powered off or the battery is detached. Here, the boot loader of the main boot region and the boot strapper of the slave boot region alternately perform a boot code update by alternately changing the main boot region and the slave boot region. Therefore, it is possible to solve the problem that the booting does not boot when the power of the booting portable terminal is turned off.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the annexed drawings, detailed descriptions of well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention will be omitted.
도 1은 본 발명의 실시예에 따른 프로그램 가능한 비휘발성 메모리의 메모리 맵(memory map)으로, 본 발명이 적용되는 휴대 단말의 동작 및 각종 기능을 위한 부트 코드, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리를 저장함과 아울러 전술한 바와 같이 OTA-SD에 의해 업데이트 파일을 다운로드받아 업데이트하는 경우의 예를 보인 것이다. 상기 도 1에 보인 바와 같이 본 발명에 따른 비휘발성 메모리는 통상적인 경우와 마찬가지로, 각각 부트 코드, 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리를 저장하는 부트 영역(100), 어플리케이션 영역(102), 폰트 영역(104), 콘텐츠 영역(106), 업데이트 영역(108)으로 구분된다. 1 is a memory map of a programmable non-volatile memory according to an embodiment of the present invention, which is a boot code, an application program, a font binary, and a content binary for operations and various functions of a portable terminal to which the present invention is applied. In addition to storing, as shown above, an example of downloading and updating an update file by OTA-SD is shown. As shown in FIG. 1, the nonvolatile memory according to the present invention is the
하지만 본 발명에 따라 부트 영역(100)에는 메인이 되는 부트 로더 영역(110)과 슬레이브의 부트 스트랩퍼 영역(112)으로 구분되게 할당되며, 업데이트 영역(108)에는 부트 코드 업데이트를 나타내는 정보의 부트 패치 플래그(Flag) 영역(120)이 할당된다. 이러한 부트 로더 영역(110)과 부트 스트랩퍼 영역(112)에 저장하는 것은 롬 라이터(ROM(Read Only Memory writer) 등을 사용하여 부트 코드를 비휘발성 메모리에 저장하는 것과 마찬가지로 제조 업체에서 생산시 이루어질 수 있다.However, according to the present invention, the
상기한 바와 같은 비휘발성 메모리에서 통상적으로 어플리케이션 영역(102), 폰트 영역(104), 콘텐츠 영역(106)에 각각 저장되는 어플리케이션 프로그램, 폰트 바이너리, 콘텐츠 바이너리도 업데이트 대상이지만, 본 발명은 부트 코드를 업데이트하여 부트 업그레이드를 수행하는 것이므로, 이하의 설명에서는 부트 영역(100)에 저장되는 부트 코드를 업데이트하는 경우만을 설명한다.In the nonvolatile memory as described above, the application program, font binary, and content binary stored in the
그리고 OTA-SD에 의해 업데이트 파일을 다운로드받아 업데이트를 실행하는데 필요한 영역인 업데이트 영역(108)은 OTA 다운로드 프로그램 영역(114), 업 데이트 에이전트(agent) 프로그램 영역(116), 다운로드 업데이트 파일 영역(118)뿐만 아니 라, 본 발명에 따라 부트 코드 업데이트를 나타내는 정보의 부트 패치 플래그(Flag) 영역(120)을 추가로 구비한다.The
OTA 다운로드 프로그램 영역(114)은 OTA-SD에 따른 업데이트 파일 다운로드를 실행하는 OTA 다운로드 프로그램이 저장되는 영역이고, 다운로드 업데이트 파일 영역(116)은 다운로드한 업데이트 파일이 저장되는 영역이다. 업 데이트 에이전트 프로그램 영역(118)은 업 데이트 절차를 실행하는 업데이트 에이전트 프로그램이 저장되는 영역이고, 부트 패치 플래그(Flag) 영역(120)은 다운로드 받은 부트 코드 업데이트 파일의 버전과 현재 부트 코드의 버전정보중 어떠한 것이 최신 버전인가를 나타내는 영역이다. 여기서, 상기 패치 플래그 영역(120)은 다운로드한 파일의 버전정보가 상기 현재 부트 코드의 버전보다 최신 버전이면 '1'로 표시된다. 그러나, 이와는 반대로 상기 다운로드한 파일의 버전정보가 상기 현재 부트 코드의 버전정보보다 구버전이면, '0'으로 표시된다.The OTA
업데이트 에이전트 프로그램 영역(116)에 저장되는 업데이트 에이전트 프로그램은 부트 로더 영역(110) 또는 부트 스트랩퍼(112)에 대한 업데이트를 실행하게 되면, 본 발명에 따라 업데이트를 시작하기 전에 "업데이트 시작"을 나타내는 값을 부트 업데이트 상태 영역(126)에 저장한다. 이후 부트 로더영역(110) 또는 부트 스트랩퍼 영역(112)에 대한 부트 코드의 업데이트를 성공적으로 완료하게 되면, 부트 업데이트 상태 정보를 "업데이트 완료", 즉 부트 로더의 업데이트를 성공적으로 완료하였음을 나타내는 값으로 변경하고, 아울러 패치 플래그 영역(120)에도 최신 버전의 파일로 부트 코드를 업데이트 하였음을 알리는 정보를 저장한다. 이렇게 함으 로써 휴대 단말기의 전원이 최신 버전의 파일을 통해 부트 코드를 업데이트가 정상적으로 완료되었음을 확인할 수 있게 된다.When the update agent program stored in the update
도 2는 상기한 도 1의 비휘발성 메모리를 사용하는 본 발명의 실시예에 따른 부트 코드 업데이트를 수행하는 장치적인 구성도를 보인 것이다. 비휘발성 메모리(200)는 프로세서(202)의 동작을 위한 소프트웨어를 저장하기 위한 메모리로서, 본 발명에 따라 상기한 도 1에 보인 바와 같은 메모리 맵을 가진다. 프로세서(202)는 부트 코드 업데이트를 수행하는 휴대 단말의 주제어장치로서 사용되는 프로세서(202)에 해당할 수 있으며, 이러한 경우 상기 프로세서(202)는 비휘발성 메모리(200)에 저장되는 소프트웨어에 따라 휴대 단말의 전반적인 기능을 위한 동작을 하게 된다. 램(204)은 프로세서(202)의 프로그램 수행에 따른 워킹 메모리(working memory)로서 제공되며, 통상적으로 SDRAM(Synchronous DRAM(Dynamic Random Access Memory))이 사용된다.FIG. 2 is a block diagram illustrating a boot code update according to an embodiment of the present invention using the nonvolatile memory of FIG. 1. The
도 3은 본 발명의 실시예에 따른 부트코드 업데이트 방법을 보인 흐름도로서, 상기 도 2의 부트 코드 업데이트의 처리 흐름을 보인 것이다. 여기서, 상기 도 3은 메인 부트영역인 부트로더의 부트코드를 이전에 업데이트하였고, 최신버전의 파일로 부트코드를 업데이트 하였음을 알리는 패치 플래그 영역(120)의 정보가 '0'인 상태인 것을 가정하여 설명한다. 3 is a flowchart illustrating a boot code updating method according to an exemplary embodiment of the present invention, and illustrates a processing flow of the boot code updating of FIG. 2. Here, FIG. 3 assumes that the information of the
상기 도 3을 참조하면, 프로세서(202)는 311단계에서 전원을 온시키면 메인 부트영역의 부트로더 영역(110)을 통해서 부팅을 시작하고 313단계로 진행한다.Referring to FIG. 3, when the power is turned on in
상기 프로세서(202)는 313단계에서 부트코드 업데이트 파일을 주기적으로 다 운로드 받는다. 이때, 상기 부트코드 업데이트 파일을 주기적으로 다운로드 받는것은 최신 버전의 부트 코드를 업데이트 시키기 위함이다. 여기서, 상기 부트코드 업데이트 파일은 무선(air)상으로 수신함을 가정하지만, 휴대 단말과 개인용 컴퓨터(PC)를 통신 케이블을 연결하여 다운로드 받을 수 있다.The
이후, 상기 프로세서(202)는 313단계를 통해 상기 부트 코드 업데이트 파일을 수신하면 315단계로 진행하여 부트 코드 업데이트 파일을 업데이트 영역(108)의 다운로드 업데이트 파일 영역(118)에 저장한다. 그리고, 상기 프로세서(202)는 317단계에서 다운로드한 부트 코드 업데이트 파일 버전정보를 부트 스트랩퍼 영역(112)에 저장한다. 여기서, 상기 부트 스트랩퍼 영역(112)에 다운로드한 부트코드 업데이트 파일 버전정보를 저장함은 이후, 다운로드되는 부트코드 업데이트 파일의 버전정보와 비교하기 위함이다.When the
상기 프로세서(202)는 상기 317단계를 통해 다운로드 업데이트 파일 영역(118)에 저장된 파일로 부트 코드를 업데이트를 수행해야 하는지의 여부를 판단한다.The
그러면, 상기 프로세서(202)는 319단계에서 다운로드한 파일의 버전과 현재 부트 코드의 파일 버전을 비교하게 된다. 본 발명에 따라 상기 부트 로더 영역(110)으로 부팅되기 이전의 부트코드 업데이트는 부트 스트랩퍼 영역(112)의 부트코드가 업데이트 되었을 것이고, 그 업데이트에 의해 상기 부트 로더 영역(110)에 해당 업데이트 파일의 버전정보가 저장된다.Then, the
이에, 상기 프로세서(202)는 상기 319단계를 통해 다운로드한 버전정보(부트 스트랩퍼 영역(112)에 저장된 버전정보)가 현재 버전정보(부트 로더 영역(110)에 저장된 버전정보)보다 최신 버전인가를 판단한다.Thus, the
상기 판단결과, 다운로드한 파일의 버전정보가 최신 버전이 아니면, 상기 프로세서(202)는 321단계에서 패치 플래그 영역의 비트를 '0'으로 유지한다.As a result of the determination, if the version information of the downloaded file is not the latest version, the
반면, 상기 319단계의 판단결과, 다운로드한 파일의 버전정보가 최신 버전이면, 상기 프로세서(202)는 323단계에서 패치 플래그 영역의 비트를 '0'에서 '1'로 전환한다. 이는 본 발명의 부트 코드 업데이트의 실행여부를 결정짓는 정보가 됨을 인지해야 한다.In contrast, if the version information of the downloaded file is the latest version, the
상기 321단계와 323단계이후, 상기 프로세서(202)는 패치 플래그 영역(120)의 비트가 '1' 인가를 판단하여 상기 패치 플래그 영역(120)의 비트가 '1'이면 327단계로 진행해서 부트로더 영역(110)에서 부트 스트랩퍼 영역(112)으로 재부팅을 한다. 이때, 메인 부트 영역(100)의 상기 부트로더 영역(110)에서 부트 스트랩퍼 영역(112)으로 메인 부트 영역(100)이 전환된다. 그러면, 상기 슬레이브 부트 영역(100)은 상기 부트로더 영역(110)이 된다.After the
이후, 상기 프로세서(202)는 329단계에서 부트 스트랩퍼 영역(112)으로 부팅해서 다운로드 업데이트 파일 영역(118)에 저장된 파일을 통해 상기 부트 스트랩퍼 영역(112)의 부트코드를 업데이트 한다. 이후, 주기적으로 다운로드되는 부트 코드 업데이트 파일이 현재의 버전보다 최신버전이라고 판단되기 전까지는 상기 메인 부트 영역(100)의 부트 스트랩퍼 영역(112)을 통해서 부팅을 시작한다.In
그러면, 상기 프로세서(202)는 331단계에서 전술한 과정을 통한 부트 코드 업데이트가 종료되었는지를 판단하여 상기 부트 코드 업데이트가 종료되면 333단계로 진행하여 패치 플래그 영역(120)의 비트를 '0'으로 전환한후 부트 코드 업데이트를 종료한다.Then, the
한편, 상기 325단계의 판단결과, 패치 플래그 영역의 비트가 '0'이면, 상기 프로세서(202)는 335단계에서 다운로드한 부트 코드의 업데이트 파일 버전 정보가 현재 버전정보보다 구 버전이라 판단하여 부트 코드를 업데이트하지 않고, 부트 로더 영역(110)을 통해 부팅을 완료한다.On the other hand, if the bit of the patch flag region is '0' as a result of the determination in
따라서, 부트 코드를 업데이트하는 중에 업데이트 대상 영역을 소거한 상태에서 비정상적인 원인으로 인해 전원이 차단되어, 업데이트가 중단된 경우에도 업데이트 이전에 부팅을 수행하던 메인 부트 영역(100)을 통해 부트 코드를 업데이트 하지 않고, 슬레이브 부트 영역(100)의 부트 코드를 업데이트하여 부팅을 함으로써, 부트 코드가 틀어져서 휴대 단말의 부팅이 이루어지지 않는 문제점 없이 부트 코드를 업데이트할 수 있게 된다.Therefore, when the update target area is erased while updating the boot code, the power is cut off due to an abnormal cause, and even when the update is interrupted, the boot code is updated through the
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러가지 변형이 본 발명의 범위내에서 이루어질 수 있다. 특히 본 발명의 실시예에서는 부트로더 영역을 메인 부트 영역, 부트 스트랩퍼 영역을 슬레이브 부트 영역으로 가정한 상태에서 본 발명의 실시예를 기재하였으므로, 이와 반대의 경우에 대해서도 가능함은 물론이다. 이는 보트 코드를 업데이트 하는 파일을 통해 부트 코드를 업데이트하는 과정에서 메인 부트 영역과 슬레이브 부트 영역을 교번하여 수행하므로 가능한 것이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made within the scope of the present invention. In particular, since the embodiment of the present invention has been described in the state in which the boot loader region is assumed to be the main boot region and the bootstrap region is the slave boot region, the reverse may be possible. This is possible because the main boot area and the slave boot area are alternately performed in the process of updating the boot code through the file updating the boat code. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the scope of the following claims, but also by the equivalents of the claims.
상술한 바와 같이 본 발명은 부트 코드를 업데이트하는 중에 업데이트 대상 영역을 소거한 상태에서 비정상적인 원인으로 인해 전원이 차단되어 업데이트가 중단되었던 경우에도 부트 영역을 구분한 메인 부트 영역과 슬레이브 부트 영역을 통해서 부팅하여 부트 코드를 업그레이드함으로써, 부팅이 안되던 문제점을 해소하며 부트 코드에 대한 업데이트를 수행할 수 있는 효과가 있다.As described above, the present invention is booted through the main boot region and the slave boot region, which divides the boot region even when the update is interrupted because the power is cut off due to an abnormal cause while the update target region is erased while updating the boot code. By upgrading the boot code, the boot code can be solved and the boot code can be updated.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040057812A KR100876748B1 (en) | 2004-07-23 | 2004-07-23 | Method for updating boot code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040057812A KR100876748B1 (en) | 2004-07-23 | 2004-07-23 | Method for updating boot code |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060008131A true KR20060008131A (en) | 2006-01-26 |
KR100876748B1 KR100876748B1 (en) | 2009-01-07 |
Family
ID=37119267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040057812A KR100876748B1 (en) | 2004-07-23 | 2004-07-23 | Method for updating boot code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100876748B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102846273A (en) * | 2011-06-28 | 2013-01-02 | 三星电子株式会社 | Robot cleaner and control method thereof |
WO2021162789A1 (en) * | 2020-02-13 | 2021-08-19 | Intel Corporation | Update of boot code handlers |
KR102566869B1 (en) | 2022-12-06 | 2023-08-14 | 한화시스템 주식회사 | Error correction and update method of software stored non-volatile memory and interface cable for the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102567097B1 (en) | 2018-12-05 | 2023-08-14 | 삼성전자주식회사 | Method for updating Boot ROM of Embedded system and booting of thereof |
Family Cites Families (6)
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 (en) * | 2001-05-24 | 2002-11-30 | 주식회사 하이닉스반도체 | Method for updating of flash memory in mobile communication system |
KR20030020622A (en) * | 2001-09-04 | 2003-03-10 | 주식회사 현대시스콤 | Device and method for bootting using multi partition flash rom |
JP2004013477A (en) | 2002-06-06 | 2004-01-15 | Nec Viewtechnology Ltd | Method for selecting and updating boot program and flash memory using the same |
JP2004157767A (en) | 2002-11-06 | 2004-06-03 | Mitsubishi Electric Corp | Software update system |
KR20050068722A (en) * | 2003-12-30 | 2005-07-05 | 엘지전자 주식회사 | Apparatus and method for remote control of hardware boot |
-
2004
- 2004-07-23 KR KR1020040057812A patent/KR100876748B1/en active IP Right Grant
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102846273A (en) * | 2011-06-28 | 2013-01-02 | 三星电子株式会社 | Robot cleaner and control method thereof |
WO2021162789A1 (en) * | 2020-02-13 | 2021-08-19 | Intel Corporation | Update of boot code handlers |
US12008359B2 (en) | 2020-02-13 | 2024-06-11 | Intel Corporation | Update of boot code handlers |
KR102566869B1 (en) | 2022-12-06 | 2023-08-14 | 한화시스템 주식회사 | Error correction and update method of software stored non-volatile memory and interface cable for the same |
Also Published As
Publication number | Publication date |
---|---|
KR100876748B1 (en) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100506203B1 (en) | Booting and boot code update method and system thereof | |
KR100584338B1 (en) | Method and system for updating software | |
CN110231952B (en) | ECU program backup and cyclic upgrade control method and device | |
WO2022007656A1 (en) | Bootloader software updating method and apparatus, embedded controller, and storage medium | |
US8364942B2 (en) | Electronic device having an alterable configuration and methods of manufacturing and configuring the same | |
US5864698A (en) | Disk based bios | |
JP2000357095A (en) | Method and device for downloading software to embedded system | |
CN109753299A (en) | A kind of method for upgrading system, device and computer storage medium | |
KR100700578B1 (en) | Method for upgrading firmware in mobile phone | |
CN110750280B (en) | Android platform-based application upgrading method and system and storage medium | |
US20020095619A1 (en) | Fault tolerant/redundant boot ROM reprogramming | |
JP2010044574A (en) | Portable terminal, portable terminal control method and portable terminal control program | |
KR100729525B1 (en) | Method and system for updating firmware | |
KR100876748B1 (en) | Method for updating boot code | |
CN111459508B (en) | BootLoader self-upgrading method and system | |
CN112631669A (en) | Method, device, computer equipment and medium for starting embedded system | |
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 | |
CN115686554A (en) | BootLoader program upgrading method and device | |
CN113721959A (en) | Information processing method and device and electronic equipment | |
KR100538627B1 (en) | Method for partupgrading sofrware of wireless terminal | |
KR100617796B1 (en) | Mobile terminal equipment capable of upgrading a wireless firmware and method thereof | |
KR100429903B1 (en) | Method for updating images in home gateway system | |
KR100762618B1 (en) | The method and system of upgrading firmware upgrade engine of mobile terminal | |
KR100487717B1 (en) | System and method for loading operating system for embedded system |
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 |