KR100617796B1 - Mobile terminal equipment capable of upgrading a wireless firmware and method thereof - Google Patents

Mobile terminal equipment capable of upgrading a wireless firmware and method thereof Download PDF

Info

Publication number
KR100617796B1
KR100617796B1 KR1020040031636A KR20040031636A KR100617796B1 KR 100617796 B1 KR100617796 B1 KR 100617796B1 KR 1020040031636 A KR1020040031636 A KR 1020040031636A KR 20040031636 A KR20040031636 A KR 20040031636A KR 100617796 B1 KR100617796 B1 KR 100617796B1
Authority
KR
South Korea
Prior art keywords
wireless
firmware
firmware upgrade
boot code
engine
Prior art date
Application number
KR1020040031636A
Other languages
Korean (ko)
Other versions
KR20050106644A (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 KR1020040031636A priority Critical patent/KR100617796B1/en
Publication of KR20050106644A publication Critical patent/KR20050106644A/en
Application granted granted Critical
Publication of KR100617796B1 publication Critical patent/KR100617796B1/en

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
    • 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/445Program loading or initiating

Landscapes

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

Abstract

본 발명은 무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법에 관한 것이다. 상기 방법은 특정 번지들에 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 리소스, 무선 펌웨어 사용 영역이 저장되고, 상기 무선 펌웨어 업그레이드 사용 영역에 펌웨어 업그레이드 여부를 나타내는 플래그 정보가 포함되어 있는 플래시 메모리와 랜덤 액세스 메모리를 구비한 무선 단말기의 무선 펌웨어 업그레이드 방법에 있어서, 전원이 인가되면 상기 무선 펌웨어 업그레이드 엔진을 상기 랜덤 액세스 메모리에 로딩하는 과정과, 상기 로딩된 무선 펌웨어 업그레이드 엔진을 실행시키며, 상기 실행 중에 상기 플래그 정보를 검사하여 펌웨어를 업그레이드 할 필요가 있는지 여부를 체크하는 과정과, 상기 펌웨어 업그레이드가 필요하다고 판단되면 상기 실행된 무선 펌웨어 업그레이드 엔진을 이용하여 상기 플래시 메모리의 펌웨어를 업그레이드시키는 과정을 포함함을 특징으로 한다. The present invention relates to a wireless firmware upgradeable wireless terminal and a method thereof. The method includes a flash memory and a random flash memory, each of which stores a wireless firmware upgrade engine, a boot code, an application, a resource, and a wireless firmware usage area at specific addresses, and includes flag information indicating whether the firmware is upgraded in the wireless firmware upgrade usage area. A method of upgrading a wireless firmware of a wireless terminal having an access memory, the method comprising: loading the wireless firmware upgrade engine into the random access memory when power is applied; executing the loaded wireless firmware upgrade engine; Checking the flag information to check whether the firmware needs to be upgraded, and if it is determined that the firmware upgrade is necessary, the firmware of the flash memory using the executed wireless firmware upgrade engine. It characterized in that it comprises the process of upgrading.

무선 단말기, 무선 펌웨어 업그레이드, 부트 Wireless Terminal, Wireless Firmware Upgrade, Boot

Description

무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법{MOBILE TERMINAL EQUIPMENT CAPABLE OF UPGRADING A WIRELESS FIRMWARE AND METHOD THEREOF} Wireless firmware upgradeable wireless terminal and its method {MOBILE TERMINAL EQUIPMENT CAPABLE OF UPGRADING A WIRELESS FIRMWARE AND METHOD THEREOF}             

도 1은 무선 펌웨어 업그레이드 기능을 갖지 않는 단말기의 구조를 나타낸 도면1 is a view showing the structure of a terminal having no wireless firmware upgrade function

도 2는 종래의 무선 펌웨어 업그레이드 기능을 가지는 단말기의 구조를 나타낸 도면2 is a view showing the structure of a terminal having a conventional wireless firmware upgrade function

도 3은 종래의 무선 펌웨어 업그레이드 방법을 나타낸 흐름도3 is a flowchart illustrating a conventional wireless firmware upgrade method.

도 4는 무선 펌웨어 업그레이드에 이용되는 델타 파일의 구조를 나타낸 도면 4 is a diagram illustrating the structure of a delta file used for wireless firmware upgrade.

도 5는 본 발명의 실시예에 따른 무선 펌웨어 업그레이드 기능을 가지는 단말기의 구조를 나타낸 도면5 is a view showing the structure of a terminal having a wireless firmware upgrade function according to an embodiment of the present invention

도 6은 본 발명의 실시예에 따른 무선 펌웨어 업그레이드 방법을 나타낸 흐름도6 is a flowchart illustrating a wireless firmware upgrade method according to an embodiment of the present invention.

본 발명은 무선 펌웨어 다운로딩 가능 무선 단말기 및 그 방법에 관한 것으로, 특히 부트 코드(boot code)를 업데이트 할 수 있는 무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법에 관한 것이다.The present invention relates to a wireless firmware downloadable wireless terminal and a method thereof, and more particularly, to a wireless firmware upgradeable wireless terminal and a method for updating a boot code.

단말기가 출시된 이후에 버그가 발견되거나 단말기 제조사 혹은 서비스 업자가 새로운 기능을 추가하고 싶은 경우에는 단말기의 펌웨어를 업그레이드해야 한다. If a bug is found after the device is released or if the device manufacturer or service provider wants to add a new function, the firmware of the device must be upgraded.

IOTA-SD(Internet On The Air Software Downloading)라는 무선 펌웨어 다운로딩 기술은 위와 같은 일이 발생할 경우, 단말기가 무선 데이터 네트워크를 통해 업그레이딩 관련 데이터(이하 델타 파일이라 함.)를 다운받고, 그 델타 파일을 단말기에 이미 내장되어 있는 펌웨어 업그레이딩 엔진이 이용하여 자동으로 단말기의 펌웨어를 업그레이드 하는 기술이다.Wireless firmware downloading technology called Internet On The Air Software Downloading (IOTA-SD), when the above happens, the device downloads the upgrade-related data (hereinafter referred to as a delta file) through the wireless data network, and the delta It is a technology that automatically upgrades the firmware of a terminal by using a file upgrading engine already embedded in the terminal.

도 1은 무선 펌웨어 업그레이드 기능을 가지지 않는 단말기의 구조를 나타낸 것이다. 1 illustrates a structure of a terminal having no wireless firmware upgrade function.

도시된 바와 같이 내부 메모리 10과 CPU 20은 마이크로프로세서 500에 포함된 것으로서, 내부 메모리 10은 예를 들어 SRAM(Static RAM) 혹은 ROM(read-only memory)으로 구현할 수 있다. As illustrated, the internal memory 10 and the CPU 20 are included in the microprocessor 500, and the internal memory 10 may be implemented as, for example, static RAM (SRAM) or read-only memory (ROM).

CPU 20은 전원이 인가되면, 내부 메모리 10에 저장되어 있는 프로그램에 의해 플래시 메모리(flash memory) 30A의 특정 번지(A1)에 저장되어 있는 부트 코드를 랜덤 액세스 메모리(Random Access Memory: 이하 RAM이라 함.) 40B의 특정 번지(B2)에 로딩한다. 상기 부트 코드는 부팅을 진행시키는 데 필요한 명령들이다. 그리고 CPU 20은 RAM 40B에 위치된 부트 코드를 실행시켜 플래시 메모리 30A의 특정 번지(A2)에 저장되어 있는 어플리케이션 코드를 RAM 40B의 특정 번지(B1)에 저장시킨다. 그리고 어플리케이션을 실행시키게 된다. When power is applied to the CPU 20, a boot code stored in a specific address A1 of the flash memory 30A by a program stored in the internal memory 10 is called a random access memory (RAM). .) Load at specific address (B2) of 40B. The boot code is a command necessary to proceed with booting. The CPU 20 executes the boot code located in the RAM 40B to store the application code stored in the specific address A2 of the flash memory 30A in the specific address B1 of the RAM 40B. Then run the application.

여기서 어플리케이션은 부트 코드를 제외한, 단말기의 동작에 관련된 모든 펌웨어들을 의미한다. 또한 리소스(resource)는 어플리케이션 실행에 필요한 데이터 등을 의미한다. Here, the application refers to all firmwares related to the operation of the terminal except the boot code. In addition, resource refers to data required for running an application.

도 2는 종래의 무선 펌웨어 업그레이드 기능을 가지는 단말기의 구조를 나타낸 것이다. 2 illustrates a structure of a terminal having a conventional wireless firmware upgrade function.

도시된 바와 같이 내부 메모리 10과 CPU 20은 마이크로프로세서 500에 포함된 것으로서, 내부 메모리 10은 예를 들어 SRAM으로 구현할 수 있다. As illustrated, the internal memory 10 and the CPU 20 are included in the microprocessor 500, and the internal memory 10 may be implemented as, for example, SRAM.

CPU 20은 전원이 인가되면, 내부 메모리 10에 저장되어 있는 프로그램을 실행시켜 플래시 메모리 30C의 부트 코드를 RAM 40D에 로딩한다. 그리고 CPU 20은 상기 RAM 40D의 부트 코드를 실행시킨다. When power is applied, the CPU 20 executes a program stored in the internal memory 10 to load the boot code of the flash memory 30C into the RAM 40D. The CPU 20 executes the boot code of the RAM 40D.

플래시 메모리 30C의 특정 번지들(C1 ~ C5)에는 각각 부트 코드, 어플리케이션, 리소스, 및 무선 펌웨어 업그레이드 엔진이 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역도 구비된다. 상기 무선 펌웨어 업그레이드 엔진 사용 영역에는 플래그(flag) 정보 FLG1이 포함되어 있다. CPU 20은 부트 코드를 실행시키는 동안 플래그 정보 FLG1을 확인하여 펌웨어 업그레이드 여부를 판단할 수 있다. Specific addresses C1 to C5 of the flash memory 30C store a boot code, an application, a resource, and a wireless firmware upgrade engine, respectively, and include a wireless firmware upgrade engine use area. Flag information FLG1 is included in the wireless firmware upgrade engine use area. The CPU 20 may determine whether to upgrade the firmware by checking the flag information FLG1 while executing the boot code.

RAM 40D의 특정 번지(D1)에 저장되어 있는 무선 펌웨어 업그레이드 엔진은 펌웨어를 업그레이드 할 필요가 있다고 판단되었을 때 플래시 메모리 30C의 특정 번지(C4)에 저장되어 있던 무선 펌웨어 업그레이드 엔진을 로딩한 것이다. RAM 40D의 다른 특정 번지(D2)에 저장되어 있는 부트 코드는 단말기에 전원이 인가되었을 때 플래시 메모리 30C의 특정 번지(C1)에 저장된 부트 코드를 로딩한 것이다. The wireless firmware upgrade engine stored in the specific address D1 of the RAM 40D is loaded with the wireless firmware upgrade engine stored in the specific address C4 of the flash memory 30C when it is determined that the firmware needs to be upgraded. The boot code stored in another specific address D2 of the RAM 40D is loaded with the boot code stored in the specific address C1 of the flash memory 30C when power is applied to the terminal.

도 3은 종래의 무선 펌웨어 업그레이드 방법을 나타낸 흐름도이다. 3 is a flowchart illustrating a conventional wireless firmware upgrade method.

3a단계에서 전원이 인가되면, 3b단계에서 CPU 20이 내부 메모리 10에 저장되어 있는 프로그램을 실행시켜 플래시 메모리 30C에 저장되어 있는 부트 코드를 RAM 40D에 로딩한다. 그리고 3c단계에서 CPU 20은 RAM 40D에 위치된 부트 코드를 실행시킨다. 이때 CPU 20은 부트 코드 실행 중 플래그 정보 FLG1을 체크하여 펌웨어 업그레이드 여부를 체크한다. 만약 펌웨어를 업그레이드 할 필요가 있다고 판단되면, 3d단계에서 CPU 20은 플래시 메모리 30C에 저장되어 있는 무선 펌웨어 업그레이드 엔진을 RAM 40D에 로딩하여 3e단계에서 업그레이드를 실행한다. When power is applied in step 3a, the CPU 20 executes a program stored in the internal memory 10 in step 3b to load the boot code stored in the flash memory 30C into the RAM 40D. In step 3c, the CPU 20 executes the boot code located in the RAM 40D. At this time, the CPU 20 checks the flag information FLG1 while executing the boot code to check whether the firmware is upgraded. If it is determined that the firmware needs to be upgraded, in step 3d, the CPU 20 loads the wireless firmware upgrade engine stored in the flash memory 30C into the RAM 40D and executes the upgrade in step 3e.

상기 3c단계에서 펌웨어를 업그레이드할 필요가 없다고 판단되거나 상기 3e단계에서 업그레이드를 실행한 다음에는 3f단계로 진행하여 펌웨어(이 경우 펌웨어는 어플리케이션을 의미한다.)를 RAM 40D에 로딩한다. 그리고 3g단계에서 대기모드로 전환된다. If it is determined that the firmware does not need to be upgraded in step 3c or the upgrade is performed in step 3e, the process proceeds to step 3f to load the firmware (in this case, the firmware means an application) into the RAM 40D. In step 3g, the process goes to standby mode.

그런데 상기한 방법에 따르면, CPU가 먼저 부트 코드를 실행시켜서 그 실행 중에 플래그를 검사한 결과 펌웨어 업그레이드를 하는 것으로 설정되어 있다고 판단되면 무선 펌웨어 업그레이드 엔진을 로딩하기 때문에, 부트 코드 자체는 업그레이드가 될 수가 없었다. 왜냐하면, 단말기에 전원이 인가될 경우 부트 코드는 반드시 실행을 해야 하는데, 부트 코드를 업그레이드 하던 중 전원을 차단하게 되면 부트 코드가 손상을 입게 된다. 그 다음 단말기에 전원을 인가하게 되면 손상된 부트 코드가 동작하기 때문에 무선 펌웨어 업그레이드 엔진이 RAM에 정확하게 로딩되는지 보증할 수 없을 뿐만 아니라, 손상된 부트 코드가 어떤 동작을 일으키는지도 보증할 수 없다.However, according to the above method, if the CPU first executes the boot code and checks a flag during its execution and determines that the firmware is set to upgrade, the boot code itself cannot be upgraded because the wireless firmware upgrade engine is loaded. There was no. Because, when power is applied to the terminal, the boot code must be executed. If the power is cut off while upgrading the boot code, the boot code is damaged. The next time the terminal is powered up, the corrupted boot code will not work to ensure that the wireless firmware upgrade engine is correctly loaded into RAM, nor to guarantee what behavior the damaged boot code will cause.

따라서 본 발명의 목적은 부트 코드도 업그레이드할 수 있는 무선 펌웨어 업그레이드 가능 무선 단말기 및 그 방법을 제공함에 있다. Accordingly, an object of the present invention is to provide a wireless firmware upgradeable wireless terminal and a method for upgrading the boot code.

상기한 목적을 달성하기 위한 본 제1발명은 특정 번지들에 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 및 리소스가 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역을 가지며, 상기 무선 펌웨어 업그레이드 엔진 사용 영역에 펌웨어 업그레이드 여부를 나타내는 플래그 정보가 포함되어 있는 플래시 메모리, 내부 메모리와 중앙처리장치를 가지는 마이크로프로세서, 그리고 RAM을 구비한 무선 펌웨어 업그레이드 가능 무선 단말기에 있어서, 상기 중앙처리장치가 전원이 인가되면 상기 내부 메모리에 저장되어 있는 프로그램을 실행시켜 상기 무선 펌웨어 업그레이드 엔진을 상기 RAM에 로딩한 다음, 상기 로딩된 무선 펌웨어 업그레이드 엔진을 실행시키며, 상기 실행 중에 상기 플래그 정보를 검사하여 펌웨어를 업그레이드 할 필요가 있다고 판단되면 상기 실행된 무선 펌웨어 업그레이드 엔진을 이용하여 상기 플래시 메모리의 부트 코드를 업그레이드시키도록 구성함을 특징으로 한다. In order to achieve the above object, the present invention has a wireless firmware upgrade engine, a boot code, an application, and a resource stored in specific addresses, and has a wireless firmware upgrade engine usage area. A wireless firmware upgradeable wireless terminal having a flash memory including flag information indicating whether the firmware is upgraded, a microprocessor having an internal memory and a central processing unit, and a RAM, the internal processing unit being powered on when the central processing unit is powered on A program stored in a memory is executed to load the wireless firmware upgrade engine into the RAM, and then the loaded wireless firmware upgrade engine is executed, and the flag information needs to be checked to upgrade the firmware during the execution. And if it is determined that the boot code of the flash memory is upgraded using the executed wireless firmware upgrade engine.                         

상기한 목적을 달성하기 위한 본 제2발명은 특정 번지들에 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 및 리소스가 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역을 가지며, 상기 무선 펌웨어 업그레이드 엔진 사용 영역에 펌웨어 업그레이드 여부를 나타내는 플래그 정보가 포함되어 있는 플래시 메모리와 RAM을 구비한 무선 단말기의 무선 펌웨어 업그레이드 방법에 있어서, 전원이 인가되면 상기 무선 펌웨어 업그레이드 엔진을 상기 RAM에 로딩하는 과정과, 상기 로딩된 무선 펌웨어 업그레이드 엔진을 실행시키며, 상기 실행 중에 상기 플래그 정보를 검사하여 펌웨어를 업그레이드 할 필요가 있는지 여부를 체크하는 과정과, 상기 펌웨어 업그레이드가 필요하다고 판단되면 상기 실행된 무선 펌웨어 업그레이드 엔진을 이용하여 상기 플래시 메모리의 펌웨어를 업그레이드시키는 과정을 포함함을 특징으로 한다.
According to the second aspect of the present invention, a wireless firmware upgrade engine, a boot code, an application, and a resource are stored at specific addresses, and have a wireless firmware upgrade engine use area. A wireless firmware upgrade method of a wireless terminal having a flash memory and a RAM including flag information indicating whether to upgrade firmware, the method comprising: loading the wireless firmware upgrade engine into the RAM when power is applied; Executing a firmware upgrade engine, checking whether the firmware needs to be upgraded by checking the flag information during the execution; and if the firmware upgrade is necessary, using the executed wireless firmware upgrade engine And upgrading the firmware of the flash memory.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 하기 설명에서는 구체적인 메모리 어드레스 할당 순서, 메모리의 종류 등과 같은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술 분야에서 통상의 지식을 가진 자에게는 자 명하다 할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals have the same reference numerals as much as possible even if displayed on different drawings. In the following description, specific details such as a specific memory address allocation order, a type of memory, and the like appear, which are provided to help a more general understanding of the present invention, and the present invention may be practiced without these specific details. It will be obvious to those skilled in the art. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

도 4는 무선 펌웨어 업그레이드에 이용되는 델타 파일의 구조를 나타낸 도면이다. 4 is a diagram illustrating the structure of a delta file used for wireless firmware upgrade.

델타 파일에는 베이스 파일 해시(hash)값 52, 버전 파일 해시값 53, 델타 파일 헤더 체크섬 54, 델타 파일 정보 55가 저장되어 있다. The delta file stores a base file hash value 52, a version file hash value 53, a delta file header checksum 54, and a delta file information 55.

이전 버전의 펌웨어를 베이스 파일이라고 부른다. 베이스 파일 해시값 53을 참조하면 업그레이드해야 할 대상 및 그 적합성을 확인할 수 있다. 즉, 어플리케이션의 베이스 파일 해시값과 부트 코드의 베이스 파일 해시값이 서로 다른 체계를 가질 것이므로 베이스 파일 해시값으로써 업그레이드 대상 확인이 가능하다. 또한 이 베이스 파일 해시값으로써 단말기에 저장된 업그레이드 대상의 소프트웨어 버전과 델타 파일 정보 55의 소프트웨어 버전이 서로 맞는 것인지 확인 가능하다. 이와 같은 확인이 필요한 이유는 해당 펌웨어의 소프트웨어 버전이 서로 맞지 않으면, 예를 들어 단말기의 부트 코드 소프트웨어 버전을 1에서 2로 바꾸려할 때 부트 코드 버전 3에 대한 델타 파일 정보가 제공된다면, 업그레이드를 수행할 수 없기 때문이다.Older versions of firmware are called base files. Refer to the base file hash value 53 to determine what should be upgraded and its suitability. That is, since the base file hash value of the application and the base file hash value of the boot code will have different schemes, the upgrade target can be identified as the base file hash value. In addition, as the base file hash value, it is possible to check whether the software version of the upgrade target stored in the terminal and the software version of the delta file information 55 match each other. The reason for this check is that if the software versions of the firmware do not match, for example, if the delta file information for boot code version 3 is provided when you try to change the boot code software version of the terminal from 1 to 2, perform the upgrade. Because you can't.

새로운 버전의 펌웨어를 버전 파일이라고 부르며, 버전 파일 해시값으로 업그레이드 성공 여부를 알 수 있다. 무선 펌웨어 업그레이드 엔진은 업그레이딩 도중에 전원이 차단되었을 경우 다시 전원을 인가하면 저널링이라는 기술을 이용하여 전원이 차단되었던 시점부터 다시 업그레이드를 할 수 있다. The new version of the firmware is called the version file, and the version file hash indicates whether the upgrade was successful. If the power is turned off during the upgrade, the wireless firmware upgrade engine can be upgraded from the point of time when the power is turned off by using a technique called journaling.

도 5는 본 발명의 실시예에 따른 무선 펌웨어 업그레이드 기능을 가지는 단말기의 구조를 나타낸 도면이다.5 is a view showing the structure of a terminal having a wireless firmware upgrade function according to an embodiment of the present invention.

도시된 바와 같이 내부 메모리 10과 CPU 20은 마이크로프로세서 500에 포함된 것으로서, 내부 메모리 10은 예를 들어 SRAM 혹은 ROM으로 구현할 수 있다. As illustrated, the internal memory 10 and the CPU 20 are included in the microprocessor 500, and the internal memory 10 may be implemented as, for example, SRAM or ROM.

CPU 20은 전원이 인가되면, 내부 메모리 10에 저장되어 있는 프로그램을 실행시켜 무선 펌웨어 업그레이드 엔진을 RAM 40F에 로딩한다. When power is applied, the CPU 20 executes a program stored in the internal memory 10 to load the wireless firmware upgrade engine into the RAM 40F.

플래시 메모리 30E의 특정 번지들(E1 ~ E5)에는 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 및 리소스가 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역도 구비된다. 상기 무선 펌웨어 업그레이드 엔진 사용 영역에는 플래그 정보 FLG1이 포함되어 있다. CPU 20은 무선 펌웨어 업그레이드 엔진의 실행 중에 상기 플래그 정보 FLG1을 이용하여 펌웨어 업그레이드 여부를 판단할 수 있다. Specific addresses E1 to E5 of the flash memory 30E store a wireless firmware upgrade engine, a boot code, an application, and a resource, respectively, and are provided with a wireless firmware upgrade engine use area. Flag information FLG1 is included in the wireless firmware upgrade engine use area. The CPU 20 may determine whether to upgrade the firmware using the flag information FLG1 while executing the wireless firmware upgrade engine.

상기 플래시 메모리 30E는 낸드(NAND) 혹은 노아(NOR) 플래시 메모리로 구현할 수 있다. 도시된 순서로 어드레스를 할당한 것은 예에 불과하다. 다시 말해서, 도시된 예에서는 무선 펌웨어 업그레이드 엔진이 저장될 어드레스가 E1에 할당되어 있지만, 부트 코드가 저장될 어드레스가 E1에 할당될 수도 있다. The flash memory 30E may be implemented as a NAND or NOR flash memory. Allocating addresses in the order shown is only an example. In other words, in the illustrated example, an address for storing the wireless firmware upgrade engine is assigned to E1, but an address for storing a boot code may be assigned to E1.

RAM 40F의 특정 번지(F2)에 저장되어 있는 무선 펌웨어 업그레이드 엔진은 전원이 인가되었을 때 플래시 메모리 30E의 특정 번지(E1)에 저장되어 있던 무선 펌웨어 업그레이드 엔진을 로딩한 것이다. The wireless firmware upgrade engine stored in the specific address F2 of the RAM 40F is loaded with the wireless firmware upgrade engine stored in the specific address E1 of the flash memory 30E when the power is applied.

도 6은 본 발명의 실시예에 따른 무선 펌웨어 업그레이드 방법을 나타낸 흐름도이다.6 is a flowchart illustrating a wireless firmware upgrade method according to an embodiment of the present invention.

도시된 예는 낸드 플래시 메모리의 경우를 가정하여 나타낸 것인데, 노아 플래시 메모리의 경우에는 6h단계 및 6i단계를 수행하지 않을 수도 있다는 점에서 낸드 플래시 메모리의 경우와 차이가 있다. The illustrated example assumes the case of NAND flash memory, which differs from that of NAND flash memory in that Noah flash memory may not perform steps 6h and 6i.

6a단계에서 전원이 인가되면, 6b단계에서 CPU 20이 내부 메모리 10에 저장되어 있는 프로그램을 실행시켜 플래시 메모리 30E에 저장되어 있는 무선 펌웨어 업그레이드 엔진을 RAM 40F에 로딩한다. 그리고 6c단계에서 CPU 20은 무선 펌웨어 업그레이드 엔진의 실행 중에 플래그 정보 FLG1을 체크하여 펌웨어를 업그레이드해야 하는지 여부를 판단한다. When power is applied in step 6a, the CPU 20 executes a program stored in the internal memory 10 in step 6b to load the wireless firmware upgrade engine stored in the flash memory 30E into the RAM 40F. In step 6c, the CPU 20 checks the flag information FLG1 while the wireless firmware upgrade engine is running to determine whether to upgrade the firmware.

만약 펌웨어를 업그레이드 할 필요가 있다고 판단되면, 6d계에서 CPU 20은 델타파일에 있는 해시값을 이용하여 부트 코드에 대한 업그레이드가 필요한지 여부를 판단한다. 상기 체크 결과, 부트 코드 업그레이딩이 필요하다고 판단되면 6g단계에서 플래시 메모리 30C에 저장되어 있는 부트 코드에 대한 업그레이딩을 실시한다. 만일 부트 코드 업그레이딩이 필요한 것이 아니라면, 6e단계에서 CPU 20은 상기 델타파일에 있는 해시값이 어플리케이션에 대한 업그레이드가 필요함을 나타내고 있는지 여부를 판단한다. 상기 체크 결과, 어플리케이션 업그레이딩이 필요하다고 판단되면 6f단계에서 플래시 메모리 30C에 저장되어 있는 어플리케이션에 대한 업그레이딩을 실시한다.If it is determined that the firmware needs to be upgraded, the CPU 20 in the 6d system uses the hash value in the delta file to determine whether the upgrade of the boot code is necessary. As a result of the check, if it is determined that the boot code upgrade is necessary, the boot code stored in the flash memory 30C is upgraded in step 6g. If boot code upgrade is not required, in step 6e the CPU 20 determines whether the hash value in the delta file indicates that the application needs an upgrade. If it is determined that the application upgrade is necessary as a result of the check, the application stored in the flash memory 30C is upgraded in step 6f.

상기 6c단계에서 펌웨어 업그레이딩이 필요하지 않다고 판단된 경우, 상기 6e단계에서 어플리케이션에 대한 업그레이드가 필요하지 않다고 판단된 경우, 상기 6g단계에서 부트 코드 업그레이딩을 실행한 후, 혹은 상기 6f단계에서 어플리케이션 업그레이딩을 실행한 후에는 6h단계로 진행하여 상기 플래시 메모리 30E의 부트 코드를 RAM 40F에 로딩한다. 그리고 6i단계에서 상기 플래시 메모리 30E의 어플리케이션을 로딩한다. 다만, 상기 6c단계에서 펌웨어 업그레이딩이 필요하지 않다고 판단되거나 상기 6e단계에서 어플리케이션에 대한 업그레이드가 필요하지 않다고 판단된 경우에 6h 및 6i단계에서 각각 로딩되는 부트 코드 혹은 어플리케이션은 원래 버전이고, 상기 6g 혹은 6f단계를 수행한 다음에 6h 및 6i단계에서 각각 로딩되는 부트 코드 혹은 어플리케이션은 업그레이드된 것이다. If it is determined that the firmware upgrade is not necessary in step 6c, if it is determined that the upgrade for the application is not necessary in step 6e, after executing boot code upgrading in step 6g, or in step 6f After the upgrade is performed, the process proceeds to step 6h to load the boot code of the flash memory 30E into the RAM 40F. In operation 6i, the application of the flash memory 30E is loaded. However, when it is determined in step 6c that firmware upgrade is not necessary or when it is determined in step 6e that no upgrade is required for the application, the boot code or application loaded in steps 6h and 6i, respectively, is the original version, and the 6g Alternatively, the boot code or application loaded in steps 6h and 6i after performing step 6f is upgraded.

상기 6i단계 수행 후에는 6j단계에서 대기모드로 전환된다. After performing step 6i, the process enters the standby mode in step 6j.

위와 같은 동작이 가능하게 하기 위해서는 무선 펨웨어 엔진에서 단말기를 동작시키기 위한 최소한의 초기화 코드가 포함되어야 한다. 여기서 최소한의 초기화 코드란 전원공급 시 무선 펨웨어 엔진에서 바로 단말기를 동작시켜야 하므로, 부트 코드의 초기단계에서 실시하는 단말기의 클럭 설정 및 단말기의 내부 레지스터 설정 등을 말한다.In order to enable the above operation, a minimum initialization code for operating the terminal in the wireless firmware engine should be included. In this case, the minimum initialization code means that the terminal must be operated directly from the wireless firmware engine when the power is supplied. Thus, the clock setting of the terminal and the internal register setting of the terminal are performed in the initial stage of the boot code.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안 되며 후술하는 특허청구의 범위뿐 만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.

상술한 바와 같이 본 발명은 전원이 인가되면, 부트 코드를 로딩하지 않고, 먼저 플래시 메모리의 무선 펌웨어 업그레이드 엔진을 램에 로딩한 다음 이를 실행시켜 업그레이드 대상 및 그 적합성 여부를 판단한 뒤 해당 펌웨어를 업그레이드시키도록 함으로써 부트 코드도 업그레이드할 수 있는 장점이 있다.As described above, when the power is applied, the present invention does not load a boot code, but first loads a wireless firmware upgrade engine of a flash memory into a RAM and then executes the same to determine an upgrade target and its suitability, and then upgrade the firmware. This allows you to upgrade your boot code.

Claims (10)

특정 번지들에 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 및 리소스가 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역을 가지며, 상기 무선 펌웨어 업그레이드 엔진 사용 영역에 펌웨어 업그레이드 여부를 나타내는 플래그 정보가 포함되어 있는 플래시 메모리, 내부 메모리와 중앙처리장치를 가지는 마이크로프로세서, 그리고 랜덤 액세스 메모리를 구비한 무선 펌웨어 업그레이드 가능 무선 단말기에 있어서,The flash stores the wireless firmware upgrade engine, the boot code, the application, and the resources at specific addresses, has a wireless firmware upgrade engine usage area, and includes flag information indicating whether the firmware is upgraded in the wireless firmware upgrade engine use area. A wireless firmware upgradeable wireless terminal having a memory, a microprocessor having an internal memory and a central processing unit, and a random access memory, comprising: 상기 중앙처리장치가 전원이 인가되면 상기 내부 메모리에 저장되어 있는 프로그램을 실행시켜 상기 무선 펌웨어 업그레이드 엔진을 상기 랜덤 액세스 메모리에 로딩한 다음, 상기 로딩된 무선 펌웨어 업그레이드 엔진을 실행시키며, 상기 실행 중에 상기 플래그 정보를 검사하여 펌웨어를 업그레이드 할 필요가 있다고 판단되면 상기 실행된 무선 펌웨어 업그레이드 엔진을 이용하여 상기 플래시 메모리의 부트 코드를 업그레이드시키도록 구성함을 특징으로 하는 단말기.When the CPU is powered on, the program stored in the internal memory is executed to load the wireless firmware upgrade engine into the random access memory, and then the loaded wireless firmware upgrade engine is executed. And if it is determined that firmware needs to be upgraded by checking flag information, the terminal configured to upgrade the boot code of the flash memory using the executed wireless firmware upgrade engine. 제1항에 있어서,The method of claim 1, 상기 플래시 메모리는 낸드 플래시 메모리임을 특징으로 하는 단말기.And the flash memory is a NAND flash memory. 제1항에 있어서,The method of claim 1, 상기 플래시 메모리는 노아 플래시 메모리임을 특징으로 하는 단말기.And the flash memory is a noah flash memory. 제1항에 있어서,The method of claim 1, 상기 무선 펨웨어 업그레이드 엔진은 전원이 공급될 때 단말기를 동작시키기 위한 최소한의 초기화 코드를 가짐을 특징으로 하는 단말기.The wireless firmware upgrade engine has a minimum initialization code for operating the terminal when the power is supplied. 제4항에 있어서,The method of claim 4, wherein 상기 최소한의 초기화 코드가 클럭 설정 혹은 내부 레지스터 설정을 위한 코드를 포함함을 특징으로 하는 단말기.And the minimum initialization code comprises a code for clock setting or internal register setting. 제1항에 있어서,The method of claim 1, 상기 중앙처리장치는 무선 데이터 네크워크로부터 수신된 델타 파일의 베이스 파일 해시값을 참조하여 업그레이드 대상이 되는 펌웨어를 결정하고 그 적합성을 판단함을 특징으로 하는 단말기.And the CPU determines a firmware to be upgraded by referring to a base file hash value of a delta file received from a wireless data network and determines suitability thereof. 제6항에 있어서,The method of claim 6, 상기 업그레이드 대상이 되는 펌웨어가 부트 코드임을 특징으로 하는 단말기.Terminal for the upgrade target firmware is a boot code. 특정 번지들에 각각 무선 펌웨어 업그레이드 엔진, 부트 코드, 어플리케이션, 및 리소스가 저장되고, 무선 펌웨어 업그레이드 엔진 사용 영역을 가지며, 상기 무선 펌웨어 업그레이드 엔진 사용 영역에 펌웨어 업그레이드 여부를 나타내는 플래그 정보가 포함되어 있는 플래시 메모리와 랜덤 액세스 메모리를 구비한 무선 단말기의 무선 펌웨어 업그레이드 방법에 있어서,The flash stores the wireless firmware upgrade engine, the boot code, the application, and the resources at specific addresses, has a wireless firmware upgrade engine usage area, and includes flag information indicating whether the firmware is upgraded in the wireless firmware upgrade engine use area. In the wireless firmware upgrade method of a wireless terminal having a memory and a random access memory, 전원이 인가되면 상기 무선 펌웨어 업그레이드 엔진을 상기 랜덤 액세스 메모리에 로딩하는 과정과,Loading the wireless firmware upgrade engine into the random access memory when power is applied; 상기 로딩된 무선 펌웨어 업그레이드 엔진을 실행시키며, 상기 실행 중에 상기 플래그 정보를 검사하여 펌웨어를 업그레이드 할 필요가 있는지 여부를 체크하는 과정과,Executing the loaded wireless firmware upgrade engine and checking whether the firmware needs to be upgraded by checking the flag information during the execution; 상기 펌웨어 업그레이드가 필요하다고 판단되면 상기 실행된 무선 펌웨어 업그레이드 엔진을 이용하여 상기 플래시 메모리의 펌웨어를 업그레이드시키는 과정을 포함함을 특징으로 하는 방법.If it is determined that the firmware upgrade is necessary, upgrading the firmware of the flash memory using the executed wireless firmware upgrade engine. 제8항에 있어서,The method of claim 8, 상기 업그레이드되는 펌웨어는 어플리케이션 혹은 부트 코드이며, 이들 중 어느 하나의 선택은 무선 수신된 델타 파일의 베이스 파일 해시값을 참조하여 결정함을 특징으로 하는 방법.The upgraded firmware is an application or boot code, and the selection of any one of them is determined by referring to a base file hash value of a wirelessly received delta file. 제9항에 있어서,The method of claim 9, 상기 어플리케이션 혹은 부트 코드 업그레이드 후, 상기 랜덤 액세스 메모리에 상기 부트 코드를 로딩한 다음, 상기 어플리케이션을 로딩하는 과정을 더 포함함을 특징으로 하는 방법.After the upgrading of the application or the boot code, loading the boot code into the random access memory and then loading the application.
KR1020040031636A 2004-05-06 2004-05-06 Mobile terminal equipment capable of upgrading a wireless firmware and method thereof KR100617796B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040031636A KR100617796B1 (en) 2004-05-06 2004-05-06 Mobile terminal equipment capable of upgrading a wireless firmware and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040031636A KR100617796B1 (en) 2004-05-06 2004-05-06 Mobile terminal equipment capable of upgrading a wireless firmware and method thereof

Publications (2)

Publication Number Publication Date
KR20050106644A KR20050106644A (en) 2005-11-11
KR100617796B1 true KR100617796B1 (en) 2006-08-28

Family

ID=37283374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040031636A KR100617796B1 (en) 2004-05-06 2004-05-06 Mobile terminal equipment capable of upgrading a wireless firmware and method thereof

Country Status (1)

Country Link
KR (1) KR100617796B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100827172B1 (en) * 2004-05-06 2008-05-02 삼성전자주식회사 Apparatus and method for upgrading mobile terminal's firmware
KR20080037450A (en) * 2006-10-26 2008-04-30 웹싱크 주식회사 System and method for processing update software run on mobile terminal platform
KR100862971B1 (en) 2007-07-26 2008-10-13 강릉대학교산학협력단 Method for updating firmware of sensor nodes on the wireless sensor network
KR101353063B1 (en) * 2007-10-12 2014-01-17 삼성전자주식회사 Method for Operating Firmware Over The Air and Apparatus Thereof

Also Published As

Publication number Publication date
KR20050106644A (en) 2005-11-11

Similar Documents

Publication Publication Date Title
KR100506203B1 (en) Booting and boot code update method and system thereof
KR100778293B1 (en) Digital tv and upgrade method of bootloader for the same
US7516315B2 (en) Electronic device having an alterable configuration and methods of manufacturing and configuring the same
KR101427755B1 (en) Device and method for firmware upgrade using usb
US20040243992A1 (en) Update system capable of updating software across multiple FLASH chips
CN110597542B (en) Software automatic OTA (over the air) upgrading method and device and electronic equipment
CN111796848A (en) Bootloader software updating method and device, embedded controller and storage medium
US20080072029A1 (en) Method for executing power on self test on a computer system and updating SMBIOS information partially
CN110750280B (en) Android platform-based application upgrading method and system and storage medium
WO2018024198A1 (en) Application upgrade method and system for set-top box, and set-top box
CN112667265A (en) Method and device for updating bootstrap program
US20160321057A1 (en) Electronic apparatus
CN105677409A (en) System upgrading method and device
CN111026417A (en) Embedded equipment upgrading method and embedded equipment
KR100617796B1 (en) Mobile terminal equipment capable of upgrading a wireless firmware and method thereof
US9495146B2 (en) Host and method of upgrading connection manager of dongles
KR100860402B1 (en) Device and method for upgradin system using two step bootloader
CN110837383A (en) Application installation-free upgrading method and device
CN115994003A (en) Processing method and processing device for shared object in operating system
EP1710697A1 (en) Method and apparatus for executing application in system having NAND flash memory
US11768669B2 (en) Installing application program code on a vehicle control system
CA2539897C (en) An electronic device having an alterable configuration and methods of manufacturing and configuring the same
KR100762618B1 (en) The method and system of upgrading firmware upgrade engine of mobile terminal
KR100876748B1 (en) Method for updating boot code
CN112667444A (en) System upgrading method, storage medium and terminal equipment

Legal Events

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

Payment date: 20120730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee