KR20090021695A - 플래쉬 메모리 롤백 시스템 및 그 방법 - Google Patents

플래쉬 메모리 롤백 시스템 및 그 방법 Download PDF

Info

Publication number
KR20090021695A
KR20090021695A KR1020070086427A KR20070086427A KR20090021695A KR 20090021695 A KR20090021695 A KR 20090021695A KR 1020070086427 A KR1020070086427 A KR 1020070086427A KR 20070086427 A KR20070086427 A KR 20070086427A KR 20090021695 A KR20090021695 A KR 20090021695A
Authority
KR
South Korea
Prior art keywords
program
flash memory
upgrade
download
variable
Prior art date
Application number
KR1020070086427A
Other languages
English (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 KR1020070086427A priority Critical patent/KR20090021695A/ko
Publication of KR20090021695A publication Critical patent/KR20090021695A/ko

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 플래쉬 메모리 롤백 시스템 및 그 방법에 관한 것이다.
본 발명은 플래쉬 메모리에 프로그램 업그레이드 시, 상기 플래쉬 메모리에 다운 로드되어 있던 이전 프로그램을 복사하여 어플리케이션 코드 영역 중 사용하지 않는 주소에 복사하여 놓고, 이어서 업그레이드 프로그램을 다운로드하며 상기 업그레이드 프로그램이 다운로드가 완료되었는가 판단하여 상기 다운로드가 완료되지 않았으면, 상기 복사에 놓았던 이전 프로그램을 롤백하여 줌으로써, 업그레이드 프로그램 다운로드 중에 외부 인터럽트로 인하여 남아있게 되는 불완전한 코드가 존재하지 않게 되어, 다시 프로그램 업그레이드 시 상기 남아 있던 불완전한 코드로 인하여 프로그램 업그레이드 다운로드 되지 않는 것을 방지할 수 있게 되므로 상기 플래쉬 메모리에 다운로드를 편리하게 할 수 있는 효과를 제공하게 되는 것이다.
프로그램 업그레이드, 플래쉬 메모리, 롤백

Description

플래쉬 메모리 롤백 시스템 및 그 방법{SYSTEM FOR ROLL BACK OF FLASH MEMORY AND METHOD THERE OF}
도 1은 종래의 플래쉬 메모리 맵
도 2는 본 발명의 일실시 예에 따른 플래쉬 메모리 롤백 시스템의 블록도
도 3은 본 발명의 일실시 예에 따른 플래쉬 메모리 롤백 시스템의 플로우 챠트
*도면의 주요부분에 대한 부호의 설명*
21; 메모리 22; 플래쉬 메모리
23; 중앙처리장치
본 발명은 플래쉬 메모리 롤백 시스템에 관한 것이다.
일반적으로 플래쉬 메모리(FLASH MEMORY)는 이이피롬(EEPROM)의 집적도 한계를 극복하기 위해서 일괄소거방식의 1TR-1 CELL구조를 채용한 메모리로서, 전원을 꺼져도 기억된 정보가 없어지지 않는 비휘발성 메모리이고, 전기적인 방법으로 정보를 자유롭게 입출력할 수 있으며, 전력소모가 적고 고속 프로그래밍이 가능하여 향후 컴퓨터의 하드디스크드라이버(HDD)를 대체할 수 있는 소자이다.
상기 플래쉬 메모리는 도 1에 도시한 바와 같이, 부트로더(boot loader)와 어플리케이션 코드(application code)로 나누어지고, 상기 부트로더는 플래쉬나 네트워크에서 커널이미지를 읽어서 메모리로 저장한 후 컴퓨터로 저장하는 기능을 수행하며, 한번 저장이 되면 소프트웨어로 지워지지 않는 부분이다.
상기 어플리케이션 코드는 언제나 저장 및 삭제할 수 있는 부분이다.
그러므로 상기 플래쉬 메모리는 프로그램 업그레이드시 하드웨어 초기화 및 소프트웨어 초기화 후, 상기 어플리케이션 코드가 시작되는 처음 주소로 점프하게 된다.
따라서 상기 플래쉬 메모리는 어플리케이션 코드를 변경하는 일이 빈번히 있고, 상기 어플리케이션 코드를 다운받은 후 플래쉬 메모리에 저장 작업을 진행하는 중에 전원 오프 등의 요인으로 인터럽트를 받게 되면, 상기 플래쉬 메모리에는 불완전한 코드가 그대로 남아 있게 되어 추후 동작이 하지 않는다. 더욱 중요한 것은 플래쉬 메모리에 다운받는 작업을 할 수 없게 된다는 것이다.
그 이유는 플래쉬 메모리에 어플리케이션 코드가 시작되는 주소에 조금이라도 무엇인가 기록되어 있으면, 그곳에서부터 프로그램은 동작하기 시작하여 상기와 같이 불완전한 코드가 있게 되면 다운 로드 모드로 진행되지 않고 불완전한 코드 에러를 알리면서 종료된다.
실제 플래쉬 메모리에 프로그램을 업그레이드할 경우가 발생하여 업그레이드 진행중에 실수 또는 알 수 없는 요인으로 인하여 멈추었을 경우, 상기 프로그램 구 조에서는 아무리 다시 업그레이드를 위한 다운 로드를 시도하더라도 다운 로드가 이루어지지 않는 문제점이 있다.
본 발명은 프로그램 업그레이드 시, 플래쉬 메모리에 프로그램 다운 로드가 중단되는 경우, 이전 프로그램으로 돌아가는 롤백을 제공한다.
본 발명은 업그레이드 프로그램을 저장하는 메모리와; 이전 프로그램을 복사하여 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사하고 상기 메모리에 다운 로드된 업그레이드 프로그램을 다운 로드하는 플래쉬 메모리와; 상기 플래쉬 메모리에 프로그램 업그레이드 시, 상기 업그레이드 프로그램이 다운 로드가 중지되면 상기 복사해 놓았던 이전 프로그램을 롤백하는 중앙처리장치를 포함한다.
이하 첨부되는 도면에 의거 본 발명을 상세히 설명하면 다음과 같다.
도 2는 본 발명의 일실시 예에 따른 플래쉬 메모리 롤백 시스템의 블록도이고, 도 3은 본 발명의 일실시 예에 따른 플래쉬 메모리 롤백 시스템의 플로우 챠트 이다.
메모리(21)는 업그레이드 프로그램을 다운 로드하게 된다. 상기 메모리(22)는 디디알 에스 디 램으로 구현한다.
플래쉬 메모리(22)는 상기 메모리(21)로부터 다운 로드된 업그레이드 프로그램을 다운 로드하게 된다.
중앙처리장치(23)는 업그레이드 프로그램을 상기 메모리(21)에 전달 제어하 게 된다.
상기 중앙처리장치(23)는 프로그램 업그레이드 시, 업그레이드될 이전 프로그램을 플래쉬 메모리(22)의 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사하여 놓았다가 상기 업그레이드 프로그램이 다운 로드가 되지 않는 경우 불완전한 어플리케이션 코드가 남아 있지 않도록 상기 복사해 놓은 이전 프로그램을 롤백하게 된다.
상기와 같이 구성된 본 발명은 프로그램 업그레이드 시, 중앙처리장치(23)는 플래쉬 메모리(22)에 제어신호를 보내 상기 플래쉬메모리(22)의 부트로더가 어플리케이션 코드가 시작되는 주소에 플래그변수를 두고 다운 로드 시작을 기록하게 된다(단계 31).
그리고 상기 중앙처리장치(23)에서는 상기 메모리(21)에 프로그램을 다운 로드함과 아울러 상기 플래쉬 메모리(22)에 다운 로드되어 있는 이전 프로그램의 어플리케이션 코드를 복사하여 상기 플래쉬 메모리(22)의 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사하여 놓게 된다(단계 32).
이어서 상기 메모리(21)에 다운 로드된 업그레이드 프로그램을 플래쉬 메모리(22)에서는 어플리케이션 코드에 다운 로드 한다(단계 33).
그리고 상기 중앙처리장치(23)는 상기 플래쉬 메모리(22)에 업그레이드 프로그램이 다운 로드 완료가 되었는가를 판단한다(단계 34).
이때 상기 플래쉬 메모리(22)에 업그레이드 프로그램이 다운 로드가 완료되었으면, 상기 중앙처리장치(23)에서는 상기 플래쉬 메모리(22)에 불완전한 코드가 남아있지 않은 것으로 판단하여 상기 어플리케이션 코드의 시작주소에 플래그변수를 다운로드 완료로 기록하게 된다(단계 35).
추후, 부팅시 상기 플래그변수에 다운로드 완료 변수가 기록되어 있지 않으면 오류메시지를 출력하고, 상기 플래쉬 메모리(22)의 어플리케이션 코드 영역 중 사용하지 않는 주소에 복사해 놓았던 이전의 프로그램을 롤백할 수 있다.
반면에 상기 업그레이드 프로그램의 다운 로드 완료가 되지 않게 되면, 상기 중앙처리장치(23)에서는 외부의 인터럽트에 의하여 상기 플래쉬 메모리(22)에 불완전한 코드가 남아있어 다운 로드가 이루어지지 않는 것으로 판단하여 상기 플래쉬 메모리(22)의 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사해 놓았던 이전의 프로그램을 롤백하여 상기 업그레이드 프로그램이 다운 로드 중지로 인하여 플래쉬 메모리(23)에 불완전한 코드가 남아있지 않게 한다(단계 36).
이상에서 설명한 바와 같이 본 발명은 플래쉬 메모리에 프로그램 업그레이드 시, 상기 플래쉬 메모리에 다운 로드되어 있던 이전 프로그램을 복사하여 어플리케이션 코드 영역중 사용되지 않는 주소에 복사하여 놓고, 이어서 업그레이드 프로그램을 다운로드하며 상기 업그레이드 프로그램이 다운로드가 완료되었는가 판단하여 상기 다운로드가 완료되지 않았으면, 상기 복사에 놓았던 이전 프로그램을 롤백하여 줌으로써, 업그레이드 프로그램 다운로드 중에 외부 인터럽트로 인하여 남아있게 되는 불완전한 코드가 존재하지 않게 되어, 다시 프로그램 업그레이드 시 상기 남아 있던 불완전한 코드로 인하여 프로그램 업그레이드 다운로드 되지 않는 것을 방지할 수 있게 되므로 상기 플래쉬 메모리에 다운로드를 편리하게 할 수 있는 효과를 제공하게 되는 것이다.

Claims (10)

  1. 업그레이드 프로그램을 저장하는 메모리와; 이전 프로그램을 복사하여 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사하고 상기 메모리에 다운로드된 업그레이드 프로그램을 다운로드하는 플래쉬 메모리와; 상기 플래쉬 메모리에 프로그램 업그레이드 시 업그레이드 프로그램 다운로드가 중지되면 상기 복사해 놓았던 이전의 프로그램을 롤백하는 중앙처리장치를 포함하는 플래쉬 메모리의 롤백 시스템.
  2. 제 1 항에 있어서, 상기 플래쉬 메모리의 부트로더는 다운로드시 어플리케이션 코드가 시작되는 주소에 플래그 변수를 두는 것을 특징으로 하는 플래쉬 메모리의 롤백 시스템.
  3. 제 1 항에 있어서, 상기 중앙처리장치는 업그레이드 프로그램의 다운로드가 완료되면 상기 플래그 변수에 다운로드 완료를 기록하는 것을 특징으로 하는 플래쉬 메모리의 롤백 시스템.
  4. 제 3 항에 있어서, 부팅시 상기 플래그 변수에 다운로드 완료 변수가 기록되어 있지 않으면 상기 복사해 놓았던 이전의 프로그램을 롤백하는 것을 특징으로 하는 플래쉬 메모리의 롤백 시스템.
  5. 제 3 항에 있어서, 부팅시 상기 플래그 변수에 다운로드 완료 변수가 기록되어 있지 않으면, 오류 메시지를 출력하는 것을 특징으로 하는 플래쉬 메모리의 롤백 시스템.
  6. 플래쉬 메모리에 이전 다운로드 되어 있는 프로그램을 상기 플래쉬 메모리의 다른 어플리케이션 코드 영역 중 사용되지 않는 주소에 복사하는 단계와; 업그레이드 프로그램을 다운 로드하는 단계와; 업그레이드 프로그램 다운로드가 완료되지 않았으면 상기 복사해 놓은 이전 프로그램을 롤백하는 단계를 포함하는 플래쉬 메모리의 롤백 방법.
  7. 제 6 항에 있어서, 플래쉬 메모리의 어플리케이션 코드가 시작되는 주소에 플래그 변수를 기록하는 단계를 더 포함하는 것을 특징으로 하는 플래쉬 메모리의 롤백 방법.
  8. 제 7 항에 있어서, 업그레이드 프로그램의 다운로드가 완료되면 상기 플래그변수에 다운로드 완료를 기록하는 단계를 더 포함하는 것을 특징으로 하는 플래쉬 메모리의 롤백 방법.
  9. 제 8 항에 있어서, 부팅시 상기 플래그 변수에 다운로드 완료 변수가 기록되 어 있지 않으면 상기 복사해 놓았던 이전의 프로그램을 롤백하는 단계를 더 포함하는 것을 특징으로 하는 플래쉬 메모리의 롤백 방법.
  10. 제 8 항에 있어서, 부팅시 상기 플래그 변수에 다운로드 완료 변수가 기록되어 있지 않으면 오류메시지를 출력하는 단계를 더 포함하는 것을 특징으로 하는 플래쉬 메모리의 롤백 방법.
KR1020070086427A 2007-08-28 2007-08-28 플래쉬 메모리 롤백 시스템 및 그 방법 KR20090021695A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070086427A KR20090021695A (ko) 2007-08-28 2007-08-28 플래쉬 메모리 롤백 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070086427A KR20090021695A (ko) 2007-08-28 2007-08-28 플래쉬 메모리 롤백 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20090021695A true KR20090021695A (ko) 2009-03-04

Family

ID=40691700

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070086427A KR20090021695A (ko) 2007-08-28 2007-08-28 플래쉬 메모리 롤백 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20090021695A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337444B1 (ko) * 2010-11-16 2013-12-05 한국전자통신연구원 센서 네트워크 에뮬레이션 장치 및 그 동작 방법
CN112527341A (zh) * 2019-09-19 2021-03-19 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
WO2023140636A1 (ko) * 2022-01-21 2023-07-27 엘지전자 주식회사 업그레이드 가능한 전자 기기 및 전자 기기를 업그레이드하는 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337444B1 (ko) * 2010-11-16 2013-12-05 한국전자통신연구원 센서 네트워크 에뮬레이션 장치 및 그 동작 방법
CN112527341A (zh) * 2019-09-19 2021-03-19 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
CN112527341B (zh) * 2019-09-19 2024-03-01 合肥杰发科技有限公司 一种车机系统升级方法、车机系统及计算机存储介质
WO2023140636A1 (ko) * 2022-01-21 2023-07-27 엘지전자 주식회사 업그레이드 가능한 전자 기기 및 전자 기기를 업그레이드하는 방법

Similar Documents

Publication Publication Date Title
US7664923B2 (en) Method and system for updating software
KR100506203B1 (ko) 부팅 및 부트 코드 업데이트 방법 및 시스템
US8181007B2 (en) Electronic device and method for secure operating system update in embedded system
JP3838840B2 (ja) コンピュータ
US9164756B2 (en) Software updating process for an embedded device
CN104123153A (zh) 用于使用usb升级固件的装置与方法
JP2008504628A (ja) 安全なフラッシング
KR20090021695A (ko) 플래쉬 메모리 롤백 시스템 및 그 방법
JP6526357B2 (ja) 制御装置およびプログラム更新方法
JP6192089B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP3805195B2 (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2004013536A (ja) フラッシュメモリ書き換え制御システム、フラッシュメモリ書き換え制御方法、フラッシュメモリ書き換え制御方法の各工程を実行させるプログラムおよび情報記録媒体
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP4973472B2 (ja) ファームウェア組込方法、ファームウェア組込装置、及び、ファームウェア組込プログラム
KR102551737B1 (ko) 부트로더 시스템 및 그 방법
JP2008009494A (ja) 画像形成装置
JPH11282690A (ja) 制御プログラムの書込方法及び情報処理装置並びに情報処理システム
JPH11327911A (ja) 画像形成装置
JP2006126987A (ja) 画像処理装置
CN113918199B (zh) 底层固件程序的更新方法、存储介质以及电子设备
JP2005107608A (ja) 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法
JP5849449B2 (ja) 情報処理装置およびその制御方法とプログラム
JP2004355310A (ja) 画像処理装置
JP2017058992A (ja) 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム
JP2009048484A (ja) 電子機器及び電子情報更新方法

Legal Events

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