RU2375769C2 - Automatic back up saving in modifications of embedded software - Google Patents

Automatic back up saving in modifications of embedded software Download PDF

Info

Publication number
RU2375769C2
RU2375769C2 RU2006135632/09A RU2006135632A RU2375769C2 RU 2375769 C2 RU2375769 C2 RU 2375769C2 RU 2006135632/09 A RU2006135632/09 A RU 2006135632/09A RU 2006135632 A RU2006135632 A RU 2006135632A RU 2375769 C2 RU2375769 C2 RU 2375769C2
Authority
RU
Russia
Prior art keywords
memory
address space
block
software
delta file
Prior art date
Application number
RU2006135632/09A
Other languages
Russian (ru)
Other versions
RU2006135632A (en
Inventor
Петер ЛЮНГ (SE)
Петер ЛЮНГ
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
Priority claimed from EP04005700A external-priority patent/EP1574952B1/en
Application filed by Сони Эрикссон Мобайл Коммьюникейшнз Аб filed Critical Сони Эрикссон Мобайл Коммьюникейшнз Аб
Publication of RU2006135632A publication Critical patent/RU2006135632A/en
Application granted granted Critical
Publication of RU2375769C2 publication Critical patent/RU2375769C2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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
    • 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

FIELD: physics; computer engineering.
SUBSTANCE: invention relates to methods of modifying software through reception and execution of delta-files. Software is partitioned and stored in several memory units (201-204), defined in the address space (211) of the physical memory (48) in the device. The method includes stages on which: an additional memory unit (212), which is associated with the said several memory units, is determined; the said additional memory unit is cleared so as to determine the region of the additional memory unit; updated data are recorded for the first of the said several memory units, as defined by the said delta-file, into the said additional memory unit; the said memory unit is cleared, thereby shifting the said region of the additional memory unit by one unit; and updated data are recorded for the second of the said several memory units, as defined by the said delta-file, into the said first memory unit.
EFFECT: reduced power loss when modifying an assignment object.
8 cl, 5 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Настоящее изобретение определяет способы для применения в компьютерах и микропроцессорных системах для модифицирования программного обеспечения с помощью приема и исполнения дельта-файлов для модификации объекта назначения. В частности, настоящее изобретение имеет отношение к улучшенным решениям для того, чтобы справляться с возможной потерей энергоснабжения во время модификации объекта назначения.The present invention defines methods for use in computers and microprocessor systems for modifying software by receiving and executing delta files to modify a target. In particular, the present invention relates to improved solutions in order to cope with a possible loss of power supply during the modification of the target.

Предшествующий уровень техникиState of the art

Существует несколько технологий, которые предоставляют возможность модификации двоичных файлов программного обеспечения, посылая только отличия между текущей версией программного обеспечения и обновленной версией программного обеспечения. Отличие в новой версии конкретной части программного обеспечения обычно представляет собой приблизительно 1-10% от исходных двоичных файлов. Процедура использования файла отличий, обычно называемого дельта-файлом, особенно выгодна, когда обновления посылаются по однонаправленным каналам передачи данных с низкой пропускной способностью, таким как GPRS (пакетная радиосвязь общего назначения). Эта технология называется эфирной модификацией встроенного программного обеспечения и в настоящее время стандартизирована в стандарте OMA. Один пример того, как этот вид модификации работает, может быть обрисован следующим образом.There are several technologies that provide the ability to modify binary software files, sending only the differences between the current software version and the updated software version. The difference in the new version of a specific piece of software is usually about 1-10% of the source binary. The procedure for using a diff file, commonly called a delta file, is especially beneficial when updates are sent over low bandwidth unidirectional data channels, such as GPRS (General Purpose Packet Radio). This technology is called on-air firmware modification and is currently standardized in the OMA standard. One example of how this type of modification works can be outlined as follows.

Мобильный телефон, являющийся устройством с микропроцессорным управлением, которое нужно модифицировать, в настоящее время имеет программное обеспечение V1. Цель состоит в том, чтобы обновить программное обеспечение до самой последней рабочей версии V2. Для обновления программного обеспечения в мобильном телефоне выполняется следующая процедура:The mobile phone, which is a microprocessor-controlled device that needs to be modified, currently has V1 software. The goal is to upgrade the software to the latest working version of V2. To update the software on your mobile phone, the following procedure is performed:

1) компилируется и компонуется конечное программное обеспечение, V2;1) final software is compiled and linked, V2;

2) вычисляется разность D12 двоичных файлов V1 и двоичных файлов V2. D12 содержит всю информацию, необходимую для создания V2 из V1;2) the difference D12 of the binary files V1 and the binary files V2 is calculated. D12 contains all the information needed to create V2 from V1;

3) D12 доставляется к объекту назначения, например, посредством GPRS;3) D12 is delivered to the destination, for example, via GPRS;

4) допускается автоматическое перезаписывание на флэш-память, то есть модификация, целевого устройства посредством использования текущего двоичного файла V1 и D12 для создания V2 на объекте назначения.4) automatic overwriting to flash memory, that is, modification, of the target device by using the current binary file V1 and D12 to create V2 at the target is allowed.

Целевое устройство теперь обновлено до V2 всего лишь с помощью отправки небольшого пакета D12 обновления на устройство.The target device is now upgraded to V2 just by sending a small update package D12 to the device.

Критическим этапом в вышеописанном процессе обновления является модификация объекта назначения. Вследствие того что конечное программное обеспечение, например RTOS (операционная система реального времени) и приложения, перезаписывается, потеря энергоснабжения может быть губительной для устройства. Процесс обновления должен на 100% обеспечивать восстановление при сбоях, подразумевается, что процесс обновления должен обладать способностью продолжаться после непредвиденного нарушения энергоснабжения. Способ для реализации способности к отказоустойчивости на существующем уровне техники называется двухфазным контролем транзакции, который уже используется во множестве приложений, таких как базы данных. Идея состоит в том, чтобы сохранять копию старой информации во время обновления. Только когда обновление завершено, старая информация удаляется. Таким образом, всегда есть возможность возвратиться к последнему состоянию, если обновление было сорвано во время обновления.A critical step in the above update process is the modification of the destination. Due to the fact that the final software, such as RTOS (real-time operating system) and applications, is overwritten, the loss of power supply can be fatal to the device. The upgrade process should provide 100% recovery from failures, it is understood that the upgrade process must be able to continue after an unforeseen power failure. A method for implementing the resiliency capability of the prior art is called biphasic transaction control, which is already used in a variety of applications, such as databases. The idea is to keep a copy of the old information during the update. Only when the update is complete is the old information deleted. Thus, there is always the opportunity to return to the last state if the update was disrupted during the update.

Для устройств, использующих флэш-память NOR-типа, память разделяется на блоки одинакового размера, обычно 64 кБ. Существуют особые ограничения при записи на NOR-устройство. Могут стираться сразу только целые блоки, при этом все биты в блоке устанавливаются в значение 1. Запись может быть выполнена на уровне байта, но это возможно только для изменения состояния бита от 1 к 0. Модификация NOR-устройства выполняется блок за блоком. Для обеспечения возможности восстановления при сбоях каждый блок сначала копируется в специальный резервный блок, перед тем как обновленный блок будет записан в исходный блок. Эта процедура на существующем уровне техники приведена в настоящем описании со ссылкой на Фиг. 1.For devices using NOR-type flash memory, the memory is divided into blocks of the same size, usually 64 kB. There are special restrictions when recording to a NOR device. Only whole blocks can be erased at once, while all the bits in the block are set to 1. Recording can be done at the byte level, but this is only possible to change the state of a bit from 1 to 0. Modification of the NOR device is carried out block by block. To ensure the possibility of recovery during failures, each block is first copied to a special backup block before the updated block is written to the original block. This prior art procedure is described herein with reference to FIG. one.

Программное обеспечение конкретного устройства состоит из четырех программных блоков 1-4, хранящихся в четырех блоках 101-104 памяти. Блоки 101-104 памяти заданы в области 111 памяти на физической памяти устройства. Блоки 101-104 памяти изображены вертикально, что представлено для отдельных состояний 106-110 во время процесса обновления. Каждый столбец представляет новое состояние в процессе обновления, выполняющемся слева направо, как обозначено стрелками на чертеже. Процесс также сопоставляется с дельта-пакетом, информацией о состоянии и приложением обновления, но они не проиллюстрированы здесь ради разъяснения общего процесса как такового. В течение процесса обновления уже были обновлены два программных блока 1 и 2, что является состоянием, изображенным в столбце 106. Следующим должен быть обновлен блок 3. Чтобы иметь возможность восстановления при возможной потере энергоснабжения, информация должна постоянно сохраняться. Информация состояния используется, чтобы отслеживать, какой блок обрабатывается и в каком состоянии обновления вы в настоящее время. Кроме того, старый блок должен сохраняться, пока новый блок не сгенерирован. Процесс обновления блока 3 осуществляется путем предварительного стирания резервного блока 105, который также задается в области 111 памяти, при переходе в состояние 107. Затем данные блока 3 копируются из блока 103 в резервный блок 105 при переходе в состояние 108. Потом блок 103 стирается при переходе в состояние 109, оставляя пустой блок 103. В заключение при переходе в состояние 110 выполняется процесс записи в блок 103, модифицируя в нем данные до нового блока 3. В качестве альтернативы, новый блок 3 создается в резервном блоке 105, вместо того чтобы копировать старый блок 3 в резервный блок 105.The software of a particular device consists of four program blocks 1-4 stored in four memory blocks 101-104. The memory blocks 101-104 are defined in the memory area 111 on the physical memory of the device. The memory blocks 101-104 are depicted vertically, which is presented for individual states 106-110 during the update process. Each column represents a new state in the update process, running from left to right, as indicated by the arrows in the drawing. The process is also mapped to a delta package, status information, and the update application, but they are not illustrated here to clarify the overall process as such. During the update process, two program blocks 1 and 2 have already been updated, which is the state shown in column 106. Block 3 should be updated next. In order to be able to recover in case of a possible loss of power supply, the information must be constantly stored. The status information is used to track which block is being processed and in which update status you are currently in. In addition, the old block must be kept until a new block is generated. The update process of block 3 is carried out by pre-erasing the backup block 105, which is also set in the memory area 111, upon transition to state 107. Then, the data of block 3 are copied from block 103 to the backup block 105 upon transition to state 108. Then, block 103 is erased upon transition to state 109, leaving block 103 empty. Finally, when switching to state 110, the process of writing to block 103 is performed, modifying the data in it to the new block 3. Alternatively, a new block 3 is created in the backup block 105, instead of copying Insert the old block 3 into the backup block 105.

Без использования резервного блока 105 потеря энергоснабжения после стирания блока и прежде чем новый блок будет полностью записан, была бы непоправима, поскольку ни исходный блок, ни целевой блок не будут доступны. При использовании вышеуказанной процедуры всегда есть возможность возобновить обновление с того места, где оно было прервано, путем перезаписи последнего блока и продолжения обновления.Without the use of the backup unit 105, the loss of power after erasing the unit and before the new unit is completely written would be irreparable, since neither the source unit nor the target unit will be available. When using the above procedure, it is always possible to resume the update from the place where it was interrupted by overwriting the last block and continuing the update.

Проблемой этой процедуры существующего уровня техники является то, что время записи в течение обновления на флэш-памяти удваивается, потому что каждый блок должен быть записан дважды для каждого блока для обеспечения восстановления при потере энергоснабжения. Для флэш-памяти NOR-типа обычная скорость записи составляет приблизительно 200 килобайт в секунду. Тогда время записи блоков при обновлении 16-мегабайтного образа составляет примерно 16 МБ * 2/0,2=160 с, если все блоки должны быть обновлены. В течение обновления устройство совершенно непригодно для использования, поэтому важно удерживать это время настолько малым, насколько возможно. В зависимости от размера обновления и от того, как изменения кода распределены в новом двоичном образе, число блоков, которые должны быть обновлены, может быть различным. Опыт показывает, что большинство обновлений требуют обновления большинства всех доступных блоков. Существуют способы уменьшить число блоков, которые должны быть обновлены, структурируя двоичный образ таким образом, что обновления концентрируются в меньших частях образа. Однако эти методики довольно сложные.A problem with this prior art procedure is that the recording time during the update on the flash memory is doubled, because each block must be recorded twice for each block to ensure recovery from a loss of power supply. For NOR type flash memory, the usual write speed is approximately 200 kilobytes per second. Then, the recording time of blocks when updating a 16-megabyte image is approximately 16 MB * 2 / 0.2 = 160 s, if all blocks must be updated. During the update, the device is completely unusable, so it is important to keep this time as small as possible. Depending on the size of the update and how the code changes are distributed in the new binary image, the number of blocks that need to be updated may vary. Experience has shown that most updates require updating most of all available blocks. There are ways to reduce the number of blocks that need to be updated by structuring the binary image so that updates are concentrated in smaller parts of the image. However, these techniques are quite complex.

Раскрытие изобретенияDisclosure of invention

Основной задачей настоящего изобретения является предоставить улучшенное решение для того, чтобы гарантировать, что процесс обновления программного обеспечения восстанавливаем после прерывания, например, в результате потери энергоснабжения. В частности, задачей является предоставить решение для модифицирования программных двоичных файлов при помощи дельта-файлов, что минимизирует время обновления объекта назначения.The main objective of the present invention is to provide an improved solution in order to ensure that the software update process is restored after interruption, for example, as a result of loss of power supply. In particular, the objective is to provide a solution for modifying software binaries with delta files, which minimizes the update time of the target.

Согласно первому аспекту настоящего изобретения, эта задача выполняется способом обновления программного обеспечения, представленного в первой версии на устройстве, путем приема и исполнения дельта-файла для модифицирования упомянутой первой версии до второй версии, причем данное программное обеспечение разделено и сохранено во множестве блоков памяти, определенных в адресном пространстве физической памяти в устройстве, при этом способ содержит этапы, на которых:According to a first aspect of the present invention, this task is performed by a method of updating software presented in a first version on a device by receiving and executing a delta file for modifying said first version to a second version, said software being divided and stored in a plurality of memory blocks defined in the address space of physical memory in the device, the method comprises the steps of:

- определяют дополнительный блок памяти, ассоциированный с упомянутым множеством блоков памяти;- determine an additional memory block associated with the aforementioned set of memory blocks;

- стирают упомянутый дополнительный блок памяти, чтобы определить область дополнительного блока памяти;- erasing said additional memory unit to determine an area of the additional memory unit;

- записывают обновленные данные для первого из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый дополнительный блок памяти;- write the updated data for the first of said plurality of memory blocks, as specified by said delta file, into said additional memory block;

- стирают упомянутый первый блок памяти, тем самым перемещая упомянутую область дополнительного блока памяти на один блок; и- erasing said first memory block, thereby moving said region of the additional memory block by one block; and

- записывают обновленные данные для второго из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый первый блок памяти.- write updated data for the second of said plurality of memory blocks, as specified by said delta file, into said first memory block.

В предпочтительном варианте осуществления упомянутый дополнительный блок памяти определяется как соседний блок памяти для упомянутого первого блока памяти в упомянутом адресном пространстве.In a preferred embodiment, said additional memory unit is defined as an adjacent memory unit for said first memory unit in said address space.

Полезно, если способ содержит этап, на котором обрабатывают все из упомянутого множества блоков памяти один за другим, начиная с упомянутого дополнительного блока памяти, путем записи данных в один из упомянутого множества блоков памяти из следующего блока памяти в упомянутом адресном пространстве во время модифицирования, как задано упомянутым дельта-файлом, пока все из упомянутого множества блоков памяти не будут сдвинуты на один интервал в адресном пространстве.It is useful if the method comprises the step of processing all of said plurality of memory blocks, one after another, starting from said additional memory block, by writing data to one of said plurality of memory blocks from the next memory block in said address space during modification, as is specified by said delta file until all of the plurality of memory blocks are shifted by one interval in the address space.

В одном варианте осуществления способ содержит этап, на котором изменяют порядок записи блоков памяти в адресном пространстве с упомянутой модификации от первой версии до второй версии на другую модификацию от упомянутой второй версии до третьей версии.In one embodiment, the method comprises the step of changing the writing order of memory blocks in the address space from said modification from the first version to the second version to another modification from said second version to the third version.

Предпочтительно, способ содержит этапы, на которых:Preferably, the method comprises the steps of:

- посредством упомянутого устройства перед приемом и исполнением дельта-файла соединяются с сервером и передают информацию, относящуюся к состоянию текущего адресного пространства, определяющую, какого типа дельта-файл применим для модифицирования упомянутого программного обеспечения, в зависимости от имеющегося положения упомянутого дополнительного блока в упомянутом адресном пространстве, причем первый тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в одном порядке в адресном пространстве, а второй тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в обратном порядке в адресном пространстве;- by means of the aforementioned device, before receiving and executing the delta file, they are connected to the server and transmit information related to the state of the current address space, which determines what type of delta file is applicable for modifying the mentioned software, depending on the existing position of the said additional unit in the said address space, and the first type of delta file is designed to modify the software presented in the mentioned memory blocks in one pore order in the address space, and the second type of delta file is designed to modify the software represented in said memory blocks in reverse order in the address space;

- загружают дельта-файл подходящего типа дельта-файла с упомянутого сервера на упомянутое устройство; и- download the delta file of the appropriate type of delta file from the server to the device; and

- модифицируют упомянутое программное обеспечение, используя подходящий дельта-файл.- modify the mentioned software using a suitable delta file.

В одном варианте осуществления способ содержит этап, на котором преобразуют начальный адрес в пределах упомянутого адресного пространства в загрузочном коде для упомянутого программного обеспечения в зависимости от перемещения данных между упомянутыми блоками памяти во время записи, как задано упомянутым дельта-файлом.In one embodiment, the method comprises converting the start address within said address space in the boot code for said software depending on the movement of data between said memory blocks during recording, as specified by said delta file.

Согласно второму аспекту настоящего изобретения, поставленная задача решается с помощью компьютерного программного продукта, предназначенного для использования в электронном устройстве с компьютерным управлением для обновления программного обеспечения, представленного в первой версии на этом устройстве, причем данное устройство содержит средство для приема и исполнения дельта-файла для модифицирования упомянутой первой версии до второй версии, причем данное программное обеспечение разделено и сохранено во множестве блоков памяти, определенных в адресном пространстве физической памяти в устройстве, при этом упомянутый компьютерный программный продукт содержит исполняемый компьютерный программный код, разработанный для предписания устройству выполнять этапы:According to a second aspect of the present invention, the problem is solved using a computer software product intended for use in an electronic device with computer control for updating the software presented in the first version of this device, and this device contains means for receiving and executing a delta file for modifying the aforementioned first version to a second version, wherein the software is divided and stored in a plurality of memory units Defined in an address space in a physical memory device, said computer program product comprises executable computer program code is designed for instructing the apparatus to perform the steps of:

- определения дополнительного блока памяти, ассоциированного с упомянутым множеством блоков памяти;- determining an additional memory block associated with said plurality of memory blocks;

- стирания упомянутого дополнительного блока памяти, чтобы определить область дополнительного блока памяти;- erasing said additional memory unit to determine an area of the additional memory unit;

- записи обновленных данных для первого из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый дополнительный блок памяти;- recording updated data for the first of said plurality of memory units, as specified by said delta file, into said additional memory unit;

- стирания упомянутого первого блока памяти, тем самым перемещая упомянутую область дополнительного блока памяти на один блок; иerasing said first memory block, thereby moving said region of the additional memory block by one block; and

- записи обновленных данных для второго из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый первый блок памяти.- recording updated data for the second of said plurality of memory blocks, as specified by said delta file, into said first memory block.

В одном варианте осуществления, компьютерный программный продукт содержит исполняемый компьютерный программный код, разработанный для предписания устройству выполнять этапы каждого из вышеупомянутых этапов способа.In one embodiment, the computer program product comprises executable computer program code designed to cause the device to perform the steps of each of the above method steps.

Согласно третьему аспекту настоящего изобретения, поставленная задача решается с помощью терминала радиосвязи, содержащего компьютерную систему с соответствующим компьютерным кодом для обновления программного обеспечения, представленного в первой версии на терминале, и средство для приема и исполнения дельта-файла для модифицирования упомянутой первой версии до второй версии, причем данное программное обеспечение разделено и сохранено во множестве блоков памяти, определенных в адресном пространстве физической памяти в терминале, при этом дополнительный блок памяти, соответствующий упомянутому множеству блоков памяти, определен в упомянутом адресном пространстве, упомянутый терминал дополнительно содержит средство для стирания упомянутого дополнительного блока памяти для определения области дополнительного блока памяти; средство записи данных для записи обновленных данных для первого из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый дополнительный блок памяти; средство стирания данных для стирания упомянутого первого блока памяти для перемещения упомянутой области дополнительного блока памяти на один блок; при этом упомянутое средство записи данных выполнено с возможностью записи обновленных данных для второго из упомянутого множества блоков памяти, как задано упомянутым дельта-файлом, в упомянутый первый блок памяти.According to a third aspect of the present invention, the problem is solved using a radio communication terminal comprising a computer system with corresponding computer code for updating the software presented in the first version on the terminal, and means for receiving and executing a delta file for modifying said first version to the second version moreover, this software is divided and stored in a variety of memory blocks defined in the address space of the physical memory in the terminal, When this extra memory block corresponding to said plurality of memory blocks is defined in said address space, said terminal further comprising means for erasing said extra memory block to define an additional area of the storage unit; data recording means for recording updated data for a first of said plurality of memory units, as specified by said delta file, into said additional memory unit; data erasure means for erasing said first memory block for moving said region of the additional memory block by one block; wherein said data recording means is configured to record updated data for a second of said plurality of memory blocks, as specified by said delta file, into said first memory block.

В одном варианте осуществления, упомянутый дополнительный блок памяти является соседним для упомянутого первого блока памяти в упомянутом адресном пространстве.In one embodiment, said additional memory unit is adjacent to said first memory unit in said address space.

Предпочтительно, чтобы упомянутое средство записи данных было выполнено с возможностью обработки всех из упомянутого множества блоков памяти, один за другим, начиная с упомянутого дополнительного блока памяти, путем записи данных в один из упомянутого множества блоков памяти из следующего блока памяти в упомянутом адресном пространстве, во время модифицирования, как задано упомянутым дельта-файлом, пока все из упомянутого множества блоков памяти не будут сдвинуты на один интервал в адресном пространстве.Preferably, said data recording means is adapted to process all of said plurality of memory blocks, one after the other, starting from said additional memory block, by writing data to one of said plurality of memory blocks from the next memory block in said address space, in the modification time, as specified by the said delta file, until all of the said plurality of memory blocks are shifted by one interval in the address space.

Полезно, чтобы терминал радиосвязи содержал средство для изменения порядка записи блоков памяти в адресном пространстве с упомянутой модификации от первой версии до второй версии на вторую модификацию от упомянутой второй версии до третьей версии.Advantageously, the radio communication terminal comprises means for changing the recording order of memory blocks in the address space from said modification from the first version to the second version to the second modification from said second version to the third version.

В предпочтительном варианте осуществления, упомянутый терминал выполнен с возможностью соединения с сервером перед приемом и исполнением дельта-файла для передачи информации, относящейся к состоянию текущего адресного пространства, определяющей, какого типа дельта-файл применим для модифицирования упомянутого программного обеспечения, в зависимости от имеющегося положения упомянутого дополнительного блока в упомянутом адресном пространстве, причем первый тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в одном порядке в адресном пространстве, а второй тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в обратном порядке в адресном пространстве, упомянутый терминал содержит средство для загрузки дельта-файла подходящего типа дельта-файла с упомянутого сервера на упомянутый терминал и средство для модифицирования упомянутого программного обеспечения, используя подходящий дельта-файл.In a preferred embodiment, said terminal is configured to connect to a server before receiving and executing a delta file for transmitting information related to the state of the current address space, determining what type of delta file is applicable for modifying said software, depending on the available position said additional block in said address space, wherein the first type of delta file is for modifying software, etc. arranged in the mentioned memory blocks in the same order in the address space, and the second type of delta file is used to modify the software presented in the mentioned memory blocks in the reverse order in the address space, said terminal contains means for downloading a delta file of the appropriate type of delta file from said server to said terminal and means for modifying said software using a suitable delta file.

Предпочтительно, чтобы терминал радиосвязи содержал средство для преобразования начального адреса в пределах упомянутого адресного пространства в загрузочном коде для упомянутого программного обеспечения в зависимости от перемещения данных между упомянутыми блоками памяти во время записи, как задано упомянутым дельта-файлом.Preferably, the radio terminal comprises means for converting the starting address within said address space in the boot code for said software depending on the movement of data between said memory units during recording, as specified by said delta file.

Краткое описание чертежейBrief Description of the Drawings

Признаки и преимущества настоящего изобретения будут лучше видны из следующего описания предпочтительных вариантов осуществления со ссылками на прилагаемые чертежи.The features and advantages of the present invention will be better apparent from the following description of preferred embodiments with reference to the accompanying drawings.

Фиг. 1 - схематическая иллюстрация соответствующего предшествующему уровню техники процесса обновления программного обеспечения путем модификации объекта назначения.FIG. 1 is a schematic illustration of a prior art software update process by modifying a target.

Фиг. 2 - схематическая иллюстрация процесса согласно варианту осуществления настоящего изобретения для обновления программного обеспечения путем модификации объекта назначения.FIG. 2 is a schematic illustration of a process according to an embodiment of the present invention for updating software by modifying a target.

Фиг. 3 - схематическая иллюстрация двух различных вариантов общего процесса по Фиг. 2.FIG. 3 is a schematic illustration of two different embodiments of the general process of FIG. 2.

Фиг. 4 - схематическое изображение иллюстративного терминала радиосвязи, реализующего компьютерный программный продукт для исполнения этапов процесса согласно настоящему изобретению.FIG. 4 is a schematic illustration of an illustrative radio communication terminal implementing a computer program product for executing process steps according to the present invention.

Фиг. 5 - схематическая иллюстрация терминала по Фиг. 4 с его встроенной компьютерной системой во время осуществления связи с базовой станцией для приема дельта-файлов обновления для модификации объекта назначения в терминале.FIG. 5 is a schematic illustration of the terminal of FIG. 4 with its integrated computer system while communicating with a base station for receiving update delta files for modifying a destination in a terminal.

Осуществление изобретенияThe implementation of the invention

Настоящее описание имеет отношение к средству и способам для использования при модификации встроенного программного обеспечения, использующей дельта-файлы, и модификации объекта назначения. Настоящее изобретение особенно полезно для использования в системах с относительно малой шириной полосы пропускания, но не ограничивается такими областями. Предпочтительный вариант осуществления, описанный ниже, относится к области мобильной телефонии, и в частности к реализации в терминалах радиосвязи. Термин «терминал радиосвязи» включает в себя все оборудование мобильной связи, разработанное для радиосвязи с радиостанцией, причем данная радиостанция может быть также мобильным терминалом или, например, стационарной базовой станцией. Таким образом, термин «радиотерминал» включает в себя мобильные телефоны, коммуникаторы, электронные записные книжки, смартфоны, PDA (персональные цифровые секретари), установленные на транспортном средстве устройства радиосвязи, или тому подобное, а также портативные переносные компьютеры, выполненные с возможностью беспроводной связи в, например, беспроводной локальной сети (WLAN). Кроме того, нужно подчеркнуть, что термины “содержащий” или “содержит” при использовании в настоящем описании и в прилагаемой формуле изобретения для обозначения имеющихся в них признаков, элементов или этапов никоим образом не должны толковаться как исключающие присутствие других признаков, элементов или этапов, нежели явно сформулированные.The present description relates to a means and methods for use in modifying firmware using delta files and modifying a target. The present invention is particularly useful for use in systems with a relatively small bandwidth, but is not limited to such areas. A preferred embodiment described below relates to the field of mobile telephony, and in particular to implementation in radio terminals. The term "radio communication terminal" includes all mobile communication equipment designed for radio communication with a radio station, and this radio station can also be a mobile terminal or, for example, a stationary base station. Thus, the term “radio terminal” includes mobile phones, communicators, electronic notebooks, smartphones, PDAs (personal digital assistants) mounted on a vehicle of a radio communication device, or the like, as well as portable laptop computers configured for wireless communication in, for example, a wireless local area network (WLAN). In addition, it must be emphasized that the terms “comprising” or “contains” when used in the present description and in the attached claims to indicate the features, elements or steps contained in them should in no way be construed as excluding the presence of other features, elements or steps, rather than explicitly stated.

Следующее описание относится к предпочтительным вариантам осуществления настоящего изобретения, в которых адресное пространство содержит четыре блока памяти. Тем не менее, необходимо заметить, что настоящее изобретение применимо к адресному пространству, содержащему любое число блоков памяти.The following description relates to preferred embodiments of the present invention, in which the address space contains four memory blocks. However, it should be noted that the present invention is applicable to an address space containing any number of memory blocks.

Фиг. 2 изображает предпочтительный вариант осуществления алгоритма способа согласно настоящему изобретению для автоматического резервного сохранения при модификации встроенного программного обеспечения. При использовании этого алгоритма обновления может быть исключена необходимость резервирования каждого блока перед его обновлением. В иллюстративном варианте осуществления по Фиг. 2, устройство содержит память, определяющую память или адресное пространство 211, содержащее четыре блока 201-204 памяти, каждый из которых вмещает один программный блок 1-4, соответственно. В состоянии, изображенном в столбце 206, нет блоков, обновленных до этого, и программное обеспечение представлено в первой версии. Как и в случае существующего уровня техники, описанного выше, область 211 памяти содержит, по меньшей мере, на один блок больше, чем четыре блока 201-204. Однако, вместо того чтобы использовать специальный резервный блок, дополнительный блок перед двоичным образом, представленным блоками 201-204, используется для перемещения образа программного обеспечения целиком на один блок назад или вперед в адресном пространстве 211. В альтернативных вариантах осуществления могут использоваться больше чем один, например два дополнительных блока.FIG. 2 depicts a preferred embodiment of an algorithm of a method according to the present invention for automatically backing up upon modification of firmware. Using this update algorithm, the need to reserve each block before updating it can be eliminated. In the illustrative embodiment of FIG. 2, the device comprises a memory defining a memory or address space 211 containing four memory blocks 201-204, each of which accommodates one program unit 1-4, respectively. In the state shown in column 206, there are no blocks updated before that, and the software is presented in the first version. As with the prior art described above, the memory area 211 comprises at least one block more than four blocks 201-204. However, instead of using a special redundant block, an additional block before the binary image represented by blocks 201-204 is used to move the entire software image one block back or forward in address space 211. In alternative embodiments, more than one can be used. for example two additional blocks.

Когда программное обеспечение должно быть обновлено, устройство, обладающее физической памятью, к которой относится адресное пространство 211, принимает дельта-файл или файл отличий, включающий в себя всю информацию, необходимую для обновления программного обеспечения от первой версии до второй версии. На этапе от состояния 206 до состояния 207 дополнительный блок 212 стирается. Затем программный блок 1 обновляется в соответствии с дельта-файлом, соответствующим представленному программному обеспечению. При использовании этого алгоритма нет необходимости резервировать каждый блок, потому что обновленный блок всегда записывается непосредственно перед старым блоком. Старый блок не перезаписывается, пока запись обновленного блока не выполнена. Вместо двух операций стирания/записи требуется только одна операция стирания/записи.When the software is to be updated, a device having physical memory to which the address space 211 belongs receives a delta file or a difference file including all the information necessary for updating the software from the first version to the second version. In a step from state 206 to state 207, additional unit 212 is erased. Then, the program unit 1 is updated in accordance with the delta file corresponding to the presented software. When using this algorithm, there is no need to reserve each block, because the updated block is always written immediately before the old block. The old block is not overwritten until the updated block is written. Instead of two erase / write operations, only one erase / write operation is required.

Предложенное решение имеет очевидные выгоды, но также и приводит к проблеме, которую нужно преодолеть. Когда прошло одно обновление, больше не существует одного дополнительного блока в начале образа, так как весь образ был сдвинут в адресном пространстве. Однако предпочтительный вариант осуществления настоящего изобретения предоставляет решение этой проблемы. После первой операции обновления вместо этого появится один дополнительный блок в конце образа, блок 204 в варианте осуществления по Фиг. 2. При этом, изменяя направление процесса обновления, то есть записывая блоки в обратном порядке, при следующем обновлении можно использовать тот же самый алгоритм. Другой проблемой является то, что фактический двоичный код сопряжен с определенным базовым адресом. Если базовый адрес перемещен, код не выполнится, так как абсолютные адреса для ячеек памяти внутри двоичного образа будут указывать на неверный адрес. Так или иначе, абсолютные адреса, используемые в образе, должны быть перемещены на один блок после обновления. Согласно одному варианту осуществления, эта проблема решается путем генерирования двух дельта-файлов для каждого обновления, что схематично продемонстрировано на Фиг. 3.The proposed solution has obvious benefits, but also leads to a problem that needs to be overcome. When one update has passed, there is no longer one additional block at the beginning of the image, since the entire image was shifted in the address space. However, a preferred embodiment of the present invention provides a solution to this problem. After the first update operation, instead, one additional block will appear at the end of the image, block 204 in the embodiment of FIG. 2. At the same time, changing the direction of the update process, that is, writing blocks in the reverse order, the next update, you can use the same algorithm. Another problem is that the actual binary is paired with a specific base address. If the base address is moved, the code will not be executed, since absolute addresses for memory cells inside the binary image will point to an invalid address. One way or another, the absolute addresses used in the image must be moved one block after the update. According to one embodiment, this problem is solved by generating two delta files for each update, as shown schematically in FIG. 3.

На Фиг. 3 D12(ВВЕРХ) символизирует первый дельта-файл для осуществления преобразования программного обеспечения версии V1 типа A, которое изображено в столбце 306, к V2 типа B, которое изображено в столбце 307. Образ типа A является, следовательно, определенным адресным пространством с дополнительным блоком, расположенным после блоков 1-4, тогда как образ типа B является определенным адресным пространством с дополнительным блоком, расположенным перед блоками 1-4. Dl2(ВНИЗ) символизирует второй дельта-файл для осуществления преобразования программного обеспечения версии V1 типа B, которое изображено в столбце 308, к V2 типа B, которое изображено в столбце 309. Предпочтительно, чтобы два дельта-файла генерировались с помощью преобразования процесса компоновки для получения образов типов A и B перед генерированием фактических дельта-файлов. В заключение, начальный адрес, находящийся в загрузочном коде, должен быть преобразован, чтобы указывать правильный начальный адрес, такой, при котором исполнение программного обеспечения будет происходить, как предназначено. Это может быть сделано как последний этап процедуры обновления.In FIG. 3 D12 (UP) represents the first delta file for converting software version V1 of type A, which is shown in column 306, to V2 of type B, which is shown in column 307. An image of type A is therefore a specific address space with an additional block located after blocks 1-4, while the image of type B is a specific address space with an additional block located in front of blocks 1-4. Dl2 (DOWN) symbolizes the second delta file for converting software version V1 of type B, which is shown in column 308, to V2 of type B, which is shown in column 309. It is preferable that two delta files are generated by converting the build process for obtaining images of types A and B before generating the actual delta files. In conclusion, the starting address in the boot code must be converted to indicate the correct starting address, such that the software will execute as intended. This can be done as the last step of the upgrade procedure.

Время обновления, в лучшем случае, уменьшается вдвое при новом алгоритме резервирования, предоставленном в соответствии с настоящим изобретением. Это имеет место, когда все блоки обновлены. С предложенным решением все блоки должны быть перезаписаны однократно. С существующим сегодня решением только измененные блоки должны быть обновлены, но они должны быть записаны дважды. Для обновления с изменением больше, чем половины блоков, новое решение является более быстрым. Обычно во время обновления должно быть изменено большинство блоков.Update time, at best, is halved with the new redundancy algorithm provided in accordance with the present invention. This is the case when all blocks are updated. With the proposed solution, all blocks should be rewritten once. With today's solution, only modified blocks should be updated, but they must be written twice. For an update with a change of more than half the blocks, the new solution is faster. Typically, most blocks should be changed during the upgrade.

В предпочтительном варианте осуществления, настоящее изобретение используется для эфирной модификации встроенного программного обеспечения и, в особенности, применяется в области мобильной радиосвязи с терминалами радиосвязи в качестве целевых устройств. Фиг. 4 изображает в качестве примера устройства, в котором настоящее изобретение может быть использовано, терминал радиосвязи в варианте осуществления сотового мобильного телефона 40. Терминал 40 содержит шасси или корпус 45, несущий в себе вход звукового сигнала от пользователя в форме микрофона 41 и выход звукового сигнала для пользователя в форме динамика 42 или разъема для наушника (не показано). Набор клавиш, кнопок или тому подобного составляет интерфейс 43 ввода данных, применяемый, например, для набора телефонного номера общепринятым способом. Дополнительно в состав включается интерфейс вывода данных, содержащий устройство 44 отображения, выполненный с возможностью отображения информации о связи, списка адресов и т.д. способом, хорошо известным специалисту в данной области техники. Терминал 40 радиосвязи включает в себя электронное оборудование для радиопередачи и приема (не показано) и выполнен с возможностью размещения внутри корпуса 45 встроенной антенны 46, эта антенна обозначена на чертеже пунктирной линией как по существу плоский объект. Фиг. 5 упрощенно изображает терминал 40 по Фиг. 4. Терминал 40 может обычным способом соединяться с использованием средств коммуникации с помощью своей антенны 46 с базовой станцией 50, включенной в состав сети радиосвязи. Терминал 40 дополнительно включает в себя компьютерную систему, содержащую микропроцессорное устройство 47 управления (контроллер) с ассоциированной физической памятью 48. При связи с базовой станцией 50 терминал 40 способен принимать дельта-файлы для модификации программного обеспечения, представленного в памяти 48, в частности программных двоичных файлов, согласно изобретению. Кроме того, компьютерная система, включающая в себя процессор 47, выполнена с возможностью сохранять и осуществлять доступ к программному обеспечению, сохраненному в памяти 48, используя адресное пространство, как определено на Фиг. 2 и 3, и выполнять этапы процесса, определенные выше в связи с Фиг. 2 и 3. В частности, компьютерная система, управляемая процессором 47, содержит средство для стирания и записи в блоках памяти, как задано содержимым дельта-файлов, для обновления упомянутого программного обеспечения, тем самым сдвигая содержимое блоков памяти, обновленных или нет, на интервал, соответствующий размеру одного блока в адресном пространстве.In a preferred embodiment, the present invention is used for broadcast modification of firmware and, in particular, is used in the field of mobile radio communications with radio terminals as target devices. FIG. 4 illustrates, by way of example, a device in which the present invention can be used, a radio terminal in an embodiment of a cellular mobile phone 40. The terminal 40 includes a chassis or housing 45 carrying an audio input from a user in the form of a microphone 41 and an audio output for a user in the form of a speaker 42 or a headphone jack (not shown). A set of keys, buttons or the like makes up the data input interface 43, used, for example, to dial a telephone number in a conventional manner. Additionally, a data output interface is included that includes a display device 44 configured to display communication information, a list of addresses, etc. in a manner well known to those skilled in the art. The radio communication terminal 40 includes electronic equipment for radio transmission and reception (not shown) and is configured to accommodate the built-in antenna 46 inside the housing 45, this antenna is indicated by a dotted line in the drawing as a substantially flat object. FIG. 5 is a simplified depiction of terminal 40 of FIG. 4. The terminal 40 may in the usual way be connected using communication means using its antenna 46 with the base station 50 included in the radio communication network. The terminal 40 further includes a computer system comprising a microprocessor control device 47 (controller) with an associated physical memory 48. In communication with the base station 50, the terminal 40 is capable of receiving delta files for modifying software present in the memory 48, in particular software binary files according to the invention. In addition, a computer system including processor 47 is configured to store and access software stored in memory 48 using the address space as defined in FIG. 2 and 3, and carry out the process steps defined above in connection with FIG. 2 and 3. In particular, the computer system controlled by the processor 47 comprises means for erasing and recording in the memory blocks, as defined by the contents of the delta files, for updating said software, thereby shifting the contents of the memory blocks, updated or not, by an interval corresponding to the size of one block in the address space.

Вышеизложенное описывает основные требования, предпочтительные варианты осуществления и режимы работы настоящего изобретения. Впрочем, для специалистов в данной области техники должно быть понятно, что могут быть внесены изменения в этих вариантах осуществления без отклонений от объема настоящего изобретения, который определен в прилагаемой формуле изобретения.The foregoing describes the basic requirements, preferred embodiments and modes of operation of the present invention. However, it should be understood by those skilled in the art that changes can be made to these embodiments without deviating from the scope of the present invention as defined in the appended claims.

Claims (8)

1. Способ обновления программного обеспечения, представленного в первой версии (V1) на устройстве (40), посредством приема и исполнения дельта-файла (D12) для модификации упомянутой первой версии до второй версии (V2), причем данное программное обеспечение разделено и сохранено во множестве блоков (201-204) памяти, определенных в адресном пространстве (211) физической памяти (48) в устройстве, при этом способ содержит этапы, на которых
определяют дополнительный блок (212) памяти, ассоциированный с упомянутым множеством блоков памяти, изначально размещенный перед первым блоком памяти, расположенным с одной стороны области памяти;
стирают упомянутый дополнительный блок памяти;
записывают обновленные данные для первого блока памяти в упомянутый дополнительный блок памяти;
перемещают дополнительный блок памяти на один блок вперед и
обрабатывают все из упомянутого множества блоков памяти один за другим путем выполнения этапов, на которых:
стирают упомянутый дополнительный блок памяти,
записывают обновленные данные для блока памяти, соседнего для дополнительного блока памяти и следующего за ним, в дополнительный блок памяти,
единовременно перемещают упомянутый дополнительный блок памяти на один блок вперед,
пока все из упомянутого множества блоков памяти не будут сдвинуты на один интервал в адресном пространстве.
1. A method of updating the software presented in the first version (V1) on the device (40) by receiving and executing a delta file (D12) for modifying the aforementioned first version to the second version (V2), wherein the software is divided and stored in a plurality of memory blocks (201-204) defined in the address space (211) of the physical memory (48) in the device, the method comprising the steps of
determining an additional memory unit (212) associated with said plurality of memory units, initially placed in front of the first memory unit located on one side of the memory area;
erasing said additional memory unit;
writing updated data for the first memory block to said additional memory block;
move the additional memory block one block forward and
process all of the aforementioned plurality of memory blocks one by one by performing steps in which:
erasing said additional memory unit,
write updated data for the memory unit adjacent to the additional memory unit and following it to the additional memory unit,
simultaneously move said additional memory unit one block forward,
until all of the said plurality of memory blocks are shifted by one interval in the address space.
2. Способ по п.1, содержащий этап, на котором изменяют порядок записи блоков памяти в адресном пространстве с упомянутой модификации от первой версии до второй версии на другую модификацию от упомянутой второй версии до третьей версии.2. The method according to claim 1, comprising the step of changing the recording order of the memory blocks in the address space from said modification from the first version to the second version to another modification from said second version to the third version. 3. Способ по п.2, содержащий этапы, на которых:
посредством упомянутого устройства перед приемом и исполнением дельта-файла соединяются с сервером и передают информацию, относящуюся к состоянию текущего адресного пространства, определяющую, какого типа дельта-файл применим для модифицирования упомянутого программного обеспечения, в зависимости от имеющегося положения упомянутого дополнительного блока в упомянутом адресном пространстве, причем первый тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в одном порядке в адресном пространстве, а второй тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в обратном порядке в адресном пространстве;
загружают дельта-файл подходящего типа дельта-файла с упомянутого сервера на упомянутое устройство и
модифицируют упомянутое программное обеспечение, используя подходящий дельта-файл.
3. The method according to claim 2, containing stages in which:
by means of the aforementioned device, before receiving and executing the delta file, they are connected to the server and transmit information related to the state of the current address space, which determines what type of delta file is applicable for modifying the mentioned software, depending on the existing position of the said additional block in the said address space moreover, the first type of delta file is intended for modifying the software presented in the mentioned memory blocks in one piece ke in the address space, and the second type of delta file is designed to modify the software represented in said memory blocks in reverse order in the address space;
downloading a delta file of a suitable type of delta file from said server to said device and
modify said software using a suitable delta file.
4. Способ по любому из предыдущих пунктов, содержащий этап, на котором преобразуют начальный адрес в пределах упомянутого адресного пространства в загрузочном коде для упомянутого программного обеспечения в зависимости от перемещения данных между упомянутыми блоками памяти во время записи, как задано упомянутым дельта-файлом.4. The method according to any one of the preceding paragraphs, comprising the step of converting the starting address within said address space in the boot code for said software depending on the movement of data between said memory blocks during recording, as specified by said delta file. 5. Терминал (40) радиосвязи, содержащий компьютерную систему (47) с соответствующим компьютерным кодом для обновления программного обеспечения, представленного в первой версии (V1) на терминале, и средство (46) для приема и исполнения дельта-файла (D12) для модифицирования упомянутой первой версии до второй версии (V2), причем данное программное обеспечение разделено и сохранено во множестве блоков (201-204) памяти, определенных в адресном пространстве (211) физической памяти (48) в терминале, отличающийся тем, что дополнительный блок (212) памяти, соответствующий упомянутому множеству блоков памяти, определен в упомянутом адресном пространстве, будучи изначально размещенным перед первым блоком памяти, расположенным с одной стороны области памяти, и тем, что дополнительно содержит средство для стирания упомянутого дополнительного блока памяти; средство записи данных для записи обновленных данных для первого блока памяти в дополнительный блок памяти; средство для перемещения дополнительного блока памяти на один блок вперед и средство для обработки всех из упомянутого множества блоков памяти один за другим посредством
стирания упомянутого дополнительного блока памяти,
записи обновленных данных для блока памяти, соседнего для дополнительного блока памяти и следующего за ним, в дополнительный блок памяти,
единовременного перемещения упомянутого дополнительного блока памяти на один блок вперед,
пока все из упомянутого множества блоков памяти не будут сдвинуты на один интервал в адресном пространстве.
5. A radio communication terminal (40) containing a computer system (47) with the corresponding computer code for updating the software presented in the first version (V1) on the terminal, and means (46) for receiving and executing a delta file (D12) for updating the aforementioned first version to the second version (V2), wherein the software is partitioned and stored in a plurality of memory blocks (201-204) defined in the address space (211) of the physical memory (48) in the terminal, characterized in that the additional block (212 ) memory, respectively uyuschy said plurality of memory blocks is defined in said address space, initially being placed before a first memory block located on one side of the memory area, and in that it further comprises means for erasing said extra memory block; data recording means for recording updated data for the first memory block into an additional memory block; means for moving the additional memory block one block forward and means for processing all of the above-mentioned plurality of memory blocks one by one by
erasing said additional memory unit,
writing updated data for the memory block adjacent to the additional memory block and following it to the additional memory block,
simultaneous movement of the aforementioned additional memory block one block forward,
until all of the said plurality of memory blocks are shifted by one interval in the address space.
6. Терминал радиосвязи по п.5, отличающийся тем, что содержит средство для изменения порядка записи блоков памяти в адресном пространстве с упомянутой модификации от первой версии до второй версии на другую модификацию от упомянутой второй версии до третьей версии.6. The radio communication terminal according to claim 5, characterized in that it comprises means for changing the recording order of memory blocks in the address space from said modification from the first version to the second version to another modification from the said second version to the third version. 7. Терминал радиосвязи по п.6, отличающийся тем, что выполнен с возможностью соединения с сервером перед приемом и исполнением дельта-файла для передачи информации, относящейся к состоянию текущего адресного пространства, определяющей, какого типа дельта-файл применим для модифицирования упомянутого программного обеспечения, в зависимости от имеющегося положения упомянутого дополнительного блока в упомянутом адресном пространстве, причем первый тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в одном порядке в адресном пространстве, а второй тип дельта-файла предназначен для модификации программного обеспечения, представленного в упомянутых блоках памяти в обратном порядке в адресном пространстве, причем упомянутый терминал содержит средство для загрузки дельта-файл подходящего типа дельта-файла с упомянутого сервера на упомянутый терминал и средство для модифицирования упомянутого программного обеспечения, используя подходящий дельта-файл.7. The radio terminal according to claim 6, characterized in that it is configured to connect to a server before receiving and executing a delta file for transmitting information related to the state of the current address space, which determines what type of delta file is applicable for modifying the mentioned software , depending on the existing position of said additional block in said address space, wherein the first type of delta file is for modifying the software provided said memory blocks in the same order in the address space, and the second type of delta file is for modifying the software presented in said memory blocks in the reverse order in the address space, said terminal comprising means for downloading a delta file of a suitable type of delta file from said server to said terminal; and means for modifying said software using a suitable delta file. 8. Терминал радиосвязи по любому из предыдущих пп.5-7, отличающийся тем, что содержит средство для преобразования начального адреса в пределах упомянутого адресного пространства в загрузочном коде для упомянутого программного обеспечения в зависимости от перемещения данных между упомянутыми блоками памяти во время записи, как задано упомянутым дельта-файлом. 8. A radio communication terminal according to any one of the preceding claims 5 to 7, characterized in that it comprises means for converting the starting address within said address space in the boot code for said software depending on the movement of data between said memory blocks during recording, as specified by the delta file.
RU2006135632/09A 2004-03-10 2005-02-17 Automatic back up saving in modifications of embedded software RU2375769C2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP04005700A EP1574952B1 (en) 2004-03-10 2004-03-10 Automatic backup store in firmware upgrades
EP04005700.2 2004-03-10
US55368704P 2004-03-16 2004-03-16
US60/553,687 2004-03-16

Publications (2)

Publication Number Publication Date
RU2006135632A RU2006135632A (en) 2008-04-20
RU2375769C2 true RU2375769C2 (en) 2009-12-10

Family

ID=34921306

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006135632/09A RU2375769C2 (en) 2004-03-10 2005-02-17 Automatic back up saving in modifications of embedded software

Country Status (3)

Country Link
KR (1) KR101130875B1 (en)
RU (1) RU2375769C2 (en)
WO (1) WO2005085997A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750169B1 (en) * 2006-03-08 2007-08-21 삼성전자주식회사 Method for generating a delta file and software update method using the same
CN101361051B (en) * 2006-06-19 2011-01-26 三星电子株式会社 Information upgrade system and method for ota-capable device
EP2162821A1 (en) * 2007-06-29 2010-03-17 France Telecom Storage method
EP3358465B1 (en) * 2015-09-29 2024-04-17 Hitachi Astemo, Ltd. In-vehicle control device, program update system, and program update software
US11222121B2 (en) * 2019-04-02 2022-01-11 Motional Ad Llc Secure boot of vehicular processors
CN113590155B (en) * 2021-07-29 2023-06-20 深圳锦弘霖科技有限公司 Remote incremental updating method for self-grinding RTOS

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398545A1 (en) * 1989-05-19 1990-11-22 Delco Electronics Corporation Method and apparatus for storing data in a non-volatile memory
DE19520030C1 (en) * 1995-05-31 1996-05-15 Siemens Ag Modular communication network programme structure realising method
US5960445A (en) * 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
DE19652628A1 (en) * 1996-12-18 1998-06-25 Philips Patentverwaltung Communication system
US6327597B1 (en) 1999-08-06 2001-12-04 International Business Machines Corporation Method, memory system, and computer program product for implementing lock based delayed space recycle control
JP2001209543A (en) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd Program rewriting method for flash microcomputer
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
US6938140B2 (en) * 2002-08-29 2005-08-30 Micron Technology, Inc. System and method for linear object reallocation in place

Also Published As

Publication number Publication date
KR101130875B1 (en) 2012-03-28
WO2005085997A3 (en) 2006-06-29
RU2006135632A (en) 2008-04-20
WO2005085997A2 (en) 2005-09-15
KR20070006831A (en) 2007-01-11

Similar Documents

Publication Publication Date Title
US7502813B2 (en) Software update process using an extra memory block
US7210010B2 (en) Efficient system and method for updating a memory device
EP2229625B1 (en) Updating firmware of an electronic device
JP5057519B2 (en) Method and system for in-place updating of content stored in a storage device
CN101026848B (en) Mobile terminal and software update method
RU2375769C2 (en) Automatic back up saving in modifications of embedded software
US20080119178A1 (en) Allocating Compression-Based Firmware Over the Air
JP4302970B2 (en) DIFFERENTIAL UPDATE METHOD, PROGRAM, AND DEVICE
KR20120109800A (en) Data update method based on a firmware on the air and portable device supporting the same
JPH113224A (en) Program updating method for portable information terminal equipment
JP4859465B2 (en) Software updating method and mobile terminal device
JP2008040701A (en) Memory management method and portable terminal equipment
JP4838305B2 (en) Processor controller with different modes
JP2010044574A (en) Portable terminal, portable terminal control method and portable terminal control program
JP2009009391A (en) Updating software self-update method and portable terminal device
KR20030073824A (en) A method and apparatus for upgrading a system firmware by using an universal serial bus
KR100538627B1 (en) Method for partupgrading sofrware of wireless terminal
JP2002007152A (en) Download method and download device
US6510316B2 (en) Wireless communication apparatus
KR100622816B1 (en) System software update method and system in mobile terminal
KR20220085143A (en) Apparatus for updating program and method thereof
JP2006011589A (en) Mobile communication device and program for controlling the device
KR20050116059A (en) Method for data upgrading in wireless communication terminal

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20170218