KR20070083138A - 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법 - Google Patents

임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법 Download PDF

Info

Publication number
KR20070083138A
KR20070083138A KR1020060016453A KR20060016453A KR20070083138A KR 20070083138 A KR20070083138 A KR 20070083138A KR 1020060016453 A KR1020060016453 A KR 1020060016453A KR 20060016453 A KR20060016453 A KR 20060016453A KR 20070083138 A KR20070083138 A KR 20070083138A
Authority
KR
South Korea
Prior art keywords
firmware
kernel
file system
information
embedded
Prior art date
Application number
KR1020060016453A
Other languages
English (en)
Other versions
KR100775431B1 (ko
Inventor
김기현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060016453A priority Critical patent/KR100775431B1/ko
Publication of KR20070083138A publication Critical patent/KR20070083138A/ko
Application granted granted Critical
Publication of KR100775431B1 publication Critical patent/KR100775431B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트 방법에 관한 것으로, 임베디드 시스템의 펌웨어 이상 유무를 검사하고, 펌웨어 검사 결과 이상이 있는 경우, 새로운 펌웨어를 다운받기 위한 정보만을 포함하는 복구용 커널 및 파일 시스템을 이용해 펌웨어 제공 서버로 접속하여 펌웨어 제공 서버로부터 새로운 펌웨어를 다운로드 하도록 함으로써, 최소한의 부가 공간 첨가로 임베디드 시스템의 펌웨어 업데이트시 문제가 발생하는 경우 A/S 필요없이 안정적으로 펌웨어를 업데이트하는 효과를 기대할 수 있다.

Description

임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트 방법{Apparatus and Method for System Imbedded System and Firmware Updating Method Therein}
도 1a는 일반적인 임베디드 시스템에서 단일 펌웨어를 가지는 플래시 메모리 구조를 나타낸 도면.
도 1b는 일반적인 임베디드 시스템에서 복구용 파티션을 가지는 플래시 메모리 구조를 나타낸 도면.
도 2는 일반적인 임베디드 시스템의 펌웨어 업데이트 과정을 나타낸 도면.
도 3은 본 발명에 따른 임베디드 시스템의 플래시 메모리 구조를 나타낸 도면.
도 4는 본 발명에 따른 임베디드 시스템의 펌웨어 업데이트 동작 흐름을 나타낸 도면.
*도면의 주요 부분에 대한 부호의 설명*
310 : 헤더 320 : 커널 1
330 : 파일 시스템 1 340 : 커널 2
350 : 파일 시스템 2
본 발명은 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트 방법에 관한 것이다.
임베디드(Embedded) 시스템은, 특정 장치의 지능적인 처리를 위해 단순한 전기, 전자회로뿐 아니라 마이크로프로세서를 내장한 시스템을 말한다. 내장된 마이크로프로세서는 시스템을 구동해 그 장비가 수행해야 하는 특정 기능을 수행하도록 한다. 임베디드 시스템의 예로는, VCR, 산업용 로봇, 의학 도구, 핸드폰, 밥통 등을 들 수 있다.
임베디드 시스템은 그 구성 요소로, CPU, 메모리 및 주변 장치 등의 하드웨어와 OS(Operating System), 디바이스 드라이버, 미들웨어, 어플리케이션 등의 소프트웨어를 포함한다.
도 1a는 일반적인 임베디드 시스템에서 단일 펌웨어를 가지는 플래시 메모리 구조를 도시한다.
도 1a에서 보는 바와 같이, 일반적인 임베디드 시스템의 플래시 메모리는 헤더(101), 커널(102), 파일 시스템(103)으로 구성된다. 이와 같은 구성의 플래시 메모리를 가지는 임베디드 시스템의 경우 펌웨어에 이상이 발생하는 경우, 별도의 콘 솔을 임베디드 시스템과 연결하여야만 문제 확인이 가능하며, 콘솔을 구비하지 않은 경우에는 문제를 파악하지 못하여 A/S를 받아야 한다.
도 1b는 일반적인 임베디드 시스템에서 복구용 파티션을 가지는 플래시 메모리 구조를 보여준다.
도 1b는 도 1a에서 본 바와 같은 플래시 메모리 구조 즉, 헤더(111), 커널 1(112), 파일 시스템 1(113)을 포함하는 구조에서 커널 2(114)와 파일 시스템 2(115)가 추가된 경우이다. 도 1b의 커널 2(114) 및 파일 시스템 2(115)는 복구용 파티션으로, 커널 1(112) 또는 파일 시스템 1(113)에 문제가 발생한 경우에 대비한 것이다. 커널 2(114) 및 파일 시스템 2(115)는 커널 1(112) 및 파일 시스템 1(113)과 동일한 크기 및 동일한 내용을 포함한다.
도 2는 일반적인 임베디드 시스템의 펌웨어 업데이트 과정을 도시한다.
임베디드 시스템에서 부트로더가 동작을 개시하고(S201), OS 로딩을 시작한다(S202). OS 로딩 중 문제가 발생하지 않는 경우(S203의 No)에는 정상 동작을 수행한다(S204). 하지만, OS 로딩 중 문제가 발생하면(S203의 Yes), 플래시 메모리 자체를 교체하거나 제조업체의 A/S를 받아야 한다(S205)
임베디드 시스템에서 펌웨어 업데이트를 수행하는 경우, 새로운 펌웨어를 네트워크로부터 다운로드 받아 저장 공간에 저장하게 된다. 저장 공간으로는 주로 플래시 메모리가 사용된다. 상기에서 살펴본 바와 같은 도 1a의 경우, 펌웨어 업데이트 과정에 문제가 발생하는 경우 사용자는 임베디드 시스템을 콘솔로 연결하여 새로운 펌웨어를 다운로드 받을 수 없기 때문에 도 2와 같이 플래시 메모리를 교체하 거나 A/S를 받는다. 콘솔은 개발 과정에서 임베디드 시스템과 데스크 탑 컴퓨터와 연결하여 사용되지만 임베디드 시스템 판매시 콘솔은 같이 판매되지 않기 때문에 사용자가 콘솔을 사용하기는 어려운 일이다. 이처럼, 플래시 메모리에 1 개의 펌웨어를 저장하는 경우에는 펌웨어를 업데이트 하는 경우 문제가 발생하였을 때 복구할 수 있는 방법이 없어, 플래시 메모리를 교체하거나 A/S를 받아야 하는 문제점이 발생한다.
이를 해결하기 위해 도 1b와 같이 동일한 펌웨어를 2 개의 파티션에 저장하여 그 중 하나의 펌웨어를 복구용 펌웨어로 사용하기도 한다. 하지만, 이 경우에는 동일한 펌웨어를 두 곳에 저장하기 때문에 많은 양의 플래시 메모리 공간이 필요하게 된다. 이는 임베디드 시스템의 생산 비용을 증가시키며, 플래시 메모리를 활용하는 데 한계가 생기게 한다. 또한 펌웨어 업데이트 시, 펌웨어를 2 군데에 저장하기 때문에 업데이트 시 많은 시간이 소요되게 되는 문제점이 있다.
본 발명은 상기의 문제점을 해결하기 위해, 기존의 커널 및 파일 시스템과 동일한 정보를 포함하는 복구용 커널 및 파일 시스템이 아니라, 새로운 펌웨어를 다운받을 수 있는 정보만을 포함하는 복구용 커널 및 파일 시스템을 이용해 펌웨어 업데이트를 수행하도록 하는 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 측면에 따른 임베디드 시스템은, 상기 임베디드 시스템의 구동을 위한 펌웨어를 저장하는 제 1 커널 및 제 1 파일 시스템과 상기 펌웨어에 문제 발생시, 새로운 펌웨어를 다운받기 위한 정보를 포함하는 복구용 제 2 커널 및 제 2 파일 시스템을 포함하는 플래시 메모리를 포함한다.
상기 새로운 펌웨어를 다운받기 위한 정보는, 상기 새로운 펌웨어를 저장하고 있는 서버에 대한 접속 정보를 포함한다.
상기 플래시 메모리는, 상기 제1 커널 및 제 1 파일 시스템과 상기 복구용 제 2 커널 및 제 2 파일 시스템에 대한 버전 정보, CRC(Cyclic Redundancy Check) 정보를 포함하는 헤더를 더 포함한다.
상기 제 1 커널 및 상기 제 1 파일 시스템은, 상기 다운로드된 새로운 펌웨어를 저장한다.
본 발명의 다른 측면에 따른 임베디드 시스템의 플래시 메모리는, 상기 임베디드 시스템의 구동을 위한 펌웨어를 저장하는 제 1 커널 및 제 1 파일 시스템과 상기 펌웨어에 문제 발생시, 새로운 펌웨어를 다운받기 위한 정보를 포함하는 복구용 제 2 커널 및 제 2 파일 시스템을 포함한다.
본 발명의 또 다른 측면에 따른 임베디드 시스템의 펌웨어 업데이트 방법은, 상기 임베디드 시스템의 펌웨어 이상 유무를 검사하는 단계; 상기 펌웨어 검사 결 과 이상이 있는 경우, 새로운 펌웨어를 다운받기 위한 정보만을 포함하는 복구용 커널 및 파일 시스템을 이용해 펌웨어 제공 서버로 접속하는 단계 및 상기 펌웨어 제공 서버로부터 새로운 펌웨어를 다운로드 하는 단계를 포함한다.
상기 펌웨어의 이상 유무를 검사하는 단계는, 상기 펌웨어 헤더에 이상이 있는지 검사하는 단계; 상기 펌웨어에 대한 CRC 검사를 수행하는 단계; 및 OS 로딩 중 문제 발생 여부를 모니터링하는 단계를 포함한다.
상기 임베디드 시스템의 펌웨어 업데이트 방법은, 상기 다운로드 된 새로운 펌웨어를 상기 플래시 메모리의 커널 및 파일 시스템에 저장하는 단계를 더 포함한다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 살펴보면서 구체적으로 설명하기로 한다.
임베디드 운영체계의 부팅 방법은 시스템의 핵심인 중앙처리장치(CPU)와 기본적인 부팅에 필요한 실행 코드와 파일 시스템이 탑재된 비휘발성 메모리는 물론, 파일시스템의 인스트럭션이 실행되면서 운영체계 및 응용프로그램의 작업 공간으로 사용되는 임시 메모리인 RAM의 유기적인 연결로부터 구현된다.
즉, 비휘발성 메모리에 저장된 부트로더의 실행코드 부분에서 중앙처리장치를 초기화하고, 초기화가 종료되면 비휘발성 메모리에 저장된 커널의 실행코드를 읽어 들이면서 부팅을 시작한다. 여기서, 부팅은 사용자에게 쉘(shell)의 형태를 제공하기까지의 상태를 말하며, 이 상태에서 커널의 아이들 태스크(idle task)가 생성되고, 이 아이들 태스크의 점유율이 최고가 되어 사용자의 명령 및 조작을 기다리게 된다.
이를 보다 구체적으로 살펴보면, 비휘발성 메모리에 저장된 부트로더에서 커널 이미지를 복사한 후, 이미지를 검사하고, 그 검사한 이미지의 압축을 푼 후에 비 압축된 이미지를 RAM상의 실행 번지로 복사하여 커널 부팅을 시도한다.
그리고, 커널 부팅의 마지막 부분에서 비휘발성 메모리에 저장된 파일시스템(file system)을 커널이 요구하고, 이때 압축된 램 디스크(ramdisk) 형태의 파일시스템이 압축 해제되면서 RAM 영역으로 이동함으로써 홈 네트워크를 위한 가정용 가전제품의 사용이 가능하게 되는 것이다.
일반적으로 임베디드 운영 체계에서의 부팅은, 부트로더를 실행, 중앙처리장치의 초기화 후 부트로더의 나머지 실행영역을 RAM으로 복사, 부트로더의 나머지 부분 실행, 보드 초기화 및 부팅 변수 입력, 커널 이미지를 RAM 영역으로 복사, 커널 이미지 복사, 커널 이미지 압축 해제, 부팅 변수를 저장하고 커널 엔트리 포인트로 점프, 커널 코드 실행, 파일 시스템을 RAM 영역으로 복사, 파일 시스템 검사, 파일 시스템 압축 해제, 파일 시스템 마운트, 파일 시스템을 통한 사용자 어플리케이션 실행의 수순으로 부팅이 이루어진다.
여기서, 부트로더는 CPU, 속도, 메모리, 인터럽트, UART 등 하드웨어의 초기화를 수행한다. 또한, 커널이나 램디스크 이미지를 다운로드하는 중요한 역할도 수행하는데, 호스트 상에서 컴파일된 이미지를 시리얼이나 tftp를 이용해 이더넷을 통해 SDRAM 상으로 다운로드가 가능하다. 다운로드한 커널과 램디스크 이미지는 SDRAM 상에 있기 때문에 전원이 꺼지면 다운로드한 이미지는 소실되므로, 플래시 기능을 통하여 SDRAM 상의 커널과 램디스크를 지정된 플래시 주소 영역에 기록한다. 부트로더는 또한, tftp를 이용하여 고속으로 커널이나 램디스크를 다운로드할 수 있다.
임베디드 시스템은 운영 체계 없이 펌웨어(Firmware) 형태의 코드가 동작하기 때문에 부팅이 매우 짧아 전원을 인가한 후 수 초 이내에 사용이 가능한 형태로 전이가 이루어진다.
도 3은 본 발명에 따른 임베디드 시스템의 플래시 메모리 구조를 도시한다.
도 3에서 보는 바와 같이 본 발명에 따른 임베디드 시스템의 플래시 메모리는 헤더(310), 커널 1(320), 파일 시스템 1(330)뿐 아니라 커널 2(340) 및 파일 시스템 2(350)를 포함한다.
도 3의 플래시 메모리 구조는 OS로 리눅스를 사용하는 경우의 구조이며, 윈도우의 경우는 커널 1과 파일 시스템 1이 하나의 이미지로 묶여서 구성될 수 있다. 플래시 메모리의 헤더(310)에는 커널 1(320), 파일 시스템 1(330), 커널 2(340), 파일 시스템 2(350)에 대한 버전 정보 및 CRC(Cyclic Redundancy Check) 정보를 저장한다.
커널 1(320) 및 파일 시스템 1(330)은 암호화 관련 정보, 접속 규제 룰 정보, IP 설정에 관한 정보 등을 포함한다. 임베디드 시스템이 AP(Access Point)인 경우에는 라우팅 프로토콜 데몬 등도 포함될 것이다. 커널 1(320) 및 파일 시스템 1(330)은 또한 커널 2(340) 및 파일 시스템 2(350)에 의해 다운로드 된 새로운 펌웨어가 저장되는 곳이기도 하다.
여기서, 일반적으로 커널에는 종료된 입출력 연산 등, 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와, 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저 등이 포함되어 있다. 커널은 또한, 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리 관리자를 가지고 있다. 커널의 서비스는 운영체계의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다. 커널을 유지하기 위한 코드는 지속적으로 사용되기 때문에, 보통 커널은 자주 사용되지 않는 운영체계의 나머지 부분에 의해 덮어씌워져 훼손되지 않도록, 보호된 메모리 영역에 적재된다.
반면, 커널 2(340)와 파일 시스템 2(350)는 복구용 펌웨어 저장 공간으로, 별도의 서버로 접속해서 새로운 펌웨어를 다운로드하기 위한 최소한의 정보만을 저장한다.
즉, 본 발명에 따른 커널 2(340)와 파일 시스템 2(350)는 도 1b의 커널 2(114)와 파일 시스템 2(115)와는 다른 정보를 포함한다. 도 1b의 커널 2(114)와 파일 시스템 2(115)는 커널 1(112) 및 파일 시스템 1(113)과 크기 및 포함하는 내용이 동일하다. 반면, 본 발명에 따른 커널 2(340)와 파일 시스템 2(350)는 커널 1(320) 및 파일 시스템 1(330)과 크기 및 포함하는 내용이 상이하며, 서버에 접속하여 새로운 버전의 펌웨어를 다운로드 받을 수 있는 범위 내에서 최소한의 크기로 이루어진다.
본 발명에 따른 펌웨어 업데이트 절차는, 헤더(310)의 펌웨어 정보, 커널 1(320) 및 파일 시스템 1(330)을 포맷하고 새로운 펌웨어를 커널 1(32) 및 파일 시스템(330)에 저장하고, 헤더 부분에 펌웨어 정보를 저장함으로써 이루어진다.
만약 새로운 펌웨어를 저장하는 과정에서 문제가 발생한다면, 부트로더는 헤더 부분의 펌웨어 정보를 읽고 문제가 있음을 인식하고, 커널 2(340) 및 파일 시스템 2(350)를 이용하여 부팅하고 서버에 접속하여 새로운 펌웨어를 다운로드 받아 커널 1(320) 및 파일 시스템 1(330)에 저장하게 된다.
한편, 헤더 정보를 읽고 난 후 문제가 없는 경우에는 커널 1(320) 및 파일 시스템 1(330)의 CRC 검사를 수행하고 플래시 메모리 상의 손상된 블록이나 기타 문제가 존재하는지 검사하게 된다. 이러한 검사 절차를 무사히 통과한 경우에만 커널 1(320) 및 파일 시스템 1(330)을 이용하여 부팅이 이루어지게 된다. 2 가지 검사 절차 중 하나라도 문제가 발생하면 커널 2(340) 및 파일 시스템 2(350)를 이용하여 최신 버전의 커널과 파일 시스템을 다운로드 받게 된다.
도 4는 본 발명에 따른 임베디드 시스템의 펌웨어 업데이트 동작 흐름을 나타낸다.
본 발명에 따른 임베디드 시스템은 OS 로딩을 위해 우선 부트로더가 동작을 개시한다(S401). 부트로더는 하드웨어의 초기화를 수행하고, 커널이나 램디스크 이미지를 다운로드 하는 역할을 수행한다. 임베디드 시스템은 펌웨어 헤더의 내용을 검사하고, 이상이 있는지 확인한다(S402). 검사 결과 이상이 없는 경우(S402의 No), 펌웨어에 대한 CRC 검사도 수행하여 검사 결과에 이상이 있는지 다시 한번 체크한다(S403). 헤더의 내용에 아무런 이상이 없고, 펌웨어 CRC 검사 결과에도 이상이 없는 경우 OS를 로딩하는데(S405), OS 로딩 전 부트로더는 OS 로딩시 사용되지 않는 메모리(SDRAM과 같은 휘발성 메모리)상의 특정 영역에 임의의 값을 기록하게 된다(S404). 이때 임의의 값으로는 "Oxdeadbeaf"가 사용될 수 있는데, "Oxdeadbeaf" 값은 OS 로딩 중 문제가 발생하는 경우 이용하기 위한 것이다.
즉, OS 로딩 중 문제가 발생하는지 체크하여(S406), 문제가 발생하는 경우(S406의 Yes) 임베디드 시스템은 재부팅 절차를 개시하게 되는데, 이 과정에서 상기 메모리 상에 기록된 "Oxdeadbeaf"를 확인하고 원래의 부팅 절차에 이용되었던 커널 및 파일 시스템이 아닌 복구용 커널 및 파일 시스템을 이용한 부팅 절차를 수행하게 된다(S411 - S414). 이때, "Oxdeadbeaf"가 기록된 휘발성 메모리 상의 정보는 재부팅 시에도 유지된다. 만일 OS 로딩 중 아무런 문제가 발생하지 않고 정상적으로 부팅이 된 경우라면(S406의 No), 임베디드 시스템은 상기 메모리에 기록된 "Oxdeadbeaf" 값을 삭제하고 정상적인 부팅이 이루어졌음을 알리게 된다(S407).
정리하자면, 펌웨어 헤더 내용 검사 결과에 이상이 있거나(S402의 Yes), 펌웨어 CRC 검사 결과에 이상이 있는 경우(S403의 Yes), 또는 OS 로딩 중 문제가 발생하는 경우(S406의 Yes)에는 복구용 펌웨어로 로딩 절차를 개시한다(S411). 즉, 새로운 펌웨어를 제공하는 서버에 접속하고(S412) 새로운 펌웨어를 다운로드 한다(S413). 임베디드 시스템은 다운로드 한 새로운 펌웨어를 플래시 메모리에 저장한다(S414).
본 발명은, 임베디드 시스템의 플래시 메모리에 새로운 펌웨어를 다운받을 수 있는 최소한의 정보를 저장하는 터널 및 파일 시스템을 추가로 배치함으로써, 기존 플래시 메모리에 최소한의 부가 공간 첨가로 임베디드 시스템의 펌웨어 업데이트시 문제가 발생하는 경우 A/S 필요없이 안정적으로 펌웨어를 업데이트 하는 효과를 기대할 수 있다.

Claims (10)

  1. 상기 임베디드 시스템의 구동을 위한 펌웨어를 저장하는 제 1 커널 및 제 1 파일 시스템; 과
    상기 펌웨어에 문제 발생시, 새로운 펌웨어를 다운받기 위한 정보를 포함하는 복구용 제 2 커널 및 제 2 파일 시스템을 포함하는 플래시 메모리를 포함하는 임베디드 시스템.
  2. 제 1항에 있어서,
    상기 새로운 펌웨어를 다운받기 위한 정보는, 상기 새로운 펌웨어를 저장하고 있는 서버에 대한 접속 정보를 포함하는 임베디드 시스템.
  3. 제 1항에 있어서,
    상기 플래시 메모리는,
    상기 제1 커널 및 제 1 파일 시스템과 상기 복구용 제 2 커널 및 제 2 파일 시스템에 대한 버전 정보, CRC(Cyclic Redundancy Check) 정보를 포함하는 헤더를 더 포함하는 임베디드 시스템.
  4. 제 1항에 있어서,
    상기 제 1 커널 및 상기 제 1 파일 시스템은, 상기 다운로드된 새로운 펌웨어를 저장하는 것을 특징으로 하는 임베디드 시스템.
  5. 임베디드 시스템의 플래시 메모리에 있어서,
    상기 임베디드 시스템의 구동을 위한 펌웨어를 저장하는 제 1 커널 및 제 1 파일 시스템; 과
    상기 펌웨어에 문제 발생시, 새로운 펌웨어를 다운받기 위한 정보를 포함하는 복구용 제 2 커널 및 제 2 파일 시스템을 포함하는 플래시 메모리.
  6. 제 5항에 있어서,
    상기 제1 커널 및 제 1 파일 시스템과 상기 복구용 제 2 커널 및 제 2 파일 시스템에 대한 버전 정보, CRC(Cyclic Redundancy Check) 정보를 포함하는 헤더를 더 포함하는 플래시 메모리.
  7. 임베디드 시스템의 펌웨어를 업데이트 하는 방법에 있어서,
    상기 임베디드 시스템의 펌웨어 이상 유무를 검사하는 단계;
    상기 펌웨어 검사 결과 이상이 있는 경우, 새로운 펌웨어를 다운받기 위한 정보만을 포함하는 복구용 커널 및 파일 시스템을 이용해 펌웨어 제공 서버로 접속하는 단계; 및
    상기 펌웨어 제공 서버로부터 새로운 펌웨어를 다운로드 하는 단계를 포함하는 임베디드 시스템의 펌웨어 업데이트 방법.
  8. 제 7항에 있어서,
    상기 펌웨어의 이상 유무를 검사하는 단계는,
    상기 펌웨어 헤더에 이상이 있는지 검사하는 단계;
    상기 펌웨어에 대한 CRC 검사를 수행하는 단계; 및
    OS 로딩 중 문제 발생 여부를 모니터링하는 단계를 포함하는 임베디드 시스템의 펌웨어 업데이트 방법.
  9. 제 7항에 있어서,
    상기 다운로드 된 새로운 펌웨어를 상기 플래시 메모리의 커널 및 파일 시스템에 저장하는 단계를 더 포함하는 임베디드 시스템의 펌웨어 업데이트 방법.
  10. 제 7항에 있어서,
    상기 새로운 펌웨어를 다운받기 위한 정보는, 상기 새로운 펌웨어를 저장하고 있는 서버에 대한 접속 정보를 포함하는 임베디드 시스템의 펌웨어 업데이트 방법.
KR1020060016453A 2006-02-20 2006-02-20 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법 KR100775431B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060016453A KR100775431B1 (ko) 2006-02-20 2006-02-20 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060016453A KR100775431B1 (ko) 2006-02-20 2006-02-20 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법

Publications (2)

Publication Number Publication Date
KR20070083138A true KR20070083138A (ko) 2007-08-23
KR100775431B1 KR100775431B1 (ko) 2007-11-12

Family

ID=38612568

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060016453A KR100775431B1 (ko) 2006-02-20 2006-02-20 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법

Country Status (1)

Country Link
KR (1) KR100775431B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011162743A1 (en) * 2010-06-21 2011-12-29 Hewlett-Packard Development Company, L.P. System for testing and certifying a virtual appliance on a customer computer system
US8489922B2 (en) 2010-11-17 2013-07-16 Apple Inc. Networked recovery system
KR101524096B1 (ko) * 2011-06-07 2015-06-01 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
US11977447B2 (en) 2021-11-11 2024-05-07 Samsung Electronics Co., Ltd. Storage device, operating method for the same and memory system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE29800453U1 (de) * 1998-01-13 1999-05-12 Bosch Gmbh Robert Stabspule für Zündanlagen
KR100744873B1 (ko) * 2002-08-20 2007-08-01 엘지전자 주식회사 컴퓨터 시스템에서의 펌웨어 기록방법
KR100860402B1 (ko) * 2005-12-08 2008-09-26 한국전자통신연구원 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011162743A1 (en) * 2010-06-21 2011-12-29 Hewlett-Packard Development Company, L.P. System for testing and certifying a virtual appliance on a customer computer system
US8489922B2 (en) 2010-11-17 2013-07-16 Apple Inc. Networked recovery system
KR101524096B1 (ko) * 2011-06-07 2015-06-01 엘에스아이 코포레이션 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리
US11977447B2 (en) 2021-11-11 2024-05-07 Samsung Electronics Co., Ltd. Storage device, operating method for the same and memory system

Also Published As

Publication number Publication date
KR100775431B1 (ko) 2007-11-12

Similar Documents

Publication Publication Date Title
EP3491519B1 (en) Optimized uefi reboot process
JP5889933B2 (ja) コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
JP5095717B2 (ja) 目標の媒体上に縮小オペレーティングシステムイメージをインストールする方法、システム、プログラム及び前記方法を実施する命令を有するコンピュータ読み取り可能媒体
KR102084816B1 (ko) Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행
KR101232558B1 (ko) 컴퓨터 구현 방법 및 시스템
KR100901903B1 (ko) 네트워크를 통한 펌웨어의 셀프-모니터링 및 업데이팅
US7313684B2 (en) Method and apparatus for booting a computer system
US20040255106A1 (en) Recovery of operating system configuration data by firmware of computer system
KR102136906B1 (ko) Bpram을 이용한 운영체제의 레이아웃 및 실행
US7533101B2 (en) Extensible loader
JP2014510343A (ja) ライブラリーオペレーティングシステムによるアプリケーションの互換性
US20040268113A1 (en) Virtual out-of-band management controller
US8495349B2 (en) Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute
US7363632B2 (en) Clientless external storage device
KR100775431B1 (ko) 임베디드 시스템 및 임베디드 시스템의 펌웨어 업데이트방법
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
EP3724757B1 (en) Firmware publication of multiple binary images
US20050289537A1 (en) System and method for installing software on a computing device
KR100860402B1 (ko) 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법
Cisco Loading and Maintaining System Images
KR100463838B1 (ko) 유아이에이 시스템을 위한 부트로더의 프로그램 다운로드및 엔에프에스 개발환경 지원방법
KR101666619B1 (ko) 임베디드 디바이스 환경에서의 메모리 관리 방법 및 그 시스템
US20230031974A1 (en) Enabling spi firmware updates at runtime
CN118093025A (zh) 一种无盘启动服务端、客户端和启动方法

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
LAPS Lapse due to unpaid annual fee