KR20010007066A - A method and apparatus for downloading software into an embedded system - Google Patents

A method and apparatus for downloading software into an embedded system Download PDF

Info

Publication number
KR20010007066A
KR20010007066A KR1020000025214A KR20000025214A KR20010007066A KR 20010007066 A KR20010007066 A KR 20010007066A KR 1020000025214 A KR1020000025214 A KR 1020000025214A KR 20000025214 A KR20000025214 A KR 20000025214A KR 20010007066 A KR20010007066 A KR 20010007066A
Authority
KR
South Korea
Prior art keywords
memory
initialization
download
version
embedded system
Prior art date
Application number
KR1020000025214A
Other languages
Korean (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 아리에 가펑클
Publication of KR20010007066A publication Critical patent/KR20010007066A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

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

Abstract

PURPOSE: A method for downloading new software and a boot version to the memory of an embedded system is provided by using a fail-safe procedure by discriminatingly using a write-protected area and an unprotected area. CONSTITUTION: A controller (11) performs system operation by operating software stored on a flash memory (12). A RAM (13) is a volatile memory for temporarily storing an initializing and a downloading program and in download mode, a controller (11) is made to operate the system (10). At this time, the software of the latest version copied from the flash memory (12) to the RAM (13) is used each time the system is initialized. To allow complete operation in downloading operation, all operating programs can be copied to the RAM 13.

Description

소프트웨어를 내장 시스템으로 다운로드하기 위한 방법 및 장치{A METHOD AND APPARATUS FOR DOWNLOADING SOFTWARE INTO AN EMBEDDED SYSTEM}A METHOD AND APPARATUS FOR DOWNLOADING SOFTWARE INTO AN EMBEDDED SYSTEM}

본 발명은 내장 시스템 분야에 관한 것이다. 더 자세하게, 본 발명은, 기판 상에서 고장 안전 절차를 이용하여 내장 시스템의 단일 비소멸성 메모리로 새로운 소프트웨어 버전을 다운로드함으로써, 내장 시스템의 운영(operation)을 제어하는데 쓰이는 소프트웨어 버전을 업그레이드하기 위한 효과적인 방법 및 장치에 관한 것이다.The present invention relates to the field of embedded systems. More specifically, the present invention provides an effective method for upgrading a software version used to control the operation of an embedded system by downloading a new software version to a single non-volatile memory of the embedded system using failsafe procedures on a substrate. Relates to a device.

내장 시스템은 산업계에서 그리고 사무용 및 소비자용 제품으로 널리 사용된다. 실제적으로, 내장 시스템은, 마이크로프로세서 및/또는 마이크로컨트롤러를 사용하고 다목적 계산에만 관련되지 않은 거의 어떠한 장치도 포함한다. 제어 시스템은 그 장치 내에 "내장되어 있고" 장치의 일체를 이루는 부분이다. 그러한 장치는 많은 유형의 기계 및 설비 운영을 제어, 모니터 또는 지원하기 위해 사용된다. 예를 들어, 전화기 및 다른 많은 전자 장치들이 펌웨어(firmware)에 의해 운영 제어되는데, 이 펌웨어는 전자 장치의 메모리에 저장된(또는 메모리에 "적재된(burned)") 특정 소트프웨어이며 통상 그 장치를 운영하는 컨트롤러 및/또는 처리 장치에 의해 항상 호출된다.Embedded systems are widely used in industry and in office and consumer products. In practice, embedded systems include virtually any device that uses a microprocessor and / or microcontroller and is not only involved in multipurpose calculations. The control system is “built in” the device and is an integral part of the device. Such devices are used to control, monitor or support the operation of many types of machinery and equipment. For example, telephones and many other electronic devices are operated and controlled by firmware, which is a piece of software stored in (or "burned" to) the memory of the electronic device and typically operating the device. It is always called by the controller and / or processing device.

많은 장치에서, 펌웨어는 데이터베이스에 연결되고, 동일한 또는 다른 메모리에 저장되며, 장치의 적절한 운영을 위해 필요한 정보를 포함하고 있다. 통상적으로 장치는 특정 인쇄회로판(PCB)을 포함하는데, 그 위에 컨트롤러 또는 처리 장치 및 요구되는 연결 메모리가 어셈블링된다(assembled)(통상 납땜된다). 이 인쇄회로판 구조가 대량 생산시 공간을 절약하고 비용효과적이기 때문에 널리 사용된다. 펌웨어의 원 버전(orignial version)과 데이터베이스의 내용은, 소비자에게 배달되기 전 제조자에 의해 장치의 메모리로 최초로 다운로드되고, 프로세서 또는 컨트롤러와 함께 장치의 운영 시스템 구실을 한다.In many devices, the firmware is connected to a database, stored in the same or different memory, and contains the information necessary for proper operation of the device. The device typically includes a specific printed circuit board (PCB) on which the controller or processing device and the required connection memory are assembled (usually soldered). This printed circuit board structure is widely used because it saves space in mass production and is cost effective. The original version of the firmware and the contents of the database are first downloaded into the device's memory by the manufacturer before delivery to the consumer, and serve as the operating system of the device along with the processor or controller.

많은 경우, 소비자의 요구로 인하여, 시간이 지나면서 장치의 특성의 개선이 요구되고, 장치의 성능을 개선시키기 위해 연구 및 개발 활동을 계속하는 제조자들에 의해 새로운 특성들이 제공된다. 그와 같은 개선은 때때로 장치의 펌웨어 및/또는 데이터베이스 내용을 새로운 버전으로 업그레이드함으로써 실현된다. 이러한 업그레이드는 새로운 버전을 다운로드하고, 이전의 펌웨어 및 데이터베이스 버전을 포함하는 메모리 셀에 중복기재(프로그래밍)하는 것을 요구한다. 당해 분야에서 업그레이딩은, 기술자 또는 퍼스널 컴퓨터(PC)와 같은 데이터원에 의해, 장치에 연결된 데이터 통신 링크를 통해 이루어질 수 있어서 업그레이드 하기 위해 장치를 제조자에게 되돌려 보낼 필요가 없다. 덧붙여, 판상 업그레이드(on-board upgrade)를 가능하게 하는 것, 즉 인쇄회로판으로부터 업그레이드가능한 구성요소(예:메모리 장치)를 분해할 필요가 없도록 하는 것이 절실히 요구된다.In many cases, due to consumer demand, improvements in device characteristics are required over time, and new features are provided by manufacturers who continue research and development activities to improve device performance. Such improvements are sometimes realized by upgrading the device's firmware and / or database contents to a new version. This upgrade requires downloading a new version and overwriting (programming) the memory cell containing the previous firmware and database version. Upgrading in the art can be accomplished by a technician or by a data source such as a personal computer (PC) via a data communication link connected to the device, eliminating the need to return the device to the manufacturer for upgrade. In addition, there is an urgent need for enabling on-board upgrades, i.e. eliminating the need to disassemble upgradeable components (e.g. memory devices) from printed circuit boards.

대부분의 내장 시스템은 "부트(boot)" 운영으로 알려진 초기화 프로세스를 사용하는데, 이 때 기본 소프트웨어 또는 특정 지시가 시스템이 정상 운영 모드로 될 때까지 메모리의 부트 섹터(섹터는 저장 공간의 단위를 나타낸다)로부터 적재된다. 부팅 성능은, 다운로드 프로세스가 작동하지 않거나(failed) 다운로드된 펌웨어 버전이 어떤 이유에서 훼손되었을 때에도, 또다른 다운로드 및 프로그래밍 프로세스를 가능하게 하기 위해 계속 유지되어야 한다. 따라서, 부트 지시는 다운로딩 또는 프로그래밍 프로세스가 작동하지 않을 때마다 안전하게 저장 회복되어야 한다. 알려진 전형적인 해결방법은 부트 지시를 읽기전용메모리(ROM)에 저장하는 것인데, ROM은 비소멸성(즉, 전원공급의 필요없이 저장된 데이터를 보유한다)이고 쓰기 방지된다. 그러나 ROM이 비교적 고밀도이긴 하지만 업그레이드 될 수 없고 저장된 펌웨어 버전에 중복기재를 가능하게 하려면 재프로그램가능한 추가 비소멸성 메모리와 함께 운영되어야 한다. 따라서, 이러한 해결방법은 하나 이상의 비소멸성 메모리가 요구되고 또한 값비싼 인쇄회로판 구역(area)을 소비하며 부트 섹터가 업그레이드될 수 없기 때문에 적응성이 없고 비용효과적이지 못하다. 게다가, ROM의 초기 프로그래밍은 비교적 시간이 오래 걸리고, 대개는 대량 생산시에 비용 효과적이다.Most embedded systems use an initialization process known as "boot" operation, in which the boot software (sector represents a unit of storage space) until the underlying software or specific instructions go into normal operation. ) Is loaded. Boot performance should be maintained to enable another download and programming process even if the download process fails or the downloaded firmware version is compromised for some reason. Therefore, the boot instruction must be safely saved and restored whenever the downloading or programming process is not working. A typical known solution is to store boot instructions in read-only memory (ROM), which is non-destructive (i.e. retains stored data without the need for power up) and is write protected. However, although the ROM is relatively dense, it cannot be upgraded and must be operated with additional non-volatile memory that is reprogrammable to enable redundancy in stored firmware versions. Thus, this solution is not adaptive and cost effective because one or more non-destructive memory is required and also consumes expensive printed circuit board areas and the boot sector cannot be upgraded. In addition, the initial programming of ROM is relatively time consuming and is usually cost effective in mass production.

미국 특허 제5,666,293호는 브로드캐스트 채널을 통해 새로운 버전을 다운로드함으로써 단말 장치의 운영 시스템 소프트웨어를 업그레이드하는 방법을 개시하고 있다. 업그레이드는 패킷된 데이터 파일을 순환 브로드캐스트(cyclic broadcast)하여 이루어지는데, 이 파일은 운영 시스템을 포함하고 있으며 단말 장치에 의해 검색되고(captured) 저장된다. 그러나 운영 시스템 업그레이드 루틴이, 단독으로 또는 비소멸성 램(Non-Volatile Random Access Memory:NVRAM)의 쓰기 방지된 섹터와 함께 운영되는 ROM에 저장된다. 덧붙여, 비소멸성 램에 저장된 운영 시스템을 부팅하는 것이, ROM에 저장되고 업그레이드 되지 않는 적재기 프로그램(loader program)에 의해 실행된다.U. S. Patent No. 5,666, 293 discloses a method of upgrading the operating system software of a terminal device by downloading a new version over a broadcast channel. The upgrade is accomplished by cyclic broadcast of the packetized data file, which contains the operating system and is captured and stored by the terminal device. However, operating system upgrade routines are stored in ROM, either alone or in conjunction with write-protected sectors of Non-Volatile Random Access Memory (NVRAM). In addition, booting the operating system stored in non-destructive RAM is performed by a loader program stored in ROM and not upgraded.

미국 특허 제5,647,986호는 컨트롤러에 의해 제어되는 자동 폐수 처리 장치를 개시하고 있다. 컨트롤러는 플래시 메모리와 부트 메모리의 조합으로 되어 있고, 원격 프로그래밍 성능을 갖추고 있다. 플래시 메모리는 장치의 운영 프로그램을 저장하고 있고 부트 메모리는 부트 코드를 포함하고 있는데 이 코드는 플래시 메모리의 기본 통신과 재프로그래밍을 처리하는데 요구된다. 컨트롤러는 그로부터 새로운 운영 프로그램이 다운로드되는 중앙 컴퓨터와 연결이 설정되고 플래시 메모리의 내용을 삭제하라는 명령을 받는다. 플래시 메모리의 내용이 삭제된 후, 컨트롤러는 중앙 컴퓨터에서 전송된 데이터로 플래시 메모리를 재프로그램 하기 시작한다. 프로그래밍이 완료된 후, 컨트롤러는 장치의 처리장치(processing unit)를 다시 부팅하고 장치는 업데이트된 운영 프로그램에 따라 작동하기 시작한다. 그러나, 이 장치는 다운로드 및/또는 프로그래밍 프로세스 동안 작동이 멈추는 경우 백업(backup) 또는 재부트 성능이 없으며 별도의 업그레이드되지 않는 부트 메모리를 필요로 한다.U. S. Patent No. 5,647, 986 discloses an automatic wastewater treatment apparatus controlled by a controller. The controller is a combination of flash and boot memory and features remote programming capabilities. Flash memory stores the operating program of the device, and boot memory contains boot code, which is required to handle basic communication and reprogramming of flash memory. The controller establishes a connection with the central computer from which new operating programs are downloaded and is instructed to delete the contents of the flash memory. After the contents of the flash memory have been deleted, the controller starts to reprogram the flash memory with the data transferred from the central computer. After programming is complete, the controller reboots the device's processing unit and the device begins to operate according to the updated operating program. However, the device has no backup or reboot capability if it goes down during the download and / or programming process and requires a separate non-upgraded boot memory.

당해 기술분야의 종래 기술은, 고장 안전 절차를 이용하여, 다운로드 제어 프로그램의 업그레이드도 허락하는 내장 시스템의 단일 비소멸성 메모리로 새로운 소프트웨어 및 부트 버전을 판상 다운로드하는 문제에 대해 만족스러운 해결을 제시해주지 못하고 있다.Prior art in the art does not provide a satisfactory solution to the problem of plate downloading new software and boot versions into a single non-volatile memory of the embedded system, which also allows for the upgrade of the download control program, using failsafe procedures. have.

본 발명의 목적은 고장 안전 절차를 이용하여 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.It is an object of the present invention to provide a method and apparatus for downloading new software and boot versions into the memory of an embedded system using failsafe procedures.

본 발명의 다른 목적은, 기판상에서(on board) 그리고 필드에서(in the field) 실시되는, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.It is another object of the present invention to provide a method and apparatus for downloading new software and boot versions into the memory of an embedded system, carried out on board and in the field.

본 발명의 또 다른 목적은 단일 비소멸성 메모리 구성요소를 사용하는, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 메모리로 다운로드하기 위한 방법 및 장치를 제공하는 것이다.It is yet another object of the present invention to provide a method and apparatus for downloading new software and boot versions into the memory of an embedded system, using a single non-volatile memory component.

본 발명의 다른 목적 및 장점은 하기 상세한 설명에서 명백해질 것이다.Other objects and advantages of the invention will be apparent from the following detailed description.

본 발명은 내장 시스템의 운영 소프트웨어 및/또는 초기화 프로그램 버전을 업그레이드하기 위한 방법에 관한 것이다. 플래시 메모리와 같은, 단일 비소멸성 메모리 요소는 쓰기 방지 구역(write-protected area)과 비보호 구역(unprotected area)으로 나누어진다. 비보호 구역은 다운로드된 소프트웨어 버전을 저장하기 위해 쓰인다. 플래시 메모리의 하드웨어 쓰기 방지 구역(hardware write protected area)은 초기화 및 다운로드 프로그램의 원 버전을 저장하기 위해 쓰이며, 필드에서 사용되지 않는 비교적 높은 전압에서만 프로그램될 수 있다. 원래의 보호된 초기화 및 다운로드 프로그램은 백업 프로그램으로 기능하고, 현재의 다운로드 프로세스가 작동을 멈출 때마다 새로운 다운로드 프로그램을 실행시키기 위해 사용된다. 쓰기 방지된 구역은 ROM과 같은 비소멸성 메모리가 추가로 필요하지 않게 한다.The present invention relates to a method for upgrading the operating software and / or initialization program versions of an embedded system. A single non-volatile memory element, such as flash memory, is divided into a write-protected area and an unprotected area. Unprotected zones are used to store downloaded software versions. The hardware write protected area of the flash memory is used to store the original version of the initialization and download program and can only be programmed at relatively high voltages not used in the field. The original protected initialization and download program functions as a backup program and is used to run a new download program whenever the current download process stops working. Write-protected zones eliminate the need for additional non-volatile memory, such as ROM.

바람직하게, 플래시 메모리에 저장된 초기화 및 다운로드 프로그램의 마지막 유효 버전(valid version)이 램과 같은 소멸성 메모리로 복사되고(copied), 내장 시스템이 램으로부터 작동된다. 이는 내장 시스템이 정상 운영되는 동안 새로운 초기화 프로그램 및 운영 소프트웨어 버전의 다운로드 프로세스를 가능하게 한다. 바람직하게, 초기화 프로세스 시기에, 초기화 및 다운로드 프로그램이 램에 복사되고 내장 시스템은, 필요한 경우, 초기화 및 다운로드 기능을 수행하기 위해 램으로부터 작동된다. 선택적으로, 시스템 기능의 전부 또는 부분이, 업그레이드 프로세스 동안 추가 기능을 허락하도록 램으로부터 복사되고(duplicated) 작동될 수 있다.Preferably, the last valid version of the initialization and download program stored in flash memory is copied to a destructive memory, such as RAM, and the embedded system is operated from RAM. This enables the download process of new initialization programs and operating software versions during the normal operation of the embedded system. Preferably, at the time of the initialization process, the initialization and download programs are copied to RAM and the embedded system is operated from RAM to perform initialization and download functions, if necessary. Optionally, all or part of the system functionality can be duplicated and operated from RAM to allow additional functionality during the upgrade process.

다운로드는 내장 시스템 내 데이터 수신 입력기(data receiving input)를 통해서 수행된다. 다운로드된 데이터는 검증되고, 유효하다고 판단되면, 플래시 메모리의 비보호 구역 내로 프로그램된다. 선택적으로, 업그레이드하기 위해, 플래시 메모리가 먼저 삭제될 수 있고, 데이터는 플래시 메모리의 비보호 구역 내로 직접 저장된다. 다운로드 프로세스가 회복할 수 없는 에러로 인하여 중단되면, 플래시 메모리의 쓰기 방지된 구역으로부터 최초의 초기화 프로세스를 활성화시킨후, 또는 플래시 메모리의 비보호 구역의 업데이트된 초기화 과정을 활성화시킨 후에 완료될 수 있다. 다운로드 및 프로그래밍 프로세스가 처음부터 다시 시작되고, 또는 선택적으로 데이터 에러가 검출된 지점부터 계속된다. 프로그래밍 후, 시스템이 다시 부팅되고, 플래시 메모리의 비보호 구역에 저장된 업데이트된 초기화 프로세스가 활성화되고, 램으로 복사되고 내장 시스템이 새로운 운영 소프트웨어 버전에 의해 운영된다. 선택적으로, 운영 소프트웨어의 전부 또는 부분이 램으로 복사되고, 계속적으로 실행될 수 있다.Downloading is performed via a data receiving input in the embedded system. The downloaded data is verified and, if determined to be valid, is programmed into the unprotected area of the flash memory. Optionally, to upgrade, the flash memory can be erased first, and the data is stored directly into the unprotected area of the flash memory. If the download process is interrupted due to an unrecoverable error, it can be completed after activating the initial initialization process from the write protected area of the flash memory or after activating the updated initialization process of the unprotected area of the flash memory. The download and programming process starts over from the beginning, or optionally continues from the point where a data error is detected. After programming, the system is rebooted, the updated initialization process stored in the unprotected area of flash memory is activated, copied to RAM and the embedded system is operated by the new operating software version. Optionally, all or part of the operating software can be copied to RAM and run continuously.

바람직하게, 새로운 버전의 다운로드는, 내장 시스템의 데이터 수신 입력기(data receiving input)에 연결된 PC와 같은 데이터 소스에 의해 수행되거나, 또는 데이터 링크를 통하여 원격 소스로부터 데이터 그룹을 내장 시스템의 데이터 수신 입력기로 송신함으로써 원격 데이터 소스로부터 수행된다.Preferably, the download of the new version is performed by a data source such as a PC connected to the data receiving input of the embedded system or via a data link a group of data from a remote source to the data receiving input of the embedded system. By transmitting from a remote data source.

본 발명은 또한, 필드에서 그리고 판상에서, 정규 운영에 영향을 주지 않고 운영 소프트웨어 및/또는 초기화 프로그램 버전의 업그레이드 성능을 갖는 내장 시스템에 관한 것이다. 내장 시스템은 다음으로 구성된다.The invention also relates to an embedded system, in the field and on the board, that has the capability of upgrading operating software and / or initializer versions without affecting regular operation. The embedded system consists of:

- 내장 시스템의 원래의 초기화 및 다운로드 프로그램을 저장하기 위한 쓰기 방지된 구역과 초기화 및 다운로드 프로그램의 최종적으로 업데이트된 버전을 저장하기 위한 비보호 구역을 포함하는 단일 비소멸성 메모리 요소 ;A single non-volatile memory element comprising a write protected area for storing the original initialization and download program of the embedded system and an unprotected area for storing the finally updated version of the initialization and download program;

- 내장 시스템의 초기화 프로그램 및/또는 운영 소프트웨어 버전을 저장하기 위한 소멸성 메모리, 이는 새로운 버전의 동시 운영 및 재프로그래밍을 가능하게 한다 ;-A destructive memory for storing the initialization program and / or operating software version of the embedded system, which enables simultaneous operation and reprogramming of new versions;

- 내장 시스템의 초기화 프로세스 및 운영을 제어하고, 비소멸성 메모리의 내용을 소멸성 메모리에 복사하고, 상기 운영 소프트웨어 및/또는 상기 초기화 프로그램의 새로운 버전을 다운로드, 검증 및 프로그램하기 위한 제어 회로 ; 및Control circuitry for controlling the initialization process and operation of the embedded system, copying the contents of the non-volatile memory to the volatile memory, and downloading, verifying and programming a new version of the operating software and / or the initialization program; And

- 소프트웨어 및/또는 상기 초기화 프로그램 버전을 다운로드하기 위한 데이터 수신 입력기.A data receiving input for downloading software and / or said initiator version.

도 1은 본 발명의 바람직한 실시예에 따른, 단일 비소멸성 메모리를 갖는, 소프트웨어의 업그레이드가 가능한 내장 시스템의 블록도 ;1 is a block diagram of a software upgradeable embedded system having a single non-volatile memory, in accordance with a preferred embodiment of the present invention;

도 2는 본 발명의 바람직한 실시예에 따른, 도 1의 내장 시스템의 메모리 배열의 개략도 ;2 is a schematic diagram of a memory arrangement of the embedded system of FIG. 1, in accordance with a preferred embodiment of the present invention;

도 3은 본 발명의 바람직한 실시예에 따른, 비소멸성 메모리 시스템의 상태 단어의 순서도 ; 및3 is a flow chart of status words of a non-destructive memory system, in accordance with a preferred embodiment of the present invention; And

도 4는 본 발명의 바람직한 실시예에 따른, 내장 시스템 운영의 순서도.4 is a flow chart of an embedded system operation, in accordance with a preferred embodiment of the present invention.

본 발명의 상기 및 다른 특징과 장점은 첨부 도면을 참조한 하기 본 발명의 바람직한 실시예의 예시적이고 비제한적인 상세한 설명을 통해 더 잘 이해될 것이다.The above and other features and advantages of the present invention will be better understood from the following illustrative, non-limiting detailed description of the preferred embodiments of the present invention with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시예에 따른, 단일 비소멸성 메모리 요소를 갖는, 소프트웨어의 업그레이드가 가능한 내장 시스템의 블록도이다. 내장 시스템(10)은 컨트롤러(11)에 의해 제어되고, 이 컨트롤러는 플래시 메모리(12)와 램(Random Access Memory : RAM)(13)에 연결되며 플래시 메모리(12)에 저장된 운영 소프트웨어에 따라 시스템 기능을 작동시킨다. 플래시 메모리(12)는 운영 소트프웨어 및/또는 기타 요구되는 지시를 저장하기 위해 필요한 유일한 비소멸성 메모리이다. 램(13)은 초기화 및 다운로드 프로그램의 임시 저장을 위해 사용되는 소멸성 메모리로, 시스템이 초기화될 때마다, 플래시 메모리(12)로부터 램(13)으로 복사되는 가장 최근의 소프트웨어 버전을 이용하여, 다운로드 모드시 컨트롤러(11)가 시스템(10)을 작동시킬 수 있게 한다. 또 하나의 실시예에서, 운영 프로그램의 일부 또는 모두가 다운로드 프로세스 동안 추가 기능을 허락하도록 램(13)에 복사될 수도 있다. 예를 들어, 스마트 전화기(smart telephone)에서, 다이얼링(dialing), 걸려온 전화에 대한 전화기의 신호음 유형 및 기타 기본 기능을 허락하는 전화기 운영 제어 프로그램의 일부가 램(13)에 복사될 수 있어, 다운로드 동안 이 기능이 가능하게 된다. 또한 전체 운영 프로그램을 램(13)에 복사할 수 있어 다운로드 동안 완전 운영을 허락하는데, 이 경우 모든 소프트웨어는 램에서 실행된다. 플래시 메모리의 주 장점은 그 내용이 "시스템 내에서", 즉 분해할 필요없이, 쉽게 변경될 수 있는 비소멸성 고밀도 장치라는 것이다.1 is a block diagram of a software upgradeable embedded system having a single non-volatile memory element, in accordance with a preferred embodiment of the present invention. The embedded system 10 is controlled by the controller 11, which is connected to the flash memory 12 and random access memory (RAM) 13 and according to the operating software stored in the flash memory 12 Activate the function. Flash memory 12 is the only non-volatile memory required to store operating software and / or other required instructions. RAM 13 is a destructive memory used for temporary storage of initialization and download programs, using the latest software version copied from flash memory 12 to RAM 13 each time the system is initialized. Allows controller 11 to operate system 10 in mode. In another embodiment, some or all of the operating program may be copied to RAM 13 to allow additional functionality during the download process. For example, in a smart telephone, a portion of the telephone operating control program that allows dialing, the dial tone type of the telephone for incoming calls, and other basic functions may be copied to the RAM 13 so that it can be downloaded. While this function is enabled. It is also possible to copy the entire operating program to RAM 13 to allow full operation during download, in which case all software is run in RAM. The main advantage of flash memory is that its contents are non-destructive, high density devices that can be easily changed "within the system," without having to disassemble.

시스템(10)은 통신 링크(14)를 통해 데이터원에 연결되고, 이 통신링크를 통해 새로운 프로그램 버전이 플래시 메모리(12) 및/또는 램(13)에 다운로드될 수 있다. 컨트롤러(11)는 데이터 흐름을 제어한다. 따라서, 새로운 소프트웨어 및 펌웨어 버전을 시스템(10)에 다운로드하고 프로그래밍하는 것은 링크(14)를 통하여 이루어지고, 전형적으로는 프로그래밍 장치(예:컴퓨터)를 링크(14)에 연결함으로써 이루어진다. 그래서 업그레이드가 필드에서 이루어지고, 씨디-롬(CD-ROMs) 또는 인터넷 상에 분산될 수 있다(distributed). 예를 들어, 시스템(10)이 스마트 전화기일 수 있고, 이는 직렬 연결(serial connection)(예:RS-232)을 통해, 데이터 통신 링크(14)의 역할을 하는 부착된 PC 로부터 새로운 소프트웨어 버전을 다운로드함으로써 프로그램될 수 있다. 시스템(10)이 정상 운영되는 동안, 시스템(10)이 작동될 때마다(turned on), 플래시 메모리(12)에 저장되고 램(13)에 복사된 지시에 따라 부트 프로세스가 시작된다. 부트 프로세스 이후, 시스템(10)이 정상 운영 모드로 되고, 컨트롤러(11)가 램(13) 및/또는 플래시 메모리(12)에 저장된 프로그램에 따라서 시스템 기능을 제어한다. 통상적으로, 원(최초의) 소프트웨어 버전은 제조자에 의해 플래시 메모리(12)에 프로그램되며, 시스템(10)의 기능을 향상시키고 또는 사용자에게 새로운 특성을 제공하는 새로운(그리고 개선된) 버전을 필드에서 업데이트함으로써 때때로 업데이트된다. 그러나, 몇가지 이유에서, 때때로 다운로드 프로세스가 중단되거나, 또는 새로운 소프트웨어 버전의 일부가 훼손된다(예를 들어, 통신 링크(14)를 통한 데이터 전송시 일어나는 회복불가능한 에러로 인하여). 다운로드 및 프로그래밍은 메모리에서 이전 소프트웨어 버전의 데이터 삭제를 수반하므로, 플래시 메모리가 훼손된 또는 불완전한 소프트웨어 버전만을 포함하는 상황은 없어야 한다. 따라서, 새로운 부트 프로세스 및 이어지는 다운로드 및 프로그래밍 운영을 가능하게 하도록, 부트 절차를 계속 보호하고 재사용을 위해 가용성을 유지시키는 것이 매우 중요하다. 또 다른 바람직한 실시예에서, 시스템(10)을 현재의 소프트웨어 버전에 따른 기능의 어떤 레벨에서 작동시키고, 동시에 시스템(10)에 새로운 소프트웨어 버전을 프로그래밍하는 메모리 배열(memory arrangement)을 제공하는 것이 바람직하다(즉, 시스템(10)의 운영이 새로운 소프트웨어 버전을 프로그래밍 하는 동안 완전히 중단되지는 않는다). 램(13)은 운영(operationa)을 위해 필요한 현재의 소프트웨어 버전의 부분 또는 전체를 저장하기 위해 사용되고, 플래시 메모리(12)는 프로그래밍된다. 최소한도로, 램(13)은 다운로드 프로그램을 저장하고 운영하는데 사용된다. 덧붙여, 부트 및 다운로드 절차를 업그레이드되도록 하는 것이 바람직하다. 현재의 플래시 메모리 기술은 플래시 메모리 요소가 어떠한 섹터에서 프로그램되는 동안 동시에 액세스 되도록(accessed) 하지 못한다.System 10 is connected to a data source via communication link 14 through which a new program version can be downloaded to flash memory 12 and / or RAM 13. The controller 11 controls the data flow. Thus, downloading and programming new software and firmware versions to system 10 is accomplished via link 14, typically by connecting a programming device (eg, a computer) to link 14. So the upgrade is made in the field and can be distributed on CD-ROMs or the Internet. For example, the system 10 may be a smart phone, which, via a serial connection (eg RS-232), obtains a new software version from an attached PC that acts as a data communication link 14. It can be programmed by downloading. While system 10 is operating normally, each time system 10 is turned on, a boot process is initiated according to instructions stored in flash memory 12 and copied to RAM 13. After the boot process, the system 10 enters a normal operating mode, and the controller 11 controls system functions in accordance with a program stored in the RAM 13 and / or the flash memory 12. Typically, the original (first) software version is programmed into the flash memory 12 by the manufacturer, and in the field a new (and improved) version that enhances the functionality of the system 10 or provides new features to the user. It is sometimes updated by updating. However, for some reason, sometimes the download process is interrupted, or part of the new software version is corrupted (eg due to an unrecoverable error that occurs during data transfer over communication link 14). Since downloading and programming involves the deletion of data from previous software versions in memory, there should be no situation where the flash memory contains only corrupted or incomplete software versions. Therefore, it is very important to continue to protect the boot procedure and maintain availability for reuse to enable new boot processes and subsequent download and programming operations. In another preferred embodiment, it is desirable to provide a memory arrangement for operating the system 10 at some level of functionality according to the current software version, and at the same time programming the new software version on the system 10. (Ie the operation of system 10 is not completely interrupted while programming a new software version). RAM 13 is used to store part or all of the current software version required for operationa, and flash memory 12 is programmed. At a minimum, RAM 13 is used to store and operate the download program. In addition, it is desirable to have the boot and download procedures upgraded. Current flash memory technology does not allow flash memory elements to be accessed simultaneously while being programmed in any sector.

도 2는 본 발명의 바람직한 실시예에 따라, 도 1의 내장 시스템의 메모리 배열을 개략적으로 도시하고 있다. 플래시 메모리(12)의 저장 공간은 세그먼트(segments)로도 알려진 다수의 섹터(최소 세개의 섹터)로 나누어진다. 두 개의 섹터는 부트 프로그램을 저장하는데 사용되고, 나머지 섹터는 운영 소프트웨어의 현재 버전을 저장하기 위해 사용되는데, 이 현재 버전은 다운로드 운영에 의해 업그레이드될 수 있다. 플래시 메모리의 하나의 부트 섹터(20)는 제조자에 의해 프로그램된 대로의 원 부트 프로그램을 포함하고, 하드웨어 보호된다(hardware protected). 하드웨어 보호(hardware protection)는, 예를 들어, 쓰기 기능을 가능하게 하기 위해 필드에서 이용할 수 없는 비교적 높은 전압을 요구함으로써 달성될 수 있다. 그 결과, 시스템(10)은 필드에서 업그레이드될 수 없는 보호된 부트 섹터를 갖는다. 쓰기 방지되지 않는 다른 부트 섹터(21)는 원 부트 프로그램으로 최초로 프로그램되며 새로운 버전으로 업그레이드될 수 있다. 섹터의 끝에 부가된(appended) 플래그(flag)는 플래시 메모리(12)의 접근가능한 섹터 21과 22 각각의 상태 플래그로 사용된다. 도 3을 참조하면, 상태 플래그의 상태 도표이다.플래그는 공장에서 "유효" 상태(valid state)로 프로그램된다. 업데이트 프로세스의 제1단계는 이 플래그를 "삭제 프로세스"로 리세팅(resetting)하는 것을 수반한다. 이렇게 세팅되고 나면, 업데이트 프로세스가 시작될 수 있고, 이는 현재의 프로그램을 삭제하는 것을 수반한다. 삭제 절차가 완료된 후, 플래그는 "삭제된" 상태로 리셋된다. 섹터가 프로그램되고 검증된 후, 플래그는 다시 "유효" 상태로 재저장된다.2 schematically illustrates a memory arrangement of the embedded system of FIG. 1, in accordance with a preferred embodiment of the present invention. The storage space of the flash memory 12 is divided into a number of sectors (at least three sectors), also known as segments. Two sectors are used to store the boot program and the remaining sectors are used to store the current version of the operating software, which can be upgraded by the download operation. One boot sector 20 of the flash memory contains the original boot program as programmed by the manufacturer and is hardware protected. Hardware protection can be achieved, for example, by requiring a relatively high voltage that is not available in the field to enable the write function. As a result, system 10 has a protected boot sector that cannot be upgraded in the field. The other boot sector 21 that is not write protected is first programmed with the one boot program and can be upgraded to a new version. An appended flag at the end of the sector is used as the status flag for each of the accessible sectors 21 and 22 of the flash memory 12. Referring to Fig. 3, there is a state diagram of the state flag. The flag is programmed to a "valid state" at the factory. The first step of the update process involves resetting this flag to the "deletion process". Once set, the update process can be started, which involves deleting the current program. After the deletion procedure is completed, the flag is reset to the "deleted" state. After the sector has been programmed and verified, the flag is restored back to the "valid" state.

다운로드 프로세스 동안, (새로운 소프트웨어/부트 버전의) 원격 데이터원에 의하여, 링크(14)를 통해 시스템(10)에 전송된 데이터의 각 블록에 순환 중복 코드(CRC : Cyclic Redundancy Code)가 부가된다. 컨트롤러(11)가 동일한 CRC 계산을 수신된 데이터에 적용하고 전송 전에 데이터 블록에 부가되었던 결과와 비교한다. 결과가 일치하면, 데이터 블록이 성공적으로, 즉 데이터 에러 없이 수신되었고 정확한 사본(copy)임을 나타내는 것이다. 결과가 일치하지 않으면, 데이터 블록을 다시 보내라는 요청이 통신 링크(14)를 통해 전송되고, 이후 블록이 원격 데이터원에 의해 다시 보내진다. 이러한 절차는 이 기술분야의 숙련자에게 잘 알려져 있다. 논리 섹터(logical sector)가 제대로 수신되었으면, 유효한 CRC 코드에 의해 나타나듯이, 섹터는 실행중인 업그레이드 프로그램에 의해 프로그램된다. 이후 데이터는 저장된 섹터에서 판독되고 다시 확인되며, 이어 섹터 끝의 상태 플래그가 "유효" 로 셋팅된다.During the download process, a cyclic redundancy code (CRC) is added to each block of data transmitted via link 14 to system 10 by a remote data source (of a new software / boot version). The controller 11 applies the same CRC calculation to the received data and compares it with the result that was added to the data block before transmission. If the results match, it indicates that the data block was received successfully, ie without data errors, and is an exact copy. If the results do not match, a request to resend the data block is sent over the communication link 14, after which the block is sent again by the remote data source. Such procedures are well known to those skilled in the art. If the logical sector has been properly received, the sector is programmed by the running upgrade program, as indicated by the valid CRC code. The data is then read from the stored sector and reconfirmed, with the status flag at the end of the sector set to "valid".

본 발명의 바람직한 실시예에 따르면, 플래시 메모리(12)의 (쓰기 방지된 그리고 접근가능한 섹터의) 이러한 이중 부트 섹터 배열은, 다운로드 프로세스가 중단될 때마다, 쓰기 방지된 부트 섹터(20)에 저장된 원 부트 프로그램을 이용하여, 또는 상태 플래그에 의해 나타난 바와 같이, 정확한 사본이 존재하면 접근가능한 부트 섹터(21)의 내용을 이용하여 업데이트된 부트 프로그램을 이용함으로써 재부팅 작동을 가능하게 한다. 플래그가 유효하면, 업데이트된 부트 프로그램은 램(13)의 메모리 세그먼트(23)(부트 세그먼트)에 복사되며, 플래시 메모리(12)의 다운로드 및 프로그래밍 후와 같이 시스템이 다시 시작될 때마다 시스템(10)을 부팅하는데 사용된다. 부트 섹터(21)의 플래그가 유효하지 않았다면, 부트 프로그램의 원래의, 하드웨어 보호된 버전이 메모리 세그먼트(23)에 복사된다. 램(13)은 추가 세그먼트(24)를 포함하고, 필요한 경우, 여기에 다운로드된 데이터 블록이 임시저장을 위해 복사될 수 있다. 시스템(10)은 램(13)에 저장된 (복사된) 부트 프로그램과 플래시 메모리(12)에 저장된 소프트웨어를 이용하여 컨트롤러(11)에 의해 운영 제어된다. 따라서, 시스템이 작동을 시작할 때마다, 두 개의 부트 섹터 중 하나(20 또는 21)가 램(13)의 세그먼트(23)에 복사된다. 그러므로 프로그램이, 어떤 코드 버전이 사용되었는지에 관계없이, 항상 동일한 어드레스 공간으로부터 작동된다.According to a preferred embodiment of the invention, this dual boot sector arrangement (of write-protected and accessible sectors) of flash memory 12 is stored in write-protected boot sector 20 whenever the download process is interrupted. Using the original boot program, or as indicated by the status flag, the reboot operation is enabled by using an updated boot program with the contents of the accessible boot sector 21 if an exact copy is present. If the flag is valid, the updated boot program is copied to the memory segment 23 (boot segment) of the RAM 13, and every time the system is restarted, such as after the download and programming of the flash memory 12, the system 10 Used to boot. If the flag of the boot sector 21 is not valid, the original, hardware protected version of the boot program is copied to the memory segment 23. RAM 13 includes an additional segment 24 and, if necessary, the data block downloaded to it can be copied for temporary storage. The system 10 is operated and controlled by the controller 11 using the (copyed) boot program stored in the RAM 13 and the software stored in the flash memory 12. Thus, each time the system starts to operate, one of the two boot sectors 20 or 21 is copied to the segment 23 of the RAM 13. Therefore, the program always runs from the same address space, regardless of which code version is used.

도 4는 본 발명의 바람직한 실시예에 따른, 내장 시스템 운영의 순서도이다. 프로그램은 플래시 메모리의 섹터(20)로부터 시작한다. 제1단계(401)에서, 섹터(21)에 저장된 소프트웨어의 유효성(validity)이, 동일 섹터 끝에 저장된 상태 플래그를 체크함으로써 체크된다. 유효하다고 알려지면, 다음 단계(402)에서, 섹터(21)의 내용이 램(13)의 세그먼트(23)에 복사된다. 유효하지 않은 것으로 알려지면, 다음 단계(403)에서, 세그먼트(20)의 내용이 램(13)의 섹터(23)에 복사된다. 다음 단계(404)에서, 컨트롤러(11)의 운영 어드레스가 섹터(23)에(섹터로부터 작동되도록) 전송된다. 섹터(23)에 복사된 프로그램은 최소한 컨트롤러(11)가 다운링크(14)를 작동시키고 플래시 메모리(12)를 업데이트하도록 한다.4 is a flow chart of an embedded system operation, in accordance with a preferred embodiment of the present invention. The program starts from sector 20 of flash memory. In the first step 401, the validity of the software stored in the sector 21 is checked by checking the status flag stored at the end of the same sector. If known to be valid, in the next step 402, the contents of the sector 21 are copied to the segment 23 of the RAM 13. If not known, in the next step 403, the contents of the segment 20 are copied to the sector 23 of the RAM 13. In a next step 404, the operational address of the controller 11 is sent to the sector 23 (to be operated from the sector). The program copied to sector 23 causes at least controller 11 to operate downlink 14 and update flash memory 12.

본 발명의 또다른 바람직한 실시예에 따르면, 플래시 메모리(12)의 하나 이상의 섹터(22)가 또한 램(13)에 복사된다. 이 경우, 컨트롤러(11)는 플래시 메모리(12)로부터 보다는 램(13)으로부터 프로그램의 해당 부분을 작동시킨다. 이로 인해 다운로드 동안 추가 기능이 가능하게 되는데, 이는 프로그램이 업데이트되면서 동일한 어드레스로부터 실행될 수 없기 때문이다. 현재 실제로, 업데이트되는 동안, 소프트웨어는 플래시 메모리(12)로부터 결코 실행될 수 없으며, 따라서 램(13)에 복사된 소프트웨어만이 기능할 수 있다.According to another preferred embodiment of the invention, one or more sectors 22 of flash memory 12 are also copied to RAM 13. In this case, the controller 11 operates the corresponding portion of the program from the RAM 13 rather than from the flash memory 12. This enables additional functionality during the download because the program can not be run from the same address as it is updated. Currently in practice, during the update, the software can never be executed from the flash memory 12, so only the software copied to the RAM 13 can function.

램(13)의 부트 섹터(23)와 함께 플래시 메모리(12)의 섹터(22)는 소프트웨어 버전을 생성시키기 위해 사용된다. 원 소프트웨어 버전은 제조자에 의해 플래시 메모리의 섹터(22)에 프로그램된다. 운영시, 부트 프로그램의 최종 버전(최초 운영시 원래의 부트 프로그램)이 유효하다고 알려지면, 보호되지 않는 부트 섹터(21)에서 부트 세그먼트(23)로 복사되고, 최종 소프트웨어 버전(최초 운영시의 원래의 소프트웨어 버전)은 컨트롤러(11)가 램(13)과 플래시 메모리(12)로부터 시스템(10)을 작동시키도록 하기 위해 섹터(22)로부터 사용된다.Along with the boot sector 23 of the RAM 13, the sector 22 of the flash memory 12 is used to generate a software version. The original software version is programmed in the sector 22 of the flash memory by the manufacturer. In operation, if the final version of the boot program (the original boot program at the first run) is known to be valid, it is copied from the unprotected boot sector 21 to the boot segment 23, and the final software version (the original at run time). Software version) is used from sector 22 to cause controller 11 to operate system 10 from RAM 13 and flash memory 12.

부트 프로그램은 또한 새로운 부트 데이터 블록을 전송하고 보호되지 않는 부트 섹터(21)를 수신된 부트 데이터 블록으로 프로그래밍함으로써 업데이트될 수 있다. 보호된 부트 섹터(20)는 예비(backup)로 원래의 부트 프로그램을 포함한다. 시스템(10)이 초기화되면, 컨트롤러(11)가 부트 섹터(21)에 저장된 최종 부트 프로그램의 유효성을 먼저 체크함으로써 초기화에 사용된 부트 프로그램을 선택한다. 수신된(새로운) 부트 데이터 블록의 상태 코드가 유효하다고 알려지면, 최종 부트 프로그램이 섹터(21)에서 램(13)의 부트 세그먼트(23)로 복사되고, 초기화 프로세스가 램(13)에서 최종(업데이트된) 부트 프로그램 버전에 따라서 계속된다. 섹터(21)의 상태 코드가 수신된(새로운) 부트 데이터 블록이 유효하지 않다고 나타내면, 원래의 부트 프로그램이 섹터(20)에서 램(13)의 부트 세그먼트(23)로 복사되고, 초기화 프로세스가 램(13)에서 원래의 부트 프로그램 버전에 따라서 계속되고, 새로운 다운로드 및 프로그래밍 프로세스가 가능하게 된다. 따라서, 플래시 메모리(12)의 이중 부트 섹터를 이용함으로써, 다운로드 및 프로그래밍 프로세스가 고장 안전(fail-safe) 하다. 본 발명의 바람직한 실시예에 따르면, 섹터(21)의 상태 코드가 수신된(새로운) 부트 데이터 블록이 유효하지 않다고 나타내면, 원래의 부트 프로그램을 섹터(20)에서 램(13)의 부트 섹터(23)로 복사하는 것에 더하여, 섹터(22)에서의 추가 논리 세그먼트가 추가 기능을 가능하게 하기 위해 램(24)으로 복사된다. 각 섹터는 상태 단어가 유효하다고 나타내면 단지 적재된다(loaded). 운영 프로그램은 각각의 논리 세그먼트로부터 독립적인 기능이 가능하도록 설계되어야 하므로, 몇몇 추가적인 유효 세그먼트가 유효하지 않은 다른 세그먼트가 없을 때 작동할 수 있을 것이다.The boot program can also be updated by sending a new boot data block and programming the unprotected boot sector 21 into the received boot data block. The protected boot sector 20 includes the original boot program as a backup. When the system 10 is initialized, the controller 11 selects the boot program used for initialization by first checking the validity of the last boot program stored in the boot sector 21. If the status code of the received (new) boot data block is known to be valid, the final boot program is copied from sector 21 to boot segment 23 of RAM 13, and the initialization process is finalized in RAM 13 ( Depending on the version of the boot program (which has been updated). If the status code of sector 21 indicates that the received (new) boot data block is invalid, the original boot program is copied from sector 20 to boot segment 23 of RAM 13, and the initialization process is In accordance with the original boot program version at 13, a new download and programming process is possible. Thus, by using the dual boot sector of flash memory 12, the download and programming process is fail-safe. According to a preferred embodiment of the present invention, if the status code of sector 21 indicates that the received (new) boot data block is not valid, then the original boot program is transferred from sector 20 to boot sector 23 of RAM 13. In addition to copying), additional logical segments in sector 22 are copied to RAM 24 to enable additional functionality. Each sector is only loaded if it indicates that the status word is valid. The operating program must be designed to enable functionality independent of each logical segment, so that some additional valid segments will work when no other segment is invalid.

본 발명의 바람직한 실시예에 따르면, 위에서 설명한, 원격 소스로부터 업데이트된 데이터 블록을 통신 링크를 통하여 전송함으로써 수행되는 다운로드 및 프로그래밍 운영은 또한, 필드에서 그리고 판상에서, PC와 같은 데이터원을 시스템(10)의 적합한 입력기 또는 데이터 링크 입력기(예 : 직렬 RS-232 포트)에 연결하는 기술자 또는 사용자에 의하여 유사하게 수행될 수 있다.According to a preferred embodiment of the present invention, the download and programming operations performed by transmitting the updated data block from the remote source, via the communication link, described above, also provide a data source, such as a PC, in the field and on the board. Can be similarly performed by a technician or user connecting to a suitable input or data link input (e.g., a serial RS-232 port).

상기 실시예 및 설명은 예시의 목적으로만 주어진 것이며 어떠한 방법으로도 본 발명을 제한하는 것은 아니다. 당해 기술분야의 숙련자들은 이해하듯이, 본 발명은 매우 다양한 방법으로 실시될 수 있고, 이는 내장 시스템의 운영을 제어하기 위해 마이크로-컨트롤러 또는 마이크로프로세서를 이용하고, 업그레이드된 소프트웨어 버전을 다운로드하기 위하여 무선 데이터 통신 링크를 사용하는 것과 같이, 전술한 기술 이상의 것을 이용하고, 플래시 메모리 및/또는 램과 다른 소멸성 및 비소멸성 메모리 유형을 사용하여 모놀리틱 회로(monolityic circuitry)상에 내장 시스템을 구현하는 등으로 실시될 수 있으며, 이 모두는 본 발명의 범위를 벗어나지 않는다.The above examples and description are given for illustrative purposes only and do not limit the invention in any way. As will be appreciated by those skilled in the art, the present invention can be implemented in a wide variety of ways, which utilize a micro-controller or microprocessor to control the operation of the embedded system, and wirelessly download the upgraded software version. Using more than the techniques described above, such as using data communication links, implementing embedded systems on monolithic circuitry using flash memory and / or RAM and other types of destructive and non-destructive memory, and the like. It can be practiced as, all of which do not depart from the scope of the invention.

본 발명에 따른 방법 및 장치에 의하면, 기판상에서 그리고 필드에서, 고장 안전 절차를 이용하여, 새로운 소프트웨어 및 부트 버전을 내장 시스템의 단일 비소멸성 메모리로 다운로드하는 것이 가능하다.With the method and apparatus according to the invention, it is possible to download new software and boot versions into a single non-volatile memory of the embedded system, using failsafe procedures, on the board and in the field.

Claims (23)

a) 원래의 초기화 및 다운로드 운영 프로그램 버전을 포함하는 하나 이상의 쓰기 방지된 구역과, 적어도 업그레이드가능한 초기화 및 다운로드 운영 프로그램 버전을 포함하는 하나 이상의 비보호 구역을 갖는 프로그램가능한, 비소멸성 제1 메모리를 제공하고 ;a) providing a programmable, non-destructive first memory having at least one write protected area comprising an original initialization and download operating program version and at least one unprotected area containing at least an upgradeable initialization and download operating program version; ; b) 초기화시, 적어도 상기 초기화 및 다운로드 운영 프로그램 버전의 상기 업그레이드가능한 버전, 또는 원래의 버전을 제2메모리 및/또는 메모리 위치(location)에 복사하고 ;b) upon initialization, copying at least the upgradeable, or original, version of the initialization and download operating program version to a second memory and / or memory location; c) 상기 제2메모리 및/또는 상기 메모리 위치로부터 상기 내장 시스템을 운영하고 ; 및c) operating said embedded system from said second memory and / or said memory location; And d) 새로운 운영 소프트웨어 및/또는 초기화 프로그램 버전을 다운로드하고 상기 다운로드된 버전으로 상기 비보호 구역을 프로그래밍할 수 있도록 하는 것으로 구성되는, 내장 시스템의 운영 소프트웨어 및/또는 초기화 프로그램 버전을 업그레이드하기 위한 방법.d) downloading a new operating software and / or initiator version and enabling programming the unprotected zone with the downloaded version. 제1항에 있어서, 상기 제2메모리가 상기 제1메모리로부터 물리적으로 분리됨을 특징으로 하는 방법.The method of claim 1, wherein the second memory is physically separated from the first memory. 제1항에 있어서, 새로운 버전의 다운로드는 내장 시스템의 데이터 수신 입력기에 연결된 휴대용 데이터 소스를 이용함으로써 이루어짐을 특징으로 하는 방법.The method of claim 1, wherein the download of the new version is by using a portable data source connected to a data receiving input of an embedded system. 제1항에 있어서, 새로운 버전의 다운로드는 데이터 링크를 통하여 원격 데이터 소스로부터 데이터 그룹을 내장 시스템의 데이터 수신 입력기로 전송함으로써 원격 데이터 소스로부터 이루어짐을 특징으로 하는 방법.The method of claim 1, wherein the new version of the download is made from the remote data source by sending a group of data from the remote data source via a data link to a data receiving input of an embedded system. 제4항에 있어서, 데이터 링크는 무선 링크임을 특징으로 하는 방법.5. The method of claim 4, wherein the data link is a wireless link. 제1항에 있어서, 비소멸성 메모리는 플래시 메모리임을 특징으로 하는 방법.The method of claim 1 wherein the non-volatile memory is a flash memory. 제2항에 있어서, 제2메모리는 소멸성 메모리임을 특징으로 하는 방법.The method of claim 2, wherein the second memory is a destructive memory. 제1항에 있어서, 중단된 다운로드된 데이터의 도착이 데이터 상태 코드를 체크함으로써 탐지됨을 특징으로 하는 방법.The method of claim 1, wherein the arrival of the aborted downloaded data is detected by checking a data status code. 제1항에 있어서, 초기화할 때, 다음 단계들을 실행하는 방법 :The method of claim 1, wherein upon initialization, performing the following steps: a) 비보호 구역의 상태 코드를 체크하고 ;a) check the status code of the unprotected zone; b) 상기 상태 코드가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내면, 상기 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사하고 ; 및b) if the status code indicates that the initialization and download operating program version is valid, copy the program version to a second memory and / or memory location; And c) 상기 상태 코드가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내지 않으면, 상기 원래의 초기화 및 다운로드 운영 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사한다.c) If the status code does not indicate that the initialization and download operating program version is valid, copy the original initialization and download operating program version to the second memory and / or memory location. 제2항에 있어서, 쓰기 방지된 구역 및 비보호 구역은 단일 플래시 메모리의 섹터임을 특징으로 하는 방법.3. The method of claim 2, wherein the write protected area and the unprotected area are sectors of a single flash memory. 제1항에 있어서, 내장 시스템은 전화기임을 특징으로 하는 방법.The method of claim 1 wherein the embedded system is a telephone. 제1항에 있어서, 내장 시스템은 원격 통신 시스템(telecommunication system)임을 특징으로 하는 방법.The method of claim 1 wherein the embedded system is a telecommunication system. a) 상기 내장 시스템의 원래의 초기화 및 다운로드 프로그램 버전을 저장하기 위한 하나 이상의 쓰기 방지된 구역과, 상기 내장 시스템의 업그레이드가능한 초기화 및 다운로드 프로그램 버전을 저장하기 위한 하나 이상의 비보호 구역을 갖는 단일 비소멸성 메모리 ;a) a single non-volatile memory having at least one write protected area for storing the original initialization and download program version of the embedded system and at least one unprotected area for storing the upgradeable initialization and download program version of the embedded system ; b) 상기 내장 시스템의 초기화 및 다운로드 프로그램 버전을 저장하기 위한, 적어도 제2메모리 및/또는 메모리 위치 ;b) at least a second memory and / or memory location for storing an initialization and download program version of said embedded system; c) 적어도 상기 원래의 초기화 및 다운로드 프로그램 또는 상기 업그레이드가능한 초기화 및 다운로드 프로그램 버전을 상기 제2메모리 및/또는 메모리 위치에 복사하고, 적어도 새로운 초기화 및/또는 다운로드 프로그램 버전을 다운로드하고 프로그래밍하기 위한 상기 내장 시스템의 초기화 프로세스 및 운영을 제어하기 위한 제어 회로 ; 및c) copying at least the original initialization and download program or the upgradeable initialization and download program version to the second memory and / or memory location and downloading and programming at least a new initialization and / or download program version. Control circuitry for controlling the initialization process and operation of the system; And d) 소프트웨어 및/또는 상기 초기화 프로그램 버전을 다운로드하기 위한 데이터 수신 입력기d) a data receiving input for downloading software and / or said initiator version. 를 포함하는, 운영 소프트웨어 및/또는 초기화 프로그램 버전에 대한 업그레이드 성능을 갖춘 내장 시스템.Embedded system with upgrade capability for operating software and / or initiator versions, including. 제13항에 있어서, 상기 제2메모리가 상기 제1메모리로부터 물리적으로 분리됨을 특징으로 하는 내장 시스템.14. The embedded system of claim 13 wherein the second memory is physically separate from the first memory. 제13항에 있어서, 새로운 버전이 데이터 수신 입력기에 연결된 데이터 소스를 이용함으로써 다운로드됨을 특징으로 하는 내장 시스템.14. The embedded system of claim 13 wherein the new version is downloaded by using a data source connected to a data receiving input. 제13항에 있어서, 데이터 소스에 의해 전송된 새로운 데이터 버전을 수신하고 다운로드하기 위한 데이터 통신 링크를 구비함을 특징으로 하는 내장 시스템.15. The embedded system of claim 13, having a data communication link for receiving and downloading a new version of data sent by the data source. 제13항에 있어서, 데이터 통신 링크는 무선 링크임을 특징으로 하는 내장 시스템.The embedded system of claim 13, wherein the data communication link is a wireless link. 제13항에 있어서, 비소멸성 메모리는 플래시 메모리임을 특징으로 하는 내장 시스템.The system of claim 13, wherein the non-volatile memory is a flash memory. 제13항에 있어서, 제2메모리는 소멸성 메모리임을 특징으로 하는 내장 시스템.The system of claim 13, wherein the second memory is a destructive memory. 제13항에 있어서, 제어 회로가 적어도 다음 단계들에 따라 작동되는 것을 특징으로 하는 내장 시스템 :The system of claim 13, wherein the control circuit is operated according to at least the following steps: a) 초기화할 때, 상기 비보호 구역의 상태 단어를 체크하고 ;a) upon initialization, check the status word of the unprotected zone; b) 상기 상태 단어가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내면, 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사하고 ; 및b) if the status word indicates that the initialization and download operating program version is valid, copy the program version to a second memory and / or memory location; And c) 상기 상태 단어가 초기화 및 다운로드 운영 프로그램 버전이 유효함을 나타내지 않으면, 상기 원래의 초기화 및 다운로드 운영 프로그램 버전을 제2메모리 및/또는 메모리 위치에 복사한다.c) if the status word does not indicate that the initialization and download operating program version is valid, copy the original initialization and download operating program version to a second memory and / or memory location. 제13항에 있어서, 데이터 상태 단어가 업그레이드 가능한 초기화 및 다운로드 프로그램 버전이 유효하다고 나타내지 않을 때마다 원래의 초기화 프로그램이 사용됨을 특징으로 하는 내장 시스템.14. The embedded system of claim 13, wherein the original initialization program is used whenever the data status word does not indicate that an upgradeable initialization and download program version is valid. 제13항에 있어서, 전화기 임을 특징으로 하는 내장 시스템.The system of claim 13, wherein the system is a telephone. 제13항에 있어서, 원격 통신 시스템임을 특징으로 하는 내장 시스템.18. The embedded system of claim 13, wherein the embedded system is a telecommunications system.
KR1020000025214A 1999-05-13 2000-05-12 A method and apparatus for downloading software into an embedded system KR20010007066A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IL129947 1999-05-13
IL99129947 1999-05-13

Publications (1)

Publication Number Publication Date
KR20010007066A true KR20010007066A (en) 2001-01-26

Family

ID=37722721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000025214A KR20010007066A (en) 1999-05-13 2000-05-12 A method and apparatus for downloading software into an embedded system

Country Status (1)

Country Link
KR (1) KR20010007066A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100724878B1 (en) * 2003-06-20 2007-06-04 삼성전자주식회사 Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
KR100873302B1 (en) * 2006-08-29 2008-12-09 콘티넨탈 오토모티브 시스템 주식회사 Method for reprogramming electric control unit of car
KR101048387B1 (en) * 2005-03-15 2011-07-12 주식회사 히타치엘지 데이터 스토리지 코리아 How to save optical settings when downloading firmware

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100724878B1 (en) * 2003-06-20 2007-06-04 삼성전자주식회사 Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
US7810088B2 (en) 2003-06-20 2010-10-05 Samsung Electronics Co., Ltd. Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
KR101048387B1 (en) * 2005-03-15 2011-07-12 주식회사 히타치엘지 데이터 스토리지 코리아 How to save optical settings when downloading firmware
KR100873302B1 (en) * 2006-08-29 2008-12-09 콘티넨탈 오토모티브 시스템 주식회사 Method for reprogramming electric control unit of car

Similar Documents

Publication Publication Date Title
US6615404B1 (en) Method and apparatus for downloading software into an embedded-system
US8539471B2 (en) Updating firmware of an electronic device
US6681390B2 (en) Upgrade of a program
US7275153B2 (en) Booting and boot code update system using boot strapper code to select between a loader and a duplicate backup loader
US8181007B2 (en) Electronic device and method for secure operating system update in embedded system
US6275931B1 (en) Method and apparatus for upgrading firmware boot and main codes in a programmable memory
US5987605A (en) Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device
EP1271311A2 (en) Upgrading networked device software
KR20050028173A (en) Method and system for updating software
US5940627A (en) User selectable feature set for a flash ROM based peripheral
CN109582372B (en) System starting method and device
US20020095619A1 (en) Fault tolerant/redundant boot ROM reprogramming
KR100986487B1 (en) Mobile handset with a fault tolerant update agent
US6772364B1 (en) Fault tolerant field updating with alternation of memory areas
KR20010007066A (en) A method and apparatus for downloading software into an embedded system
KR100860402B1 (en) Device and method for upgradin system using two step bootloader
KR100775431B1 (en) Apparatus and Method for System Imbedded System and Firmware Updating Method Therein
US11768669B2 (en) Installing application program code on a vehicle control system
KR20010028715A (en) apparatus and method for booting in data processing system
KR20080065166A (en) Application program download apparatus and method for touch panel in mobile terminal
CN117632162A (en) Software upgrading system and method
JP2003122575A (en) Information processing unit
KR100321999B1 (en) Method for program patch using script
KR20010017586A (en) Method for upgrading program stored in information terminal
KR20050119035A (en) Method for upgrading binary data of mobile communication terminal

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination