A method of updating an integrated-circuit radio communication device , wherein: the device comprises processing means , non-volatile read-write memory , and radio communication logic ; and the processing means is configured to execute instructions directly from the non-volatile read-write memory; the memory stores (i) a boot-loader , (ii) a firmware module located at a predetermined firmware-module memory address in a firmware memory region of the non-volatile read-write memory, for execution by the processing means directly from the firmware memory region, without the entire firmware module first being copied to RAM, and (iii) a software application in a software-application memory region of the non-volatile read-write memory, for execution by the processing means directly from the software-application memory region, without the entire software-application first being copied to RAM, the firmware module comprising instructions for controlling the radio communication logic according to a predetermined radio protocol, and the software application comprising instructions for invoking a radio-communication function of the firmware module, the method comprising: the processing means executing instructions from the boot-loader or the firmware module to use the radio communication logic to receive a new firmware module , and executing instructions from the boot-loader or the firmware module to store the new firmware module in the software-application memory region such that at least a portion of the software application is overwritten by the new firmware module; and the processing means executing instructions from the boot-loader to move or copy the new firmware module from the software-application memory region to the predetermined firmware-module memory address in the firmware memory region. the device comprises processing means , non-volatile read-write memory , and radio communication logic ; and the processing means is configured to execute instructions directly from the non-volatile read-write memory; the memory stores (i) a boot-loader , (ii) a firmware module located at a predetermined firmware-module memory address in a firmware memory region of the non-volatile read-write memory, for execution by the processing means directly from the firmware memory region, without the entire firmware module first being copied to RAM, and (iii) a software application in a software-application memory region of the non-volatile read-write memory, for execution by the processing means directly from the software-application memory region, without the entire software-application first being copied to RAM, the firmware module comprising instructions for controlling the radio communication logic according to a predetermined radio protocol, and the software application comprising instructions for invoking a radio-communication function of the firmware module, the processing means executing instructions from the boot-loader or the firmware module to use the radio communication logic to receive a new firmware module , and executing instructions from the boot-loader or the firmware module to store the new firmware module in the software-application memory region such that at least a portion of the software application is overwritten by the new firmware module; and the processing means executing instructions from the boot-loader to move or copy the new firmware module from the software-application memory region to the predetermined firmware-module memory address in the firmware memory region. <EOS>