Patent ID: 7502813

Claim:
Method for updating software present in a first version in a device, by receiving and executing a delta file for upgrading said first version to a second version, which software is divided and stored in a number of memory blocks defined in an address space of a physical memory in the device, comprising the steps of: defining an extra memory block associated with said number of memory blocks, initially being placed before a first memory block located at one end of the memory space; erasing said extra memory block; writing updated data for the first memory block on said extra memory block; moving the extra memory block one block forward; and processing all of said number of memory blocks one by one by erasing said extra memory block, writing updated data for the memory block adjacent to and after the extra memory block on the extra memory block, moving said extra memory block forward one block at a time, until all of said number of memory blocks have been shifted one step in the address space; reversing the order of writing memory blocks in the address space, from said upgrade from a first version to a second version, to a second upgrade from said second version to a third version; said device, before receiving and executing a delta file, connecting with a server and communicating information related to a current address space status determining which type of delta file is applicable for upgrading said software, dependent on the present location of said extra block in said address space, wherein a first delta file type is adapted to upgrade the software present in said memory blocks in one order in the address space, and a second delta file adapted to upgrade the software present in said memory blocks in a reversed order in the address space; downloading a delta file of the applicable delta file type from said server to said device; and upgrading said software using the applicable delta file.