ACTUALIZACIÓN DEL FIRMWARE DE UN DISPOSITIVO ELECTRÓNICO.
Un método para actualizar el software de un dispositivo electrónico desde una versión actual del software a una versión actualizada del software,
comprendiendo el dispositivo electrónico un medio de almacenamiento que tiene almacenado en el mismo la versión actual del software; comprendiendo el método que el dispositivo electrónico lleve a cabo las siguientes operaciones:
recibir instrucciones de actualización incrementales para provocar que el dispositivo electrónico transforme la versión actual almacenada del software en la versión actualizada del software;
donde el software comprende un primer y un segundo conjunto de módulos de carga, comprendiendo el primer conjunto de módulos de carga código de programa para proporcionar un mínimo conjunto de servicios de sistema básicos requeridos para hacer funcionar el dispositivo electrónico en un modo de actualización y código de programa para proporcionar funciones para llevar a cabo la actualización, comprendiendo las instrucciones de actualización incrementales un primer conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genera una versión actualizada del primer conjunto de módulos de carga, comprendiendo además las instrucciones de actualización incremental recibidas un segundo conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genere una versión actualizada del segundo conjunto de módulos de carga;
- almacenar al menos el segundo conjunto de instrucciones de actualización recibidas en el medio de almacenamiento;
- ejecutar el primer conjunto de instrucciones de actualización para actualizar la versión actual almacenada del primer conjunto de módulos de carga con la versión actualizada generada del primer conjunto de módulos de carga
- reiniciar el dispositivo electrónico en el modo de actualización en el que se ejecuta la versión actualizada del primer conjunto de módulos de carga;
- ejecutar el segundo conjunto de instrucciones de actualización almacenado de modo que se lleva a cabo una actualización en-sitio del segundo conjunto de módulos de carga, comprendiendo la actualización en-sitio reemplazar la versión actual almacenada del segundo conjunto de módulos de carga con la versión actualizada generada del segundo conjunto de módulos de carga en donde el dispositivo electrónico es un dispositivo portátil de comunicaciones por radio para la comunicación a través de una red de comunicaciones por radio, donde el software incluye funciones de comunicación para establecer comunicaciones por radio entre el dispositivo de comunicaciones y otros dispositivos de comunicaciones de la red de comunicaciones por radio; y donde dichas funciones de comunicación están incluidas en el segundo conjunto de módulos de carga.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2008/066017.
G06F9/445FISICA. › G06CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Carga o inicio de programas (arranque G06F 9/4401; disposiciones de seguridad para la carga o inicio de programas G06F 21/57).
Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia, Ex República Yugoslava de Macedonia, Albania.
Esta invención se refiere en general a la actualización de software instalado en una memoria persistente de un dispositivo electrónico. ANTECEDENTES Y DESCRIPCIÓN DE LA TÉCNICA RELACIONADA Muchos dispositivos electrónicos modernos, como por ejemplo dispositivos manuales como dispositivos de comunicación manuales/portátiles, por ejemplo teléfonos móviles, comunicadores, buscas, u otros dispositivos portátiles/manuales como asistentes personales digitales, dispositivos de entretenimiento personal, como reproductores de mp3, etc., están controlados por software almacenado en una memoria flash. En la presente descripción, al software almacenado en una memoria persistente de un dispositivo electrónico que controla el funcionamiento o hace funcionar el dispositivo electrónico de tal modo que durante el funcionamiento normal del dispositivo electrónico no puede ser detenido y/o iniciado por separado del dispositivo electrónico como un todo, se hará referencia como firmware. Por tanto, se puede considerar que el firmware forma el software principal del sistema sobre el que corre. Además del firmware, se puede almacenar y ejecutar otro software en el dispositivo electrónico; dicho otro software generalmente puede iniciarse y detenerse por un usuario del dispositivo electrónico durante el funcionamiento normal del dispositivo electrónico, separadamente del arranque/apagado del dispositivo electrónico y el firmware. A un dispositivo electrónico controlado por firmware almacenado en una memoria persistente de dicho dispositivo electrónico también se hace referencia como un dispositivo integrado o un sistema integrado, y al firmware se hace referencia como integrado en el dispositivo electrónico. Aunque el firmware de un dispositivo electrónico típicamente no cambia durante el funcionamiento normal del dispositivo, pueden ser deseables o incluso necesarias actualizaciones del firmware durante la vida útil de un dispositivo electrónico, por ejemplo para instalar una nueva función, actualizar una funcionalidad existente, corregir errores en el firmware, y/o similares. Se apreciará que un dispositivo electrónico puede tener almacenado en el mismo más componentes de software, como software de aplicación, que proporciona funcionalidades adicionales a un usuario del dispositivo electrónico pero que no son necesarias para el funcionamiento del dispositivo electrónico. Una actualización del firmware de un dispositivo electrónico implica varios problemas específicos, por ejemplo en comparación con una actualización de software de un ordenador personal: Para actualizar una aplicación de un ordenador personal, esa aplicación normalmente debe detenerse si está activada. Se lleva acabo entonces la actualización sobrescribiendo los archivos de la aplicación instalada con nuevas versiones. El sistema operativo (OS) generalmente no contiene soltare de actualización dedicado. Las actualizaciones se llevan a cabo ejecutando una aplicación que lleva a cabo los cambios necesarios en el sistema. Para actualizar las partes activas del software, por ejemplo el propio OS, se necesita reiniciar para completar el proceso. Cuando se necesita llevar a cabo acciones después del reinicio, la aplicación está preparada para arrancar de nuevo después del reinicio. Este proceso no está inherentemente libre de errores. Si la actualización se interrumpe, la aplicación queda dañada y el usuario tiene que repararlo. Por otro lado, los dispositivos integrados frecuentemente utilizan una memoria flash para el almacenamiento persistente, ya que permite reescrituras múltiples. Una memoria flash generalmente incluye sectores de memoria, y las operaciones de lectura y/o escritura de la memoria flash típicamente se llevan a cabo en múltiplos de dichos sectores de memoria. Cuando el firmware almacenado en una memoria flash de un dispositivo electrónico es actualizado, por ejemplo para añadir nuevas características al software y/o para corregir errores de la versión actual del firmware, algunos o todos los sectores de memoria de la memoria flash son reescritos/reprogramados (se suele hacer referencia a este proceso como "re-flashear"). Cualquier espacio de datos de usuario típicamente será particionado separadamente del firmware, y normalmente no hay espacio disponible para copias completas de la imagen de firmware, de modo que las actualizaciones típicamente se llevan a cabo "en sitio". La nueva versión del firmware típicamente se escribe encima de la versión antigua. Durante el proceso de actualización, el firmware almacenado en la memoria persistente será parcialmente el firmware antiguo y parcialmente el firmware nuevo. Intentar ejecutar el firmware en este estado producirá resultados impredecibles, en el mejor de los casos, y más probablemente una caída del sistema. Un sistema integrado generalmente ejecutará un sistema operativo en tiempo real. Los sistemas simples pueden no ejecutar ningún sistema operativo. A diferencia de lo que ocurre en un ordenador personal, todo el firmware está activo durante el funcionamiento del sistema integrado y no es posible cerrar una aplicación que es parte del firmware para actualizarlo. Si cualquier parte de tal sistema integrado falla, la totalidad del sistema falla. Debido a estas limitaciones, el proceso de actualización debería diseñarse para ser insensible a los fallos, o una interrupción de la actualización dará como resultado la avería del dispositivo. En particular, una aplicación donde la fiabilidad del proceso de actualización es de gran importancia es la actualización de dispositivos de comunicación a-través-del-aire (OTA), como terminales móviles, es decir, una 2 actualización donde el software actualizado es recibido desde un sistema de actualización remoto a través de una red de comunicaciones celular. La actualización a-través-del-aire del firmware de tal dispositivo de comunicación también recibe el nombre de actualización de Firmware-A-Través-Del-Aire (FOTA). El documento WO 03/625742 describe un método de actualizar software en un dispositivo remoto, donde el software almacenado en el dispositivo está particionado en una partición de arranque, una partición principal de firmware, y una partición de software auxiliar. Durante una actualización de software, la partición de software auxiliar es reescrita inicialmente por la versión actualizada del firmware principal. En un paso siguiente, el dispositivo es reiniciado con el nuevo firmware principal, y el software auxiliar actualizado es descargado y escrito encima del firmware principal antiguo. Aunque este proceso permite una actualización del software de un dispositivo electrónico que no tiene memoria suficiente para una copia adicional completa del software, este proceso requiere una actualización completa de todo el software para alcanzar de nuevo un estado completamente operativo. Sería, por tanto, deseable proporcionar un proceso de actualización más eficiente que requiere un menor tiempo de descarga y/o ancho de banda. Además, el proceso de la técnica anterior descrito depende de su capacidad para reconectarse al servidor desde el cual se descarga la actualización de software después del reinicio, o al menos después de una pérdida de potencio u otra interrupción del proceso de actualización, para descargar el software auxiliar. Si el proceso falla en la reconexión al servidor, el dispositivo queda en un estado no operativo. Por tanto, continúa siendo un problema el proporcionar un proceso de actualización que tenga un alto grado de resistencia a los fallos. SUMARIO En el presente documento se describe un método para actualizar el software de un dispositivo electrónico desde una versión actual del software hasta una versión actualizada del software, comprendiendo el dispositivo electrónico un medio de almacenamiento que tiene almacenado en el mismo la versión actual del software. Las realizaciones del método descritas en el presente documento comprenden las siguientes operaciones a llevar a cabo por el dispositivo electrónico: - recibir instrucciones de actualización incrementales para provocar que el dispositivo electrónico transforme la versión actual almacenada del software en la versión actualizada del software; donde el software comprende un primer y un segundo conjunto de módulos de carga, comprendiendo las instrucciones de actualización incrementales recibidas un primer conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genere una versión actualizada del primer conjunto de módulos de carga, comprendiendo además las instrucciones de actualización incrementales recibidas un segundo conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genere una versión actualizada del segundo conjunto de módulos de carga; - almacenar al menos el segundo conjunto... [Seguir leyendo]
Reivindicaciones:
1. Un método para actualizar el software de un dispositivo electrónico desde una versión actual del software a una versión actualizada del software, comprendiendo el dispositivo electrónico un medio de almacenamiento que tiene almacenado en el mismo la versión actual del software; comprendiendo el método que el dispositivo electrónico lleve a cabo las siguientes operaciones: recibir instrucciones de actualización incrementales para provocar que el dispositivo electrónico transforme la versión actual almacenada del software en la versión actualizada del software; donde el software comprende un primer y un segundo conjunto de módulos de carga, comprendiendo el primer conjunto de módulos de carga código de programa para proporcionar un mínimo conjunto de servicios de sistema básicos requeridos para hacer funcionar el dispositivo electrónico en un modo de actualización y código de programa para proporcionar funciones para llevar a cabo la actualización, comprendiendo las instrucciones de actualización incrementales un primer conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genera una versión actualizada del primer conjunto de módulos de carga, comprendiendo además las instrucciones de actualización incremental recibidas un segundo conjunto de instrucciones de actualización para provocar que el dispositivo electrónico genere una versión actualizada del segundo conjunto de módulos de carga; - almacenar al menos el segundo conjunto de instrucciones de actualización recibidas en el medio de almacenamiento; - ejecutar el primer conjunto de instrucciones de actualización para actualizar la versión actual almacenada del primer conjunto de módulos de carga con la versión actualizada generada del primer conjunto de módulos de carga - reiniciar el dispositivo electrónico en el modo de actualización en el que se ejecuta la versión actualizada del primer conjunto de módulos de carga; - ejecutar el segundo conjunto de instrucciones de actualización almacenado de modo que se lleva a cabo una actualización en-sitio del segundo conjunto de módulos de carga, comprendiendo la actualización en-sitio reemplazar la versión actual almacenada del segundo conjunto de módulos de carga con la versión actualizada generada del segundo conjunto de módulos de carga en donde el dispositivo electrónico es un dispositivo portátil de comunicaciones por radio para la comunicación a través de una red de comunicaciones por radio, donde el software incluye funciones de comunicación para establecer comunicaciones por radio entre el dispositivo de comunicaciones y otros dispositivos de comunicaciones de la red de comunicaciones por radio; y donde dichas funciones de comunicación están incluidas en el segundo conjunto de módulos de carga. 2. Un método de acuerdo con la reivindicación 1, donde el primer conjunto de módulos de carga comprende un módulo de carga principal adaptado para proporcionar un conjunto mínimo de servicios de sistema básicos requeridos para el funcionamiento del dispositivo electrónico, y un segundo módulo de carga adaptado para proporcionar un conjunto mínimo de servicios básicos requeridos para llevar a cabo la actualización. 3. Un método de acuerdo con la reivindicación 2, donde el módulo de carga principal comprende un sistema operativo principal del dispositivo electrónico y uno o más controladores físicos requeridos. 4. Un método de acuerdo con la reivindicación 2 ó 3, donde el segundo módulo de carga comprende código de programa requerido para controlar el dispositivo electrónico para indicar un progreso del proceso de actualización a un usuario del dispositivo electrónico. 5. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde el primer conjunto de módulos de carga comprende un módulo de carga de agente de actualización para controlar el proceso de actualización; y donde ejecutar el segundo conjunto de instrucciones de actualización almacenadas comprende ejecutar el segundo conjunto de instrucciones de actualización almacenadas bajo el control del módulo de carga de agente de actualización de la versión actualizada del primer conjunto de módulos de carga. 6. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde reiniciar el dispositivo electrónico en el modo de actualización comprende ejecutar sólo el primer conjunto de módulos de carga, y donde ejecutar el primer conjunto de módulos de carga comprende ejecutar la versión actualizada del primer conjunto de módulos de carga. 7. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde el dispositivo electrónico tiene además almacenado en el mismo un programa de carga de inicio, y donde reiniciar el dispositivo electrónico en el modo de actualización comprende: 13 - ejecutar el programa de carga de inicio, - iniciar la ejecución de al menos uno de entre el primer conjunto de módulos de carga bajo el control del programa de carga de inicio, - iniciar la ejecución del módulo de carga de agente de actualización bajo el control de al menos uno de entre el primer conjunto de módulos de carga. 8. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, que además comprende enviar una señal después de haber completado con éxito la operación de ejecutar el primer conjunto de instrucciones de actualización, indicando dicha señal al dispositivo electrónico que durante el siguiente procedimiento de reinicio el dispositivo electrónico se debe reiniciar en el modo de actualización. 9. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, dond el software incluye firmware. 10. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde el dispositivo electrónico es operacional en el modo de actualización sin la ejecución del segundo conjunto de módulos de carga. 11. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde el medio de almacenamiento es una memoria persistente. 12. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde ejecutar el primer conjunto de instrucciones de actualización para actualizar la versión actual almacenada del primer conjunto de módulos de carga con la versión actualizada generada del primer conjunto de módulos de carga comprende: - crear una copia de seguridad del primer conjunto de módulos de carga y ejecutar el primer conjunto de instrucciones de actualización para reemplazar la copia de seguridad almacenada del primer conjunto de módulos de carga con la versión actualizada generada del primer conjunto de módulos de carga; - intercambiar las versiones de copia de seguridad y original del primer conjunto de módulos de carga. 13. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, que además comprende ejecutar las versiones actualizadas del segundo conjunto de módulos de carga. 14. Un método de acuerdo con cualquiera de las reivindicaciones precedentes, donde almacenar al menos el segundo conjunto de instrucciones de actualización en el medio de almacenamiento comprende almacenar el primer y segundo conjuntos de instrucciones de actualización en el medio de almacenamiento. 15. Un dispositivo electrónico controlable por software, comprendiendo el dispositivo electrónico un medio de almacenamiento que tiene almacenada en el mismo una versión actual del software, donde el dispositivo electrónico está configurado para llevar a cabo los pasos del método de acuerdo con cualquiera de las reivindicaciones 1 a 15. 16. Un dispositivo de acuerdo con la reivindicación 15, donde el dispositivo electrónico es un dispositivo portátil de comunicaciones por radio. 17. Un producto de programa de ordenador que comprende un programa de carga de inicio y software, comprendiendo el producto de programa de ordenador medios de código de programa adaptado para provocar que un dispositivo electrónico lleve a cabo las operaciones del método de acuerdo con cualquiera de las reivindicaciones 1 a 14 cuando dichos medios de código de programa son ejecutados por el dispositivo electrónico. 14 16 17 18
Patentes similares o relacionadas:
Procedimiento de gestión de módulos de software integrados para una computadora electrónica de un dispositivo de conmutación eléctrica, del 17 de Junio de 2020, de SCHNEIDER ELECTRIC INDUSTRIES SAS: Procedimiento de gestión de módulos de software integrados para una computadora electrónica integrada de un dispositivo eléctrico de conmutación de […]
Comunicación de datos de recompensa entre aplicaciones, del 10 de Junio de 2020, de Outfit7 Limited: Método de comunicación de datos de recompensa desde una primera aplicación que se ejecuta en un dispositivo de procesamiento de datos hasta una segunda aplicación […]
Compartición de objetos de primera clase a través de múltiples lenguajes de programación interpretados, del 29 de Abril de 2020, de THE BOEING COMPANY: Un método para compartir construcciones de lenguaje entre diferentes lenguajes de secuencias de comandos basados en Java, en el que las construcciones del […]
Sistema de control de acceso al servicio y procedimiento que usa un agente del navegador integrado, del 15 de Abril de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un sistema de control de acceso al servicio que usa un agente del navegador integrado, comprendiendo el sistema:
un servidor que proporciona […]
Menú y configuración aumentada de búsqueda para aplicaciones informáticas, del 18 de Marzo de 2020, de Microsoft Technology Licensing, LLC: Un sistema, que comprende:
un componente de referencia configurado para acceder a un conjunto de metadatos almacenados en un archivo […]
Sistemas y métodos para sincronización de datos y gestión de conmutación por error, del 19 de Febrero de 2020, de IEX Group, Inc: Un método para ejecutar una aplicación de forma expeditiva en al menos un procesador informático, comprendiendo el método:
ejecutar simultáneamente una pluralidad de instancias […]
Aparatos y procedimientos de ampliación de servicios de aplicaciones, del 12 de Febrero de 2020, de QUALCOMM INCORPORATED: Un procedimiento para ampliar servicios de un dispositivo de usuario, que comprende:
identificar una primera aplicación residente en el dispositivo […]
Método para transmitir y verificar la validez de los datos de configuración en un sistema electrónico, sistema electrónico asociado y producto de programa informático, del 29 de Enero de 2020, de ALSTOM Transport Technologies: Método para transmitir y verificar la validez de los datos de configuración en un sistema electrónico con almacenamiento centralizado de los […]
Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .