KR20050022024A - 수신기에의 소프트웨어 다운로드 - Google Patents

수신기에의 소프트웨어 다운로드 Download PDF

Info

Publication number
KR20050022024A
KR20050022024A KR10-2004-7021292A KR20047021292A KR20050022024A KR 20050022024 A KR20050022024 A KR 20050022024A KR 20047021292 A KR20047021292 A KR 20047021292A KR 20050022024 A KR20050022024 A KR 20050022024A
Authority
KR
South Korea
Prior art keywords
code
boot code
new
boot
current
Prior art date
Application number
KR10-2004-7021292A
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 KR10-2004-7021292A priority Critical patent/KR20050022024A/ko
Publication of KR20050022024A publication Critical patent/KR20050022024A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 저장 유닛에 소프트웨어 프로그램들을 다운로드하는 방법에 관한 것이다. 소프트웨어 프로그램들은 애플리케이션 코드를 다운로드 받을 수 있게 하는 부트 코드와 애플리케이션 코드를 포함한다. 저장 유닛은 적어도 현 부트 코드와 현 애플리케이션 코드를 포함한다. 방법은 다운로드 요청 시, 현 부트 코드에 덮어쓰지 않는 위치에 신 부트 코드를 다운로드하는 단계, 신 부트 코드가 현 부트 코드를 대체함을 나타내는 단계, 신 부트 코드에 덮어쓰는 위치에 신 부트 코드와 관련된 신 애플리케이션 코드를 다운로드하는 단계, 신 애플리케이션 코드가 유효함을 나타내는 단계를 포함한다.

Description

수신기에의 소프트웨어 다운로드{Software download into a receiver }
본 발명은 일반적으로 송신 시스템들에 관한 것이다. 보다 상세하게는, 본 발명은 송신 시스템에서, 소프트웨어 프로그램들을 저장 유닛에 다운로드하는 방법에 관한 것이다.
본 발명은 또한 송신 시스템 및 상기 송신 시스템의 수신기에 관한 것이다.
본 발명은 전술한 방법을 실행하는 컴퓨터 프로그램 제품 및 컴퓨터 프로그램을 전달하는 신호에 관한 것이다.
본 발명은 이동 통신 시스템들을 포함하여, 임의의 통신 시스템에 적용된다. 특히, 본 발명은 DSS(Digital Satellite System) 시스템 및 DVB(Digital Video Broadcasting) 시스템과 같은 방송 시스템들에 적용된다.
부트스트랩 로더들(Bootstrap Loaders; BSL)은 소비자 제품들에 널리 보급되어 있다. 이들은 소프트웨어 애플리케이션의 다운로드를 관리하며 현(current) 소프트웨어 애플리케이션을 신(new) 소프트웨어 애플리케이션으로 대체함으로써 제품을 쉽게 업그레이할 수 있게 한다. 안정성의 이유로, BSL들은 일반적으로, 하드웨어 리셋 후에 소프트웨어가 부트하는 보호된 메모리 영역에 저장된다. 메모리 영역은 팩토리(factory)에서 전기적으로 보호되어 있어 하드웨어 개입 없이는 비보호되게 할 수는 없다. 일반적으로, 이들 BSL들은, 예를 들면, 사용되는 시스템 및 같은 프로토콜에 따라야 하는 애플리케이션의 종류에 링크되는, 표준화되지 않은, 특정의 트랜스포트 프로토콜들을 포함하는 기술에만 사용된다. 기술을 변경할 때, 신 소프트웨어 애플리케이션을 다운로드하기 위해서, 관련된 신 BSL를 또한 다운로드해야 한다. 따라서, 현 BSL은 보호된 메모리 공간을 사용할지라도, 더 이상 사용되지 않을 것이므로, 나머지 애플리케이션에 대해 낭비가 된다. 또한, 일반적으로 신 BSL은 보호되지 않은 메모리 영역에 다운로드되고, 이에 따라 예를 들면, 자발적인 혹은 본의 아닌 소프트웨어 소거에 의해 야기되는 피해를 입게 될 수 있다.
<발명의 요약>
본 발명의 목적은 수신기에 소프트웨어 프로그램들은, 보안이 되고, 메모리가 안전하게, 효율적으로 다운로드되게 하여 사용자에게 보다 나은 서비스 질을 제공하는 방법을 제공하는 것이다. 이 방법은 어떤 기술(예를 들면, DSS 기술)에만 사용되는 부트 코드(혹은 부트스트랩 로더) 및 애플리케이션 코드(혹은 주 애플리케이션)을 포함하는 완전한 내장된 소프트웨어 프로그램들을 다른 기술(예를 들면, DVB 기술)에만 사용되는 다른 기술로 대체할 수 있게 하는 이점이 있다. 위에 언급된 기술에서의 변경은 DVB 혹은 DSS와 같은 송신기술을 일컫는 것일 수 있으나, 조건부 액세스 기술 및/또는 브로드캐스터 기술, 혹은 글로벌 시스템에서의 어떤 비호환적 변경을 지칭할 수 있다.
이를 위해서, 본 발명은 서두에 언급한 바와 같은 제 1방법을 제안하며, 소프트웨어 프로그램들은 부트 코드(boot code) 및 애플리케이션 코드(application code)를 포함하고, 상기 부트 코드는 상기 애플리케이션 코드의 다운로드를 허용하며, 상기 저장 유닛은 적어도 현 부트 코드를 포함하는, 상기 방법은, 다운로드 요청 시, 상기 현 부트 코드에 덮어쓰지 않는 위치에 신 부트 코드를 다운로드하는 단계, 상기 신 부트 코드가 상기 현 부트 코드를 대체함을 나타내는 단계, 상기 신 부트 코드에 덮어쓰지 않는 위치에 상기 신 부트 코드와 관련된 신 애플리케이션 코드를 다운로드하는 단계, 상기 신 애플리케이션 코드가 유효함을 나타내는 단계를 포함한다.
이 제 1방법은 신 부트 코드가 유효하게 다운로드되기 전에 현 부트 코드가 손상받을 수 있는 것을 피하면서, 현 부트 코드에 의해 사용되는 메모리 공간을 재사용할 수 있게 함으로 이점이 있다.
본 발명의 또 다른 실시예에 따라서, 제 2방법이 제안되고, 상기 방법은 저장 유닛의 위치로 점프하기 위한 부트 섹터를 정의하는 단계로서, 부트 코드는 상기 부트 코드의 사용을 유효하게 하기 위해 저장되고, 상기 부트 섹터는 현 부트 코드가 저장되는 제 1위치를 초기에 포인팅(pointing)하는, 상기 부트 섹터를 정의하는 단계, 다운로드 요청 시, 신 부트 코드 및 신 애플리케이션 코드를 포함하는 신 소프트웨어 프로그램을 제 2위치에 다운로드하는 단계,상기 신 부트 코드가 저장된 상기 제 2위치로 점프하는 단계를 포함한다.
제 2방법에서, 이전 소프트웨어로 되돌아가는 능력을 이롭게 포함하여, 제조업자가 제2 기술을 무시할 가능성을 유지함으로써, 동작들은 안전하게 그리고 메모리가 안전하게 이루어질 수 있다. 또한, 본 방법은 예를 들면, 현 부트 코드용으로 사용되는 메모리 공간은 신 애플리케이션 코드와 같은 다른 데이터를 저장하는데, 이롭게, 다시 사용될 수 있어 메모리 효율적이다.
본 발명을 이롭게 구현하는데 선택적으로 사용될 수 있는, 본 발명 및 추가의 특징들은 이하 기술되는 도면을 참조로 명백하게 될 것이다.
도 1는 본 발명의 제1 실시예에 따른 제 1방법의 예를 도시한 도면.
도 2는 본 발명의 제2 실시예에 따른 제 2방법의 예를 도시한 도면.
도 3는 본 발명에 따른 시스템의 예를 도시한 도면.
예를 들면, 셋탑 박스 혹은 디지털 TV와 같은, 수신기라 불리우는 소비자 장비 장치에 신 소프트웨어를 효율적이고 신뢰성 있게 다운로드하는 기술을 기술한다. 효율은 다운로드를 수행하는데 필요한 비휘발성 메모리(non volatile memory)에 대해서 평가되며, 신뢰성은 중단에 대한 프로세스의 내성에 대해 평가된다. 다운로드는 서로 다른 방법들, 예를 들면, 공중을 통해서, 유선 송신, 위성 링크, 로컬 다운로드에 의해서, 혹은 카드나, 외부 장치들 등과 같은 하드웨어 모듈을 통해 수행될 수 있다.
신 소프트웨어는 영구적인(비휘발성) 메모리(예를 들면, 플래시 메모리)에 기입될 필요가 있다. 구(old) 소프트웨어를 신(new) 소프트웨어로 덮어쓰기하는 프로세스가 완전히 끝나지 않는 상태에서, 프로세스가 중단된다면(예를 들면, 파워 스위치 오프에 의해), 소프트웨어는 일반적으로 더 이상 동작하지 않을 것이다. 한 해결책은 구 소프트웨어에 덮어쓰기(overwrite)를 하지 않는 것이다. 그러나, 영구 메모리 풋프린트(footprint)의 크기는 신 및 구 소프트웨어 모두를 저장할 만큼 충분히 커야하는데, 이것은 비효율적이다.
저장 유닛에 소프트웨어 프로그램들을 효율적으로 다운로드하는 두 가지 방법을 제안하며, 이들을 각각 도 1 및 도 2를 참조하여 설명한다. 이들 두 방법들은 저장 유닛에 프로그램 코드를 다운로드받을 수 있게 하는 부트 코드 및 애플리케이션 코드를 포함하는 것인 소프트웨어 프로그램들에 적용된다. 이들 두 방법들에 대해서, 저장 유닛은 현(구) 부트 코드와 현(구) 애플리케이션 코드를 포함하는, 저장되어 있는 현(구) 소프트웨어 프로그램을 적어도 포함하는 것으로 가정한다.
제 1방법은,
- 다운로드 요청 시, 현 부트 코드를 덮어쓰지 않는 위치에 신 부트 코드를 다운로드하는 단계,
- 신 부트 코드로 현 부트 코드를 대체함을 나타내는 단계,
- 현 애플리케이션 코드에 오류가 있을 수 있음 나타내는 단계,
- 신 부트 코드를 덮어쓰지 않는 위치에 신 부트 코드에 연관된 신 애플리케이션 코드를 다운로드하는 단계,
- 신 애플리케이션 코드로 현 애플리케이션 코드를 대체함을 나타내는 단계를 포함한다.
블럭들이 저장 유닛의 메모리 영역들을 나타내는 것인 도 1을 참조하여 본 제 1방법을 5 단계 프로세스로 보다 상세히 예시하며, 여기서 블럭들은 저장 유닛의 메모리 영역들을 나타낸다.
- 시작: 현 소프트웨어를 두 부분으로 분할한다. 이중 한 부분은 현(current) 부트 코드라 하고 CBC라 표기된 것으로 소프트웨어의 다운로드를 수행할 수 있고, 다른 한 부분은 현 애플리케이션 코드라 하고 CAC라 표기된 것으로 전체의 애플리케이션을 구성하기 위해서 소프트웨어 다운로드 기능을 보완한다. "표시자들(indicators)"이라 하는 영구(persistent) 플래그들이 사용되고 이들은 각각의 코드가 영구 메모리에서 발견될 수 있는 위치가 아닌 곳 또는 플래깅(flagging) 신뢰도 기능과 결합한다. BCI라 표기한 부트 코드 표시자 플래그는 어떤 부트 코드가 사용에 유효한지를 나타낸다. ACI라 표기한, 애플리케이션 코드 표시자 플래그는 어떤 애플리케이션 코드가 사용에 유효한지를 나타낸다.
- 단계 1: 신 소프트웨어를 다운로드하기 전에, 현 애플리케이션 코드가 손상될 수 있다는 신호로 플래그(ACI)를 설정한다.
- 단계 2: 신 부트 코드(NBC)를 영구 기억 메모리에 기입한다. 프로세스에서 현 애플리케이션 코드(CAC)에 덮어쓰기할 수 있다.
- 단계 3: 신 코드를 성공적으로 기입한 후에, 이제부터는 현 부트 코드(CBC)대신 신 부트 코드(NBC)가 사용될 것임을 나타내도록 플래그(BCI)를 셋한다.
- 단계 4: 이어서 신 애플리케이션 코드(NAC)가 영구 메모리에 기입될 수 있다.
- 단계 5: 신 애플리케이션 코드가 영구 메모리에 성공적으로 기입되었을 때, 신 애플리케이션 코드가 준비되었음을 나타내도록 영구 플래그를 셋한다.
단계 2, 단계 3 및 단계 4에서, 영구 메모리에 기입하는 어떤 동작이든, 데이터의 무결성(integrity)을 체크할 수 있게 휘발성 메모리, 예를 들면, RAM(Random Access Memory)에의 임시 로딩이 선행될 수 있다.
안전 조치로서, 현 부트 코드는 신 부트 코드가 현 부트 코드에 덮어쓰여지기 전에 수신기의 영구 메모리의 다른 부분에 복사(백업)될 수 있고, 혹은 신 코드 복제 과정이 중단되었을 경우 수신기가 이러한 상황을 검출하여 현 부트 코드를 복구할 수 있게, 현 부트 코드는 이를 미리 저장해 둔 메모리에 신 부트 코드를 기입할 때 다른 위치에 복사할 수 있다. 부트 코드들은 보통 애플리케이션 코드들의 크기에 비해 매우 크기가 매우 작고, 현 부트 코드용으로 사용되는 메모리 공간은 신 애플리케이션 코드를 저장하는데 사용될 수 있기 때문에, 이 안전 조치는 어떤 별도의 메모리 공간도 필요로 하지 않거나 재사용 가능 메모리 공간의 매우 한정된 영역만을 필요로 할 것이다.
단계 3에서 최상의 신뢰성을 위해서, 신 부트 이미지들 중 어느 것이 올바른지를 나타내기 위해 단일 메모리 비트를 사용하는 것이 가능하다. 이 비트를 기입하는 프로세스가 중단된 경우, 0 혹은 1로서 읽혀질 수도 있으나, 결과는 임의이므로 두 이미지들 중 어느 것이든 무방하다.
애플리케이션 코드를 복수의 부분들로 분할할 수 있는 것이 또한 가능하다. 부트 코드만이 대체될 필요가 있다면 애플리케이션 코드의 부분들을 신 부트 코드로 덮어쓰기하는 것이 필요할 수 있다. 그러면 애플리케이션의 덮어쓰여진 부분들만이 다시 로딩되는 것이 필요하다.
구현에 관한 한, 소프트웨어 관리를 위해, 전술한 방법을 수행하는 데에, 이롭게 "플래시" 파일 시스템이 사용될 수 있다. 이 경우, 관리자 애플리케이션은, 프로세스가 중도에 중단될 경우 일관되지 않은 상태가 일어날 수 없게, 먼저, 구 부트 애플리케이션에 덮어쓰기 하기 전에 신 부트 애플리케이션을 저장해 둘 수 있게 하기 위해 파일 시스템에 충분한 공간을 확보하고, 플래깅(flagging)/표시(indication)가 확실하게 행해지게 해야 한다. 특히, 파일 포인터들이 한번의 동작으로 갱신될 수 있게 하는 것, 혹은 단일 비트 방식의 사용이 보장될 필요가 있다. 전체 부트 코드에 관해 계산된 체크섬(checksum)을 체크함으로써 부트 코드가 유효한지를 체크하는 것이 또한 가능하다. 이미지가 부분적으로 덮어쓰여졌다면, 무효한 것으로 드러날 것이다. 그러면, 시스템은 대안을 찾을 수 있다.
중요한 것은, 부트 코드가 메모리의 위치에 제약이 있을 수도 있기 때문에 메모리 내 동일 위치에 놓여지는 것이 일부 시스템들에선 중요하거나 편리할 수 있다. 이러한 시스템들에서, 다른 위치에 신 부트 코드를 기입하는 대신, 신 부트 코드를 복사하기 전에 혹은 복사 중에 구 부트 코드를 그 다른 위치로 옮겨놓을 수 있다. 프로세스가 중단되는 경우, 장치는 여전히 구 백업 부트 코드를 되찾아 이를 이의 원 위치에 복사하거나, 신 부트 코드 다운로드 프로세스를 다시 시작할 수 있다. (부분적으로 기입된) 부트 코드가 완전하지 않다는 검출은 "포인터", "비트" 혹은 "체크섬"을 통해 행해질 수 있다.
제 2방법은 현 부트 코드가 부트 영역에 있을 때, 즉 부트 어드레스에 가까운 위치에 있을 때 바람직하다. 이때, 현 부트 코드를 신 부트 코드로 대체할 때 이 영역에 기입하는 중에 부적절한 파워 오프로 부트 영역이 손상되거나 박스가 확실히 붕괴될 수 있다. 이를 피하는, 제 2방법을 이루는 해결책은, 결코 변경되지 않으며 바람직하게 보호된 메모리 영역에 저장된 부트 코드가 항시 존재하는 어드레스들로 점프할 것을 결정하는 메모리의 또 다른 섹터에서 소프트웨어가 부팅하는 것이다. 단지 두 개의 상이한 어드레스들, 즉 어드레스 1 및 어드레스 2가 도 2에 도시되었으나 그 이상의 어드레스들이 있을 수 있다. 이것은 안전의 이유 때문인 것으로, 기입 중에 부적절한 파워 오프가 일어난 경우, 실행될 유효한 BSL이 항시 존재하게 될 것이다. 이 부트 섹터는 많은 소프트웨어 소스들을 필요로 하지 않는다. 전체 크기를 거의 오버로드하지 않는 매우 작은 애플리케이션이다. 결코 소거되지 않을 것이므로, ROM 메모리에 저장될 수 있다. 하드웨어 제약이 적은 경우, 부트 섹터는 예를 들면, 직렬 링크를 통해, 전용 로컬 다운로드 시스템을 포함할 수 있다.
시스템 변경 전에 수신기의 저장 유닛에 소프트웨어 프로그램들을 다운로드하는 이 제 2방법을 이하에 기술한다. 제 2방법은,
- 초기에는 현 부트 코드가 저장된 제1 위치를 포인트하고 있는 부트 섹터를, 부트 코드의 사용이 유효하게 하기 위해 이 부트 코드를 저장하는 저장 유닛의 위치로 점프하게 정의하는 단계,
- 시스템 변경에 기인한 다운로드 요청 시, 신 시스템에서 동작하도록 된 신 부트 코드 및 신 애플리케이션 코드를 포함하는 제2 위치에 신 소프트웨어 프로그램을 다운로드하는 단계,
- 신 부트 코드가 저장된 제2 위치로 점프하는 단계를 포함한다.
현 부트 코드용으로 사용되는 메모리 공간은 예를 들면, 신 애플리케이션 코드를 저장하기 위해 이롭게 다시 사용될 수 있다.
부트 코드가 동일 위치에 항시 놓여지는 것이 중요한 시스템들에서, 전술한 방법은,
- 현 부트 코드를 제1 위치에 신 부트 코드로 대체하는 단계,
- 제1 위치로 점프하는 단계에 의해 완료될 수 있다.
전술한 바와 같이, 부트 섹터는 저장 유닛 내 혹은 저장 유닛과는 별도의 보호된 기억영역에 놓여지는 것이 바람직하다.
제 2방법의 바람직한 실시예에서, 부트 코드 및/또는 애플리케이션 코드는 저장 유닛의 영역에 저장되며, 이 영역은 특정의 소프트웨어 조건들 하에서 덮어쓰기가 되게 택일적으로 보호 및 비보호될 수 있다. 이 바람직한 실시예는 소프트웨어 명령들에 의해 보호/비보호 메모리 영역이 되게 하는 영구 메모리의 신 기술을 이용한다.
신 소프트웨어 프로그램은 사용자가 예를 들면, 가입자 카드, 안테나, 전화국에 신 서비스들을 비준받기 위해 전화하기 위해 안테나 포인팅을 변경하는 등, 자신의 수신기를 신 시스템으로 파라미터화할 수 있게 하는, 현 애플리케이션과 신 애플리케이션 코드간 링크인 중간 애플리케이션 코드를 포함할 수 있다.
구현에 대해선 제외하고, 제 2방법의 바람직한 실시예는 다음과 같이 요약될 수 있다.
- 단계 1: 다운로드 요청이 검출될 때, 현 부트 코드(BSL1)는 정규로, 신 부트 코드(BSL2)를 포함하는 신 애플레케이션을 다운로드한다.
- 단계 2: 신 부트 코드(BSL2) 메모리 영역을 보호한다.
- 단계 3: 현 부트 코드(BSL1) 메모리 영역은 비보호한다. 이제부터, 부트 섹터는 신 부트 코드(BSL2)로 점프할 것이다.
- 단계 4: 현 부트 코드(BSL1)을 소거한다.
- 단계 5: 신 부트 코드(BSL2)로의 정규 다운로드를 요청받을 수 있다.
- 종료: 신 부트 코드(BSL2)는 제2 프로토콜에 따라 Appli2를 로딩하고, 다시 정규 모드로 되돌아가므로, 동작은 그 결과로서 완전히 가역적이 된다.
도 2는 이 제 2방법의 실시예를 상세히 도시한 것이다. 블록들은 저장 유닛의 메모리 영역들을 나타낸다. 현 부트 코드 및 신 부트 코드를 각각 BSL1 및 BLS2로 표기한다. 현 애플리케이션 코드 및 신 애플리케이션 코드를 각각 Appli1 및 Appli2로 표기한다. 부트 섹터를 Boot로 표기한다. 방법은,
- 시작: 부트 섹트는 다운로드가 요청되지 않으면 현 애플리케이션(Appli1)으로 점프할 현 부트 코드(BSL1)따라서
- 단계 1: Appli1은 다운로드 요청을 검출하면, 신 애플리케이션을 정규로 다운로드하는 현 부트 코드(BSL1)에서 부트하는 박스를 리셋하는데, 그러나 실제로 이 신 애플리케이션은 미래의 신 부트 코드(BLS2)와 Switch Appli라 하는 중간 유효 애플리케이션 간의 링크이다. 마지막으로, 현 부트 코드(BSL1)은 중간 유효 애플리케이션(Switch Appli)으로 점프한다. 이 단계에서, 신 부트 코드(BLS2)는 애플리케이션 데이터로서, Switch Appli에 단순히 연결된 것으로, 아직 기능하지 않는다. 따라서, 현 부트 코드(BLS1)는 Switch Appli 진입점으로 곧바로 점프한다. 신 부트 코드(BLS2)를 Switch Appli에 링크하는 지점은 다운로드 횟수를 한정한다.
- 단계 2: Switch Appli는 저장되는 메모리 영역을 보호한다.
- 단계 3: Switch Appli는 BSL1이 저장되는 메모리 영역을 비보호한다. 이제부터, 리셋 후에, 부트 섹터는 Switch Appli로 점프할 것이다. Switch Appli는 사용자에게 변화를 경고하고 사용자에게 예를 들면, 안테나 방위를 변경, 또 다른 네트워크에 액세스하기 위한 신 액세스 코드의 변경 등, 시스템의 일부 파라미터들을 맞추게 하는 것을 경고하기 위해 맨-머신 인터페이스를 디스플레이할 수 있다.
- 단계 4: Switch Appli는 현 부트 코드(BSL1)을 소거하고, 마지막으로, 혹은 요구된다면, 신 부트 코드(BSL2)를 이의 최종의 위치에, 예를 들면, 현 부트 코드(BSL1) 대신 기입한다.
- 단계 5: Switch Appli는 신 부트 코드(BSL2) 메모리 영역을 보호한다. 결국, 이제부터, 부트 섹터는 신 부트 코드(BSL2)에 점프할 것이다.
- 단계 6: Swtich Appli는 저장되는 메모리 영역을 비보호하고, 신 부트 코드(BSL2)에 정규 다운로드를 요청하고 박스를 리셋한다.
- 종료: BSL2는 제2 프로토콜에 관하여 Appli2를 로딩하고, 정규 모드로 되돌아간다. 결국, 이 동작은 완전히 가역적이다.
도 2에 도시된 예에서, 각각의 리셋에서, 부트 섹터는 최상으로 보호된 섹터로 점프할 것이다(도 2에서 화살표들 참조), 그러나, 타 조건들이 정의될 수 있다.
도 3는 송신기(31), 수신기(32), 및 전술한 방법들 중 한 방법에 따라 송신채널을 통해 송신기에서 수신기로 소프트웨어를 다운로드하기 위한 송신채널(33)을 포함하는 시스템을 도시한다. 방송 시스템에서 다운링크 송신 중에, 예를 들면, 사용자 장비는 수신기일 것이며 기지국 혹은 서버는 송신기일 것이다.
방송 시스템의 디지털 수신기들의 경우에, 현에는 동일 하드웨어에 의해 현 지원되나, 소프트웨어 크기의 이유로, 전용 소프트웨어(BSL 및 애플리케이션)에 의해 지원될 수 있는 두 가지 표준(DVB 및 DSS)이 있다. 본 발명은 기술(예를 들면, DSS 표준에 호환되는)을 이용하여 제품이 출시될 수 있게 하고 아울러 미래에 완전히 다른 기술(예를 들면, DVB 표준에 호환되는)을 다운로드할 가능성을 유지할 수 있게 한다. 초기에는 현 시스템 기술에 호환되는 소프트웨어를 포함하는 수신기의 제공업자는 제품을 출시할 때 신 시스템들의 명세를 알 필요는 없다.
지금까지의 도면 및 이들의 설명은 예시적인 것이고 본 발명을 한정하는 것은 아니다. 첨부된 청구항의 범위 내에 드는 많은 대안들이 있임이 명백할 것이다. 이에 관해, 다음의 맺음말을 하여 둔다. 하드웨어 혹은 소프트웨어, 혹은 이 둘로 기능들을 구현하는 많은 방법들이 있다. 이에 대해, 도면들은 매우 도식적이고, 각 도면은 본 발명의 단지 한가지 가능한 실시예를 나타낸다. 따라서, 도면이 서로 다른 블록들로서 서로 상이한 기능들을 나타내고 있을지라도, 이것은 단일의 하드웨어 혹은 소프트웨어가 몇가지 기능들을 수행하는 것을 배제하는 것도 아니고, 하드웨어 혹은 소프트웨어, 혹은 이 둘 다를 결합한 것이 어떤 기능을 수행하는 것을 배제하는 것도 아니다.
청구항에서 참조기호는 청구항을 한정하는 것으로 해석되어서는 안 된다. 포함하다라는 것은 청구항에 기재된 것 이외의 요소들 혹은 단계들의 존재를 배제하는 것은 아니다. 단수 표현의 구성요소는 복수의 이러한 구성요소들 혹은 단계들의 존재를 배제하지 않는다.

Claims (14)

  1. 송신 시스템에서, 소프트웨어 프로그램들을 저장 유닛에 다운로드하는 방법으로서, 상기 소프트웨어 프로그램들은 부트 코드 및 애플리케이션 코드를 포함하고, 상기 부트 코드는 상기 애플리케이션 코드의 다운로드를 허용하며, 상기 저장 유닛은 적어도 현 부트 코드를 포함하는, 상기 방법은,
    다운로드 요청 시, 상기 현 부트 코드에 덮어쓰지 않는 위치에 신 부트 코드를 다운로드하는 단계,
    상기 신 부트 코드가 상기 현 부트 코드를 대체함을 나타내는 단계,
    상기 신 부트 코드에 덮어쓰지 않는 위치에 상기 신 부트 코드와 관련된 신 애플리케이션 코드를 다운로드하는 단계,
    상기 신 애플리케이션 코드가 유효함을 나타내는 단계를 포함하는, 다운로드 방법.
  2. 송신 시스템에서, 소프트웨어 프로그램들을 저장 유닛으로 다운로드하는 방법으로서, 상기 소프트웨어 프로그램들은 부트 코드 및 애플리케이션 코드를 포함하고, 상기 부트 코드는 상기 애플리케이션 코드의 다운로드를 허용하고, 상기 저장 유닛은 제 1 위치의 상기 저장 유닛에 저장된 현 부트 코드를 포함하여 저장된 적어도 현 소프트웨어 프로그램을 포함하고, 상기 방법은,
    상기 저장 유닛의 위치로 점프하기 위한 부트 섹터를 정의하는 단계로서, 부트 코드는 상기 부트 코드의 사용을 유효하게 하기 위해 저장되고, 상기 부트 섹터는 상기 현 부트 코드가 저장되는 상기 제 1위치를 초기에 포인팅하는, 상기 부트 섹터를 정의하는 단계,
    다운로드 요청 시, 신 부트 코드 및 신 애플리케이션 코드를 포함하는 신 소프트웨어 프로그램을 제 2위치에 다운로드하는 단계,
    상기 신 부트 코드가 저장된 상기 제 2위치로 점프하는 단계를 포함하는, 다운로드 방법.
  3. 제 2항에 있어서, 상기 신 부트 코드가 저장된 상기 제 2위치로 점프하는 단계는,
    상기 제 1위치에서 상기 현 부트 코드를 상기 신 부트 코드로 대체하는 단계,
    상기 제 1위치로 점프하는 단계를 따르는, 다운로드 방법.
  4. 제 2항에 있어서, 상기 부트 섹터는 상기 저장 유닛의 보호된 저장 영역에 위치되는, 다운로드 방법.
  5. 제 2항에 있어서, 상기 부트 섹터는 상기 저장 유닛과는 별도의 보호된 저장 영역에 위치되는, 다운로드 방법.
  6. 제 2항에 있어서, 상기 현 부트 코드는 상기 저장 유닛의 보호된 영역에 저장되며, 상기 영역은 특정 소프트웨어 조건들 하에서 덮어쓰여지도록 비보호될 수 있는, 다운로드 방법.
  7. 제 2항에 있어서, 상기 신 소프트웨어 프로그램은 상기 저장 유닛의 영역에 저장되고, 상기 영역은 보호될 수 있으며 특정의 소프트웨어 조건들 하에서 덮어쓰여지도록 비보호될 수 있는, 다운로드 방법.
  8. 제 2항에 있어서, 상기 신 소프트웨어 프로그램은 중간 애플리케이션 코드를 포함하고, 상기 중간 애플리케이션은 상기 신 소프트웨어 프로그램을 파라미터화할 수 있게 하는 상기 신 애플리케이션 코드와 상기 현 애플리케이션 코드 간의 링크인, 다운로드 방법.
  9. 송신 시스템에 의해 송신되는 소프트웨어 프로그램들을 수신하기 위한 수신기에 있어서, 상기 수신기는 제 1항 내지 제 8항 중 어느 한 항의 상기 방법을 수행하기 위한 수단을 포함하는, 수신기.
  10. 제 9항에 있어서, 제 1항 내지 제 8항 중 어느 한 항의 상기 방법을 수행하기 위한 상기 수단은 파일 시스템을 포함하는, 수신기.
  11. 제 9항에 있어서, 상기 저장 유닛은 소프트웨어 명령들에 따라 메모리 영역의 보호/비보호를 허용하는 영구 메모리인, 수신기.
  12. 송신 시스템에 있어서, 소프트웨어 프로그램들을 송신하는 송신기 및 상기 소프트웨어 프로그램들 수신하기 위한 적어도 수신기를 포함하고, 상기 수신기는 제 1항 내지 제 8항 중 어느 한 항의 상기 방법을 수행하기 위한 수단을 포함하는, 송신 시스템.
  13. 명령들의 세트를 계산하는 수신기를 위한 컴퓨터 프로그램 제품에 있어서, 상기 수신기에 로딩되었을 때, 상기 수신기가 제 1항 내지 제 8항 중 어느 한 항의 상기 방법을 수행하게 하는, 컴퓨터 프로그램 제품.
  14. 컴퓨터 프로그램을 전달하기 위한 신호에 있어서, 상기 컴퓨터 프로그램은 제 1항의 상기 방법을 수행하도록 구성된, 신호.
KR10-2004-7021292A 2002-06-28 2003-06-20 수신기에의 소프트웨어 다운로드 KR20050022024A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2004-7021292A KR20050022024A (ko) 2002-06-28 2003-06-20 수신기에의 소프트웨어 다운로드

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02291623.3 2002-06-28
KR10-2004-7021292A KR20050022024A (ko) 2002-06-28 2003-06-20 수신기에의 소프트웨어 다운로드

Publications (1)

Publication Number Publication Date
KR20050022024A true KR20050022024A (ko) 2005-03-07

Family

ID=41784429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7021292A KR20050022024A (ko) 2002-06-28 2003-06-20 수신기에의 소프트웨어 다운로드

Country Status (1)

Country Link
KR (1) KR20050022024A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101510808B1 (ko) * 2007-05-21 2015-04-10 톰슨 라이센싱 네트워크 단말기에서의 강력한 펌웨어 업그레이드

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101510808B1 (ko) * 2007-05-21 2015-04-10 톰슨 라이센싱 네트워크 단말기에서의 강력한 펌웨어 업그레이드

Similar Documents

Publication Publication Date Title
US7836444B2 (en) Mobile communication terminal having embedded system for software download and method for software download
US6209127B1 (en) Terminal device capable of remote download, download method of loader program in terminal device, and storage medium storing loader program
US7100011B2 (en) Method and system for reducing storage requirements for program code in a communication device
KR100555162B1 (ko) 수신기 및 프로그램 갱신 방법
CA2304144C (en) Downloading data
CN102830984B (zh) 固件更新的方法、芯片以及通信终端
US8839227B2 (en) Preventing overwrite of nonessential code during essential code update
US6615404B1 (en) Method and apparatus for downloading software into an embedded-system
CN101377744B (zh) 一种终端设备软件升级恢复方法及装置
US7698698B2 (en) Method for over-the-air firmware update of NAND flash memory based mobile devices
KR100440950B1 (ko) 네트워크 환경에 있어서 소프트웨어 업그레이드 방법 및그에 따른 네트워크 디바이스
EP1527388B1 (en) Software download into a receiver
US20050210458A1 (en) Communication terminal software updating method, communication terminal, and software updating method
CN109558160A (zh) 升级方法、嵌入式系统
JP2007528534A (ja) システムソフトウェア更新サービスを通知するためのローダの利用
EP1679599B1 (en) File update system and boot management system of mobile communication terminal, and corresponding methods
JP2002099441A (ja) 通信端末装置及び通信端末装置の動作方法
US6895463B2 (en) Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
CN112860291A (zh) 固件升级方法及装置
KR101085681B1 (ko) 이동통신 단말기의 데이터 복구 시스템 및 방법
KR20050022024A (ko) 수신기에의 소프트웨어 다운로드
CN112527371B (zh) 一种引导加载程序升级方法、装置、电子设备及存储介质
CN110913417A (zh) 一种保护射频参数的方法、系统、设备及存储介质
US20080300019A1 (en) Cellular phone
KR100622816B1 (ko) 이동 단말장치의 시스템 소프트웨어 업데이트 방법 및시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application