KR100996632B1 - Apparatus and method of dynamically upgrading an execution code image - Google Patents
Apparatus and method of dynamically upgrading an execution code image Download PDFInfo
- Publication number
- KR100996632B1 KR100996632B1 KR20080080551A KR20080080551A KR100996632B1 KR 100996632 B1 KR100996632 B1 KR 100996632B1 KR 20080080551 A KR20080080551 A KR 20080080551A KR 20080080551 A KR20080080551 A KR 20080080551A KR 100996632 B1 KR100996632 B1 KR 100996632B1
- Authority
- KR
- South Korea
- Prior art keywords
- function
- upgrade
- image
- trap
- code
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
The apparatus for dynamically upgrading an executable code image includes a memory unit for storing at least a portion of the executable code image, a download agent unit for downloading the upgrade image upgraded in units of functions and storing the downloaded upgrade image in the memory unit; Extracting a first function requiring an upgrade from the at least some executable code images based on the upgrade image, checking whether the extracted first function is at a safety point, and installing a first trap code in the first function An image upgrade agent unit and a trap handler for processing the first trap code when the first function is called. Therefore, a device for dynamically upgrading an executable code image can be upgraded dynamically without rebooting when upgrading a specific device.
Description
Embodiments of the present invention are directed to an apparatus and method for dynamically upgrading an executable code image without rebooting.
Embedded System is a system with special functions by embedding the software that operates the system into the hardware. Unlike personal computers, embedded systems have specific requirements and perform predefined tasks. In embedded systems, operating systems and applications are stored as images in nonvolatile RAM (random access memory), such as flash memory.
Embedded systems can be used in cellular phones, spaceships, robot controls, smartphones, personal digital assistants or satellites, and frequently require operating systems and applications for bug fixes, performance enhancements, or feature additions. Upgrade.
One embodiment is to provide an apparatus for dynamically upgrading an executable code image.
One embodiment is to provide a method for dynamically upgrading an executable code image.
One embodiment is to provide a system for dynamically upgrading an executable code image.
In an embodiment, the apparatus for dynamically upgrading an executable code image may include: a memory unit storing at least a portion of the executable code image; downloading an upgrade image upgraded by a function unit, and storing the downloaded upgrade image in the memory unit; The download agent unit extracts a first function that needs to be upgraded from the at least some executable code images based on the upgrade image, checks whether the extracted first function is located at a safety point, and adds the first function to the first function. And an image upgrade agent unit for installing a first trap code, and a trap handler for processing the first trap code when the first function is called.
The trap handler may call an upgrade function corresponding to the first trap code. If necessary, the trap handler temporarily stores and deletes the contents stored in the stack when the first function is called, and when the first function is called, the temporary stored contents are returned from the upgrade function. May be restored to the stack to return to the function that called the first function.
The memory unit may include an upgrade table including a trap identifier indicating the first trap code and an upgrade function corresponding to the trap identifier.
The image upgrade agent unit may examine the call tree of a function currently being executed and determine that the first function is at the safety point if the first function is not included in the call tree.
The apparatus may further include a flash memory unit including a full executable code image (including the at least some executable code images), wherein the image upgrade agent unit is further configured to upgrade from the full executable code image based on the upgrade image. The second function may be extracted and stored in the flash memory unit so as to restore the extracted second function, and a second trap code may be installed in the second function to upgrade the entire execution code image.
For example, the device for dynamically upgrading the executable code image may correspond to a wirelessly communicable device including a cellular phone.
The image upgrade agent unit may upgrade the first function to an upgrade function corresponding to the first trap code when the device for dynamically upgrading the executable code image is rebooted.
In one or more embodiments, a method for dynamically upgrading an executable code image may include downloading an upgraded image that is upgraded by a function unit and storing the downloaded upgraded image in a memory unit. Extracting a first function requiring an upgrade from an executable code image, checking whether the extracted first function is at a safe point, installing a first trap code in the first function, and calling the first function Processing the first trap code as such.
Processing the first trap code may include calling an upgrade function corresponding to the first trap code.
The invoking the upgrade function may include temporarily storing and deleting contents stored in a stack when the first function is called, invoking the upgrade function, and temporarily returning from the upgrade function. Restoring the stored contents to the stack and returning to the function calling the first function.
The at least some execution code images may include an upgrade table including a trap identifier representing the first trap code and an upgrade function corresponding to the trap identifier.
The step of installing the first trap code in the first function is to examine the call tree of a function that is currently being executed, and if the first function is not included in the call tree, the first function is at the safety point. Determining may include.
Among embodiments, a system for dynamically upgrading an executable code image includes a development host that generates a program code or executable code image, an upgrade server that generates an upgrade image based on the generated program code or executable code image, and the upgrade. A target system that can be wirelessly connected to a server, the target system comprising: a memory unit for storing at least a portion of an executable code image; A download agent unit which downloads the upgrade image upgraded by a function unit and stores the downloaded upgrade image in the memory unit; Extracting a first function requiring an upgrade from the at least some executable code images based on the upgrade image, checking whether the extracted first function is at a safety point, and installing a first trap code in the first function An image upgrade agent unit; And a trap handler that processes the first trap code when the first function is called.
One embodiment may perform the upgrade dynamically without rebooting in upgrading a particular device. If desired, one embodiment may dynamically upgrade the executable code image by installing trap code based on whether a function that needs to be upgraded is at a safe point.
One embodiment may ensure a secure upgrade in upgrading a particular device. If desired, one embodiment may manipulate the stack in the course of processing the trap code.
In one embodiment, when a specific device is booted, the execution code image may be upgraded by removing the trap code.
Since the description of the embodiments is merely illustrated for structural to functional descriptions, the scope of the claims should not be construed as limited by the embodiments described herein. That is, the embodiments may be variously modified and may have various forms, and thus, the scope of rights should be understood to include equivalents for realizing the technical spirit of the embodiments.
On the other hand, the meaning of the terms described in the specification should be understood as follows.
The terms " first ", " second ", and the like are used to distinguish one element from another and should not be limited by these terms. For example, the first component may be named a second component, and similarly, the second component may also be named a first component.
The term “and / or” should be understood to include all combinations that can be presented from one or more related items. For example, "first item, second item, and / or third item" means "at least one or more of the first item, second item, and third item", and means first, second, or third item. A combination of all items that can be presented from two or more of the first, second and third items as well as the third item.
When a component is referred to as being "connected" to another component, it should be understood that there may be other components in between, although it may be directly connected to the other component. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.
Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as "include" or "have" refer to features, numbers, steps, operations, components, parts, or parts thereof described. It is to be understood that the combination is intended to be present, but not to exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof.
Each step may occur differently from the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art, and shall be construed to have ideal or overly formal meanings unless expressly defined herein. Can't be.
1 is a diagram illustrating a dynamic upgrade system according to an embodiment, and FIG. 5 is a flowchart illustrating the operation of the upgrade system.
Referring to FIG. 1, the
The
The
The
Meanwhile, the
In FIG. 4, the executable code image may be implemented in a form similar to the Executable and Linking Format (ELF) file format, and may be upgraded by a function unit.
Execution code image 400 (hereinafter referred to as "upgrade image") includes
The
Referring back to FIG. 1, the
FIG. 2 is a diagram for describing an upgrade server of FIG. 1.
2, the
The
The
The
The
FIG. 3 is a diagram for describing the target system of FIG. 1, and FIG. 6 is a flowchart for explaining an upgrade process of the target system.
Referring to FIG. 3, the
The
The
The
The flash memory unit 340 includes an entire executable code image including some executable code images operated by the
The image
7 is a diagram for explaining a process of installing a trap code.
Although FIG. 7 assumes that the trap code corresponds to the interrupt code, the trap code may correspond to a code according to a separate function or processor as necessary.
In FIG. 7, when the current display function 710 needs to be upgraded, the image
3 and 6 again, the
The
The
If the safety
The
When the
8 is a diagram for describing a processing procedure of a trap handler.
In Fig. 8, when the original function (that is, the function in which the trap code is installed) is called (step S810), the
The
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that
Embodiments presented above may have the effect of including the following advantages. However, it is not to be understood that the scope of the present invention is limited thereto, because it does not mean that all embodiments should include all or specific embodiments should include only the following advantages.
One embodiment may perform the upgrade dynamically without rebooting in upgrading a particular device. If desired, one embodiment may dynamically upgrade the executable code image by installing trap code based on whether a function that needs to be upgraded is at a safe point.
One embodiment may ensure a secure upgrade in upgrading a particular device. If desired, one embodiment may manipulate the stack in the course of processing the trap code.
One embodiment may upgrade the executable code image by removing the trap code when a particular device is booted.
1 is a diagram illustrating a dynamic upgrade system according to an exemplary embodiment.
FIG. 2 is a diagram for describing an upgrade server of FIG. 1.
FIG. 3 is a diagram for describing the target system of FIG. 1.
4 is a diagram for describing an execution code image, according to an exemplary embodiment.
5 is a flowchart illustrating the operation of the upgrade system.
6 is a flowchart illustrating an upgrade process of a target system.
7 is a diagram for explaining a process of installing a trap code.
8 is a diagram for describing a processing procedure of a trap handler.
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20080080551A KR100996632B1 (en) | 2008-08-18 | 2008-08-18 | Apparatus and method of dynamically upgrading an execution code image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20080080551A KR100996632B1 (en) | 2008-08-18 | 2008-08-18 | Apparatus and method of dynamically upgrading an execution code image |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100021892A KR20100021892A (en) | 2010-02-26 |
KR100996632B1 true KR100996632B1 (en) | 2010-11-25 |
Family
ID=42091417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20080080551A KR100996632B1 (en) | 2008-08-18 | 2008-08-18 | Apparatus and method of dynamically upgrading an execution code image |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100996632B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782235B (en) * | 2019-09-27 | 2024-08-16 | 北京沃东天骏信息技术有限公司 | Data upgrading and inquiring method and device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000029713A (en) | 1998-03-23 | 2000-01-28 | Sun Microsyst Inc | Actualizing technology for framework for expandable applications |
US6948164B2 (en) | 1998-12-14 | 2005-09-20 | Metrowerks Corporation | Method and system for modifying executable code to add additional functionality |
-
2008
- 2008-08-18 KR KR20080080551A patent/KR100996632B1/en not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000029713A (en) | 1998-03-23 | 2000-01-28 | Sun Microsyst Inc | Actualizing technology for framework for expandable applications |
US6948164B2 (en) | 1998-12-14 | 2005-09-20 | Metrowerks Corporation | Method and system for modifying executable code to add additional functionality |
Non-Patent Citations (2)
Title |
---|
리눅스 환경에서의 함수 단위 동적 커널 업데이트 시스템의 설계와 구현(2008.06.). |
임베디드 시스템을 위한 동적 업그레이드 프레임워크에 관한 연구(2008. 6.). |
Also Published As
Publication number | Publication date |
---|---|
KR20100021892A (en) | 2010-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055496B2 (en) | Ensuring product correctness in a multilingual environment | |
CN109828772B (en) | Thermal update method, operating system, terminal device, and storage medium | |
JP4286798B2 (en) | Method for installing driver file on hard drive, computer and computer-readable storage medium | |
US7389505B2 (en) | Method and apparatus for modifying software | |
US8132187B2 (en) | Driver installer usable in plural environments | |
US20170078369A1 (en) | Event-responsive download of portions of streamed applications | |
US11496304B2 (en) | Information processing device, information processing method, and storage medium | |
CN113568680B (en) | Dynamic link library protection method, device, equipment and medium for application program | |
EP2805233B1 (en) | Installation engine and package format for parallelizable, reliable installations | |
CN109857432B (en) | Hot updating method and device for game application | |
CN112189187A (en) | Extensibility of unified platform | |
WO2020006911A1 (en) | Hybrid app interface calling method and device, and computer-readable storage medium | |
US10628188B2 (en) | Disabling just-in-time translation for application functions | |
WO2016095796A1 (en) | Secure operating system update method used in reliable execution environment | |
KR100996632B1 (en) | Apparatus and method of dynamically upgrading an execution code image | |
CN112416395A (en) | Hot repair updating method and device | |
US20210096838A1 (en) | Firmware update with integrated smart sequence and action engine | |
CN106295327B (en) | Executable file reinforcing method and device | |
CN108563953B (en) | Safe and extensible trusted application development method | |
CN116069366A (en) | Client application program updating method and device, storage medium and electronic equipment | |
US10664342B2 (en) | Leak protection of executables with debug information | |
CN113282363A (en) | Method and device for optimizing hybrid APP | |
CN113220314A (en) | APP resource loading and APK generation method, device, equipment and medium | |
CN107544826B (en) | Xpos module reinforcing method, medium, device and computing equipment | |
US10554629B2 (en) | Push based encryption |
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: 20131015 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20141114 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161208 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170911 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |