ES2300454T3 - Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. - Google Patents

Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. Download PDF

Info

Publication number
ES2300454T3
ES2300454T3 ES02749158T ES02749158T ES2300454T3 ES 2300454 T3 ES2300454 T3 ES 2300454T3 ES 02749158 T ES02749158 T ES 02749158T ES 02749158 T ES02749158 T ES 02749158T ES 2300454 T3 ES2300454 T3 ES 2300454T3
Authority
ES
Spain
Prior art keywords
code
symbol
section
sections
memory
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
ES02749158T
Other languages
English (en)
Inventor
Gowri Rajaram
Paul Seckendorf
Diego Kaplan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Wireless Corp
Original Assignee
Kyocera Wireless Corp
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 US09/917,026 external-priority patent/US7328007B2/en
Priority claimed from US09/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/927,131 external-priority patent/US7143407B2/en
Priority claimed from US09/969,305 external-priority patent/US7386846B2/en
Application filed by Kyocera Wireless Corp filed Critical Kyocera Wireless Corp
Application granted granted Critical
Publication of ES2300454T3 publication Critical patent/ES2300454T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/20Transfer of user or subscriber data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Transceivers (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)
  • Sub-Exchange Stations And Push- Button Telephones (AREA)
  • Information Transfer Between Computers (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Método para gestionar software en un dispositivo de comunicación inalámbrica (104), comprendiendo dicho método: disponer una pluralidad de símbolos en una pluralidad de secciones de código (302, 304, 306, 308); crear una tabla de direcciones de desplazamiento de símbolo (328) que cruce los símbolos con las direcciones de desplazamiento correspondientes y las secciones de código correspondientes (302, 304, 306, 308); recibir una actualización del software (102) a través de una comunicación inalámbrica, comprendiendo la actualización del software (102) un símbolo actualizado y una porción de tabla de direcciones de desplazamiento de símbolo actualizada para actualizar al menos una parte de la tabla de direcciones de desplazamiento de símbolo (328); almacenar el símbolo actualizado en una de las secciones de código (302, 304, 306, 308); incorporar la porción de tabla de direcciones de desplazamiento de símbolo actualizada en la tabla de direcciones de desplazamiento de símbolo (328); almacenar el inicio (318, 320, 322, 324, 408, 410, 412, 414) de las secciones de código (302, 304, 306, 308) en las direcciones de inicio correspondientes; y mantener una tabla de direcciones de sección de código que cruce las secciones de código (302, 304, 306, 308) con las direcciones de inicio correspondientes (318, 320, 322, 324, 408, 410, 412, 414).

Description

Sistema y método para organizar un software para un dispositivo de comunicación inalámbrica actualizable sobre el terreno.
Antecedentes del invento Ámbito del invento
El presente invento hace referencia en general a dispositivos de comunicación inalámbricos y, más en particular, a un sistema y un método para organizar un software de forma que se puedan realizar actualizaciones y cambios sobre el terreno en el software de un sistema de un dispositivo de comunicación inalámbrica sobre el terreno a través de una interfaz aérea.
Descripción de la técnica relacionada
No es nada raro que se realicen actualizaciones para un software de teléfonos que ya están en el mercado. Estas actualizaciones pueden estar relacionadas con problemas descubiertos en el software una vez se han fabricado y distribuido los teléfonos al público. Algunas actualizaciones pueden implicar el empleo de nuevas características en el teléfono, o de los servicios ofrecidos por el proveedor del servicio. Sin embargo, otras actualizaciones pueden tener que ver con problemas regionales o problemas asociados a determinadas operadoras de telecomunicaciones. Por ejemplo, en algunas regiones, la distribución de la red de las operadoras puede que imponga situaciones de interfaz aérea que provocan que el microteléfono muestre un comportamiento inesperado como, por ejemplo, una búsqueda de canal incorrecta, una terminación de llamada inapropiada, un audio inadecuado o similares.
El planteamiento tradicional para llevar a cabo estas actualizaciones ha sido entregar el dispositivo de comunicación inalámbrica, denominado asimismo en este documento dispositivo inalámbrico, teléfono o microteléfono, en la tienda de la operadora de telecomunicaciones / punto de asistencia técnica más próximo, o al fabricante para procesar los cambios. Los costes que comportan estas actualizaciones son considerables y reducen el resultado neto. Además, son una molestia para el cliente y es probable que le irriten. A menudo, la solución práctica es dar al cliente un teléfono nuevo.
En US 5.771.386 (DE 19.502.728) ("Baumbauer") se describe un ejemplo de sistema convencional para configurar software en un dispositivo de telecomunicación. Baumbauer hace referencia a un dispositivo de telecomunicación con un software que consta de varias unidades de programa compilables por separado. A fin de reducir el tiempo necesario para fabricar el dispositivo y hacer los cambios en el software, Baumbauer informa de que cada unidad de programa tiene una cabecera que contiene las direcciones (Ap1, Ap2, Ad) que se utilizan para tratar los procedimientos y/o los datos combinados en las unidades de programa. Además, ofrece un catálogo que contiene referencias para tratar las cabeceras de las unidades de programa. El catálogo está disponible para todas las unidades de programa cargadas. Dentro del marco de la fabricación del dispositivo de telecomunicación, las unidades de programa predefinidas no necesitan estar conectadas cuando se implementa el software del dispositivo de telecomunicación. Baumbauer no informa de ningún dispositivo de comunicación inalámbrica actualizable in situ.
Sería conveniente que el software del dispositivo de comunicación inalámbrica pudiera actualizarse por poco dinero y sin molestias para el consumidor.
Sería conveniente que el software del dispositivo de comunicación inalámbrica pudiera actualizarse sin que el cliente pierda el uso de sus teléfonos durante un periodo de tiempo significativo.
Sería conveniente que el software del dispositivo de comunicación inalámbrica pudiera actualizarse en un tiempo de servicio técnico mínimo o sin necesidad de enviar el dispositivo a un servicio técnico.
Sería conveniente que el software del dispositivo de comunicación pudiera organizarse de manera que permitiera realizar modificaciones sobre el terreno a través de una interfaz aérea.
Resumen del invento
Las actualizaciones del software del aparato de comunicación inalámbrica ofrecen a los clientes el mejor producto posible y la mejor experiencia de usuario. La retirada de microteléfonos para actualizar el software es un componente caro del negocio. Estas actualizaciones pueden ser necesarias para ofrecer al usuario servicios adicionales o para abordar los problemas descubiertos durante la utilización del teléfono después de su fabricación. El presente invento hace posible la actualización práctica del software del microteléfono in situ, a través de una interfaz aérea.
El presente invento ofrece un método para gestionar el software de un dispositivo de comunicación inalámbrica de acuerdo con la reivindicación 1 y un dispositivo de comunicación inalámbrica que cuenta con un software de sistema actualizable de acuerdo con la reivindicación 12. En las reivindicaciones subordinadas 2 a 11 y 13 a 23, respectivamente, se describen formas de realización preferentes del presente invento.
Por consiguiente, se ofrece un método para organizar el software de un sistema actualizable sobre el terreno de un dispositivo de comunicación inalámbrica. El método comprende: hacer un código de software del sistema en una pluralidad de bibliotecas de símbolos, comprendiendo cada biblioteca símbolos con una funcionalidad relacionada; poner la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código de manera que las bibliotecas de símbolos comiencen al inicio de las secciones de código; crear una segunda pluralidad de bloques de memoria direccionados de forma contigua; identificar cada bloque de memoria con una sección de código correspondiente; almacenar las secciones de código en los bloques de memoria identificados, con el inicio de las secciones de código en las direcciones de inicio correspondientes; mantener una tabla de direcciones de sección de código que cruce los identificadores de sección de código con las direcciones de inicio correspondientes; y ejecutar el software del sistema del dispositivo inalámbrico.
Hacer un código de software del sistema en una primera pluralidad de bibliotecas de símbolos comporta hacer un código de acceso a símbolo. Disponer la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código comprende disponer cada símbolo de manera que se desplace desde su respectiva dirección de inicio de sección de código, y poner el código de acceso a símbolo en una primera sección de código. Después, el método comprende además: mantener una tabla de direcciones de desplazamiento de símbolo que cruce los identificadores de símbolo con las direcciones de desplazamiento correspondientes, e identificadores de sección de código correspondientes; y almacenar la dirección de código de acceso a símbolo en una primera ubicación de la memoria.
La tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo y los datos de lectura-escritura de todas las bibliotecas de símbolos, el código de acceso a símbolo que calcula las direcciones de los símbolos en la biblioteca mientras se ejecuta el software del sistema, y la dirección del código de acceso a símbolo se disponen como bibliotecas de símbolos en una sección de código común, por lo general una sección de código gestor de parches. Los datos de lectura-escritura, la tabla de direcciones de código de sección y el código de acceso a símbolo se cargan y se accede a ellos desde la memoria de lectura-escritura de acceso aleatorio.
Las secciones de código tienen el tamaño necesario para acomodar las bibliotecas de símbolos ordenados o son más grandes que las bibliotecas de símbolos ordenados, en el caso de que las bibliotecas de símbolos se actualicen con bibliotecas más grandes. En los bloques de memoria direccionados de forma contigua caben exactamente las secciones de código correspondientes.
A continuación se ofrecen otros detalles del método descrito más arriba y de una estructura de software para un sistema actualizable in situ de un dispositivo de comunicación inalámbrica.
Breve descripción de los dibujos
La figura 1 muestra un esquema de un diagrama de bloque de todo el sistema de mantenimiento del software del dispositivo inalámbrico;
La figura 2 muestra un esquema de un diagrama de bloque del sistema de mantenimiento del software, destacando la instalación de conjuntos de instrucciones a través de una interfaz aérea;
La figura 3 muestra un esquema de un diagrama de bloque de la estructura de software del sistema actualizable in situ del presente invento para su utilización en el dispositivo de comunicación inalámbrica;
La figura 4 muestra un esquema de un diagrama de bloque de la memoria del dispositivo inalámbrico;
La figura 5 muestra una tabla que representa la tabla de direcciones de la sección de código de la figura 3;
La figura 6 muestra una representación detallada de la biblioteca de símbolos uno de la figura 3, con símbolos;
La figura 7 muestra una tabla que representa la tabla de direcciones de desplazamiento de símbolo de la figura 3;
Las figuras 8a y 8b muestran diagramas de flujo que ilustran el método del presente invento para organizar un software para un sistema actualizable in situ de un dispositivo de comunicación inalámbrica.
Descripción detallada de las formas de realización preferentes del invento
Algunas porciones de las descripciones detalladas que siguen se presentan en términos de procedimientos, pasos, bloques lógicos, códigos, procesamiento y otras representaciones simbólicas de operaciones en bits de datos dentro de un microprocesador o memoria de un dispositivo inalámbrico. Estas descripciones y representaciones son los medios que utilizan los especialistas en las técnicas del tratamiento de datos para comunicar con más eficacia la sustancia de su trabajo a otras personas especializadas en la técnica. Un procedimiento, paso ejecutado por el microprocesador, aplicación, bloque lógico, proceso, etc., se concibe aquí, y en general, para que sea una secuencia de pasos o instrucciones con coherencia propia que se traduzca en un resultado deseado. Los pasos son aquellos que requieren manipulaciones físicas de cantidades físicas. Por lo general, aunque no necesariamente, estas cantidades toman la forma de señales eléctricas o magnéticas que se pueden almacenar, transferir, combinar, comparar y manipular de otro modo en un dispositivo inalámbrico basado en un microprocesador. Se ha demostrado que a veces es útil, sobre todo por razones de uso común, referirse a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números o equivalentes. Cuando se mencionan dispositivos físicos, como por ejemplo una memoria, éstos están conectados a otros dispositivos físicos por medio de un bus u otra conexión eléctrica. Se puede considerar que estos dispositivos físicos interaccionan con procesos o aplicaciones lógicas y, por lo tanto, se "conectan" a operaciones lógicas. Por ejemplo, una memoria puede almacenar un código de acceso para favorecer una operación lógica.
Habría que tener en cuenta, sin embargo, que todos estos términos y otros similares se asociarán a las cantidades físicas adecuadas y no son más que etiquetas útiles que se aplican a esas cantidades. Salvo que se indique concretamente de otro modo por resultar evidente de los análisis siguientes, se entenderá que en todo el presente invento, los comentarios que utilizan términos tales como "procesar" o "conectar" o "traducir" o "presentar" o "inducir" o "determinar" o "visualizar" o "reconocer" o similares se refieren a la acción y los procesos de un sistema de microprocesador de un dispositivo inalámbrico que manipula y transforma los datos representados como cantidades (electrónicas) físicas en los registros y memorias del sistema informático en otros datos que se representan de manera similar como cantidades físicas en las memorias o registros del dispositivo inalámbrico o en otros dispositivos de almacenamiento, transmisión o presentación de información.
La figura 1 muestra un esquema de un diagrama de bloque de todo el sistema de mantenimiento del software de un dispositivo inalámbrico 100. La organización del software del sistema del presente invento se presenta en detalle más abajo, a continuación de una visión general del sistema de mantenimiento del software 100. El sistema general 100 describe un proceso de suministro de actualizaciones y conjuntos de instrucciones (programas) del software del sistema, y de instalación del software suministrado en un dispositivo inalámbrico. Las actualizaciones del software del sistema o conjuntos de instrucciones de creación de parches (CICP) las crea el fabricante de los microteléfonos. El software del sistema se organiza en bibliotecas de símbolos. Las bibliotecas de símbolos se disponen en secciones de código. Cuando hay que actualizar las bibliotecas de símbolos, la actualización del software 102 se transporta como una o más secciones de código. La actualización del software se transmite a dispositivos inalámbricos in situ, de los que el dispositivo de comunicación inalámbrica 104 es representativo, o se transmite en comunicaciones independientes desde una estación base 106 utilizando protocolos de transporte aéreo de datos o mensajes convencionales muy conocidos. El invento no se limita a ningún formato de transporte concreto ya que el dispositivo de comunicación inalámbrica se puede modificar con facilidad para que procese cualquier protocolo de transporte sin hilos disponible para recibir el software del sistema y las actualizaciones de CICP.
El software del sistema se puede ver como una colección de subsistemas diferentes. Los códigos objetos se acoplan firmemente a uno de estos subsistemas abstractos y la colección resultante se etiqueta como biblioteca de símbolos. Esto ofrece un fallo lógico del código base y los parches y arreglos del software se asocian a una de estas bibliotecas de símbolos. En la mayoría de los casos, una sola actualización se asocia a una, o a lo sumo dos, bibliotecas de símbolos. El resto de los códigos base, las demás bibliotecas de símbolos, permanecen sin cambios.
La noción de bibliotecas de símbolos ofrece un mecanismo que permite ocuparse del código y las constantes. Los datos de lectura-escritura (LE), por otra parte, entran en una única biblioteca de LE específica que contiene datos basados en la RAM para todas las bibliotecas.
Una vez recibido por el dispositivo inalámbrico 104, hay que procesar la sección de código transportada. Este dispositivo inalámbrico sobrescribe una sección de código concreta de memoria no volátil 108. La memoria no volátil 108 cuenta con una sección de sistema de archivos (SSA) 110 y una sección de almacenamiento de códigos 112. La sección de código suele comprimirse antes del transporte para minimizar el espacio que la ocupa en la SSA 110. Muchas veces, la sección de código actualizada irá acompañada de datos de LE, que es otro tipo de biblioteca de símbolos que contiene todos los datos de LE de cada biblioteca de símbolos. Aunque se carga en una memoria de lectura-escritura de acceso aleatorio 114 cuando el software del sistema se está ejecutando, es necesario guardar siempre los datos de LE en la memoria no volátil 108 para que se puedan cargar en una memoria de lectura-escritura de acceso aleatorio 114 cada vez que se reinicializar el dispositivo inalámbrico. Esto incluye la primera vez que se cargan los datos de LE en la memoria de lectura-escritura de acceso aleatorio. Como se explica con más detalle a continuación, los datos de LE se disponen por lo general con una sección de código gestor de parches.
El sistema 100 comprende el concepto de tablas virtuales. Con estas tablas se puede arreglar (sustituir) bibliotecas de símbolos de una sección de código, sin romper (sustituir) otras partes del software del sistema (otras secciones de código). A efectos de eficiencia, las tablas virtuales se ejecutan de la memoria de lectura-escritura de acceso aleatorio 114. Una tabla de direcciones de sección de código y una tabla de desplazamiento de símbolo son tablas virtuales.
El dispositivo inalámbrico 104 recibe las secciones de código actualizadas y las almacena en la SSA 110. Una interfaz de usuario (IU) notificará por regla general al usuario que el nuevo software está disponible. En respuesta a las peticiones del IU, el usuario acusa recibo de la notificación y señala el arreglo u operación de actualización. Otra posibilidad es realizar la operación de actualización automáticamente. Es posible que el dispositivo inalámbrico no pueda llevar a cabo las tareas de comunicación estándar mientras se realiza el proceso de actualización. La sección de código gestor de parches tiene una biblioteca de símbolos con un controlador de lectura-escritura no volátil que también se carga en la memoria de lectura-escritura de acceso aleatorio 114. La biblioteca de símbolos con controlador de lectura-escritura no volátil hace que las secciones de código actualizadas se sobrescriban en las secciones de código anteriores. Como se muestra en la figura, la sección de código n y las secciones de código gestor de parches están sobrescritas con las secciones de código actualizadas. La sección de código gestor de parches comprende los datos de lectura-escritura, una tabla de direcciones de sección de código, y una tabla de direcciones de desplazamiento de símbolo, además de un código de acceso a símbolo y la dirección del código de acceso a símbolo (analizados a continuación). Cuando se introducen secciones de código actualizadas, se invalidan partes de estos datos; y una sección de código gestor de parches actualizada consta de datos de lectura-escritura, una tabla de direcciones de sección de código y una tabla de desplazamiento de símbolo válida para las secciones de código actualizadas. Una vez se han cargado las secciones de código actualizadas en la sección de almacenamiento de códigos 112, se reinicia el dispositivo inalámbrico. Tras la operación de reiniciación, el dispositivo inalámbrico puede ejecutar el software del sistema actualizado. Debe entenderse que la sección de código gestor de parches puede constar de otras bibliotecas de símbolos que no se han tratado más arriba. No es necesario cargar estas otras bibliotecas de símbolos en la memoria de lectura-escritura 114.
La figura 2 muestra un esquema de un diagrama de bloque del sistema de mantenimiento del software 100, en la que se destaca la instalación de conjuntos de instrucciones a través de la interfaz aérea. Además de actualizar las secciones de código del software del sistema, el sistema de mantenimiento 100 puede descargar e instalar conjuntos de instrucciones o programas, denominados aquí conjunto de instrucciones del creador de parches (CICP). La sección de código CICP 200 se transporta al dispositivo inalámbrico 104 de la misma forma que las secciones de código del software del sistema descritas anteriormente. Las secciones de código CICP se almacenan en principio en la SSA 110. Una sección de código CICP suele ser un archivo binario que se visualiza en el microteléfono en forma de instrucciones compiladas. Una sección de código CICP es lo bastante extensa como para facilitar la ejecución de operaciones matemáticas básicas y de operaciones ejecutadas con reservas. Por ejemplo, un CICP para calibrar una RF podría llevar a cabo las operaciones siguientes:
SI EL ELEMENTO CAL DE RF ES MENOR QUE X
EJECUTAR INSTRUCCIÓN
SI NO
EJECUTAR INSTRUCCIÓN
Un CICP acepta operaciones matemáticas básicas tales como suma, resta, multiplicación y división. Al igual que las secciones de código del software del sistema, la sección de código CICP se puede cargar en respuesta a las peticiones del IU, y tras cargar el CICP en la sección de almacenamiento de códigos 112, hay que reiniciar el dispositivo inalámbrico. Seguidamente, se ejecuta la sección CICP. Si la sección de código CICP se asocia a cualquier tabla virtual o datos de lectura-escritura, se transportará junto con el CICP una sección de código gestor de parches actualizada, que se instalará en la sección de almacenamiento de códigos 112. Si no, se puede guardar y procesar el CICP del SSA 110. Después de que el microteléfono 104 haya ejecutado todas las instrucciones de la sección CICP, esta sección se puede borrar de la SSA 110.
En algunos aspectos del invento, la organización del software del sistema en bibliotecas de símbolos puede afectar al tamaño de la memoria volátil 114 y de la memoria no volátil 108 necesarias para su ejecución. Ello se debe a que las secciones de código son por lo general más grandes que las bibliotecas de símbolos dispuestas en las secciones de código. Estas secciones de código mayores sirven para alojar las secciones de código actualizadas. Organizar el software del sistema en forma de colección de bibliotecas afecta a los requisitos de tamaño de la memoria no volátil. Para el mismo tamaño de código, la cantidad de memoria no volátil utilizada será mayor debido a que las secciones de código se pueden hacer de un tamaño mayor que el de las bibliotecas de símbolos dispuestas en su interior.
El CICP es un motor de instrucción de tiempo de ejecución muy potente. El microteléfono puede ejecutar cualquier instrucción que se le suministre a través del entorno del CICP Este mecanismo se utiliza para apoyar los calibrados de RF y las actualizaciones de la interfaz de acceso primario. Más en general, el CICP se puede utilizar para depurar a distancia el software del dispositivo inalámbrico cuando el fabricante o el proveedor de servicios reconoce problemas en el software, normalmente a raíz de las quejas del usuario. El CICP también puede registrar los datos necesarios para diagnosticar los problemas del software. El CICP pone en servicio las aplicaciones del sistema recién descargadas con el fin de analizar datos, realizar depuraciones y arreglos. El CICP puede facilitar actualizaciones basadas en los datos de LE para analizar y posiblemente arreglar a corto plazo un problema en vez de una sección de código de software del sistema actualizada. El CICP ofrece algoritmos para comprimir la memoria que se utilizan con el dispositivo inalámbrico.
Una vez se han suministrado las actualizaciones del software al dispositivo inalámbrico, el sistema de mantenimiento del software 100 soporta la compresión de memoria. La compresión de memoria es parecida a las aplicaciones de desfragmentación del disco de los ordenadores de sobremesa. El mecanismo de compresión garantiza que la memoria se utiliza de forma óptima y está bien equilibrada para futuras actualizaciones de sección de código en que el tamaño de las secciones de código actualizadas son impredecibles. El sistema 100 analiza la sección de almacenamiento de códigos mientras se está parcheando (actualizando). El sistema 100 intenta introducir las secciones de código actualizadas en el espacio de memoria ocupado por la sección de código que se está sustituyendo. Si la sección de código actualizada es más grande que la sección de código que se está sustituyendo, el sistema 100 comprime las secciones de código en la memoria 112. Otra posibilidad es que el fabricante o el proveedor de servicios calcule la compresión, y entonces las instrucciones de compresión se transportan al dispositivo inalámbrico 104.
La compresión puede ser un proceso muy largo debido a la complejidad del algoritmo y también al vasto volumen de movimiento de datos. El algoritmo de compresión predice la viabilidad antes de empezar cualquier proceso. Las peticiones del IU se utilizan para solicitar permiso al usuario antes de intentar llevar a cabo la compresión.
En algunos aspectos del invento, todas las secciones de código del software del sistema se actualizan al mismo tiempo. Sin embargo, una actualización completa del software del sistema requeriría una SSA 110 más grande.
La figura 3 muestra un esquema de un diagrama de bloque del presente invento de estructura de software de sistema actualizable sobre el terreno para su uso en el dispositivo de comunicación inalámbrica 104. La estructura de software del sistema 300 comprende un software de sistema ejecutable diferenciado en una segunda pluralidad de secciones de código. Se muestran las secciones de código uno (302) dos (304) y n (306), así como de la sección de código gestor de parches 308; sin embargo, el invento no se limita a un número concreto de secciones de código. El sistema 300 comprende además una primera pluralidad de bibliotecas de símbolos dispuestas en la segunda pluralidad de secciones de código. Se muestran la biblioteca de símbolos uno (310) en la sección de código uno (302), las bibliotecas de símbolos dos (312) y tres (314) dispuestas en la sección de código dos (304), y la biblioteca de símbolos n (316), dispuesta en la sección de código n (306). Cada biblioteca consta de símbolos que tienen una funcionalidad afín. Por ejemplo, la biblioteca de símbolos uno (310) puede participar en el funcionamiento de la pantalla de cristal líquido (LCD) del dispositivo inalámbrico. Después, los símbolos se asociarían a funciones de visualización. Como se explica en detalle más abajo, las bibliotecas de símbolos adicionales están en la sección de código gestor de parches 308.
La figura 4 muestra un esquema de un diagrama de bloque de la memoria del dispositivo inalámbrico. Tal como se muestra, la memoria es la sección de almacenamiento de códigos 112 de la figura 1. La memoria es una memoria no volátil en la que se puede escribir, como por ejemplo una memoria Flash. Debe entenderse que las secciones de código no tienen que almacenarse necesariamente en la misma memoria que la SSA 110. Debe entenderse asimismo que la estructura de software del sistema del presente invento podría activarse con secciones de código almacenadas en una pluralidad de memorias cooperadoras. La sección de almacenamiento de códigos 112 incluye una segunda pluralidad de bloques de memoria direccionados de forma contigua, donde cada bloque de memoria almacena una sección de código correspondiente de la segunda pluralidad de secciones de código. Así, la sección de código uno (302) se guarda en un primer bloque de memoria 400, la sección de código dos (304) en el segundo bloque de memoria 402, la sección de código n (306) en el bloque de memoria n^{avo} 404, y la sección de código gestor de parches (308) en el bloque de memoria p^{avo} 406.
Si se comparan las figuras 3 y 4, el inicio de cada sección de código se almacena en las direcciones de inicio correspondientes de la memoria, y las bibliotecas de símbolos están dispuestas para empezar al inicio de las secciones de código. Es decir, cada biblioteca de símbolos empieza en una primera dirección y pasa por una serie de direcciones en secuencia desde la primera dirección. Por ejemplo, la sección de código uno (302) empieza en la primera dirección de inicio 408 (señalada con una "S") de la memoria de la sección de almacenamiento de códigos 112. En la figura 3, la biblioteca de símbolos uno (310) empieza al principio 318 de la primera sección de código. Del mismo modo, la sección de código dos (304) empieza en una segunda dirección de inicio 410 (figura 4), y la biblioteca de símbolos dos empieza al principio 320 de la sección de código dos (figura 3). La sección de código n (306) empieza en una tercera dirección de inicio 412 de la memoria de la sección de almacenamiento de códigos 112 (figura 4), y la biblioteca de símbolos n (316) empieza en el principio de la sección de códigos n 322 (figura 3). La sección de código gestor de parche empieza en la dirección de inicio p^{avo} 414 de la sección de almacenamiento de códigos 112, y la primera biblioteca de símbolos de la sección de código gestor de parches 308 empieza al principio 324 de la sección de código gestor de parches. Así, la biblioteca de símbolos uno (310) se almacena finalmente en el primer bloque de memoria 400. Si una sección de código tiene una pluralidad de bibliotecas de símbolos, como la sección de código dos (304), la pluralidad de bibliotecas de símbolos se guarda en el bloque de memoria correspondiente, en este caso el segundo bloque de memoria 402.
En la figura 3, la estructura de software del sistema 300 comprende además una tabla de direcciones de sección de código 326 en forma de un tipo de símbolo incluido en una biblioteca de símbolos dispuesta en la sección de código gestor de parches 308. La tabla de direcciones de la sección de código cruza en la memoria los identificadores de la sección de código con las direcciones de inicio de sección de código correspondientes.
La figura 5 muestra una tabla que representa la tabla de direcciones de sección de código 326 de la figura 3. Para encontrar la dirección de inicio de la sección de código de una biblioteca de símbolos, se consulta la tabla de direcciones de sección de código 326. Por ejemplo, el sistema 300 busca la sección de código uno cuando se necesita un símbolo de la biblioteca de símbolos uno para ejecutarlo. Para encontrar la dirección de inicio de la sección de código uno, y localizar, por lo tanto, el símbolo en la biblioteca de símbolos uno, se consulta la tabla de direcciones de sección de código 326. La disposición de las bibliotecas de símbolos en secciones de código y la localización de las secciones de código con una tabla permite mover o ampliar las secciones de código. Para instalar secciones de código actualizadas (con bibliotecas de símbolos actualizadas), puede que sea necesario llevar a cabo las operaciones de ampliación o de desplazamiento.
Volviendo a la figura 3, debe tenerse en cuenta que no todas las bibliotecas de símbolos empiezan necesariamente al principio de una sección de código. Como se muestra, la biblioteca de símbolos tres (314) se encuentra en la sección de código dos (304), pero no empieza la dirección de inicio de la sección de código 320. De modo que, si se necesita un símbolo de una biblioteca de símbolos tres (314) para ejecutarlo, el sistema 300 consulta la tabla de direcciones de sección de código 326 para buscar la dirección de inicio de la sección de código dos (304). Como se explica más abajo, una tabla de direcciones de desplazamiento de símbolo permite localizar los símbolos en la biblioteca de símbolos tres (314). No importa que los símbolos estén esparcidos por múltiples bibliotecas mientras se mantengan en la misma sección de código.
Como se ha observado anteriormente, cada biblioteca de símbolos contiene símbolos relacionados funcionalmente. Un símbolo es un nombre definido por el programador para localizar y utilizar un cuerpo de rutina, una variable, o una estructura de datos. Así, un símbolo puede ser una dirección o un valor. Los símbolos pueden ser internos o externos. Los símbolos internos no se pueden ver fuera del ámbito de la sección de código actual. Más en concreto, otras bibliotecas de símbolos no los buscan en otras secciones de código. Los símbolos externos se utilizan y se solicitan por las secciones de código y las bibliotecas los buscan en diferentes secciones de código. La tabla de direcciones de desplazamiento de símbolo suelen incluir una lista de todos los símbolos externos.
Por ejemplo, la biblioteca de símbolos uno puede generar caracteres en una pantalla de un dispositivo inalámbrico. Los símbolos de esta biblioteca generarían, a su vez, números de teléfono, nombres, la hora u otras características de pantalla. Cada característica se genera con rutinas, denominadas aquí símbolos. Por ejemplo, una símbolo de la biblioteca de símbolos uno (310) genera números de teléfono en la pantalla. Este símbolo se representa con una "X" y es externo. Cuando el dispositivo inalámbrico recibe una llamada telefónica y el servicio de ID de la persona que llama está activado, el sistema debe ejecutar el símbolo "X" para generar el número en la pantalla. Por lo tanto, el sistema debe localizar el símbolo "X".
La figura 6 muestra una representación detallada de la biblioteca de símbolos uno (310) de la figura 3, con símbolos. Los símbolos están contenidos para que se desplacen de las respectivas direcciones de inicio de la sección de código. En muchas circunstancias, el principio de la biblioteca de símbolos es el principio de una sección de código, pero esto no es así si una sección de código tiene más de una biblioteca de símbolos. La biblioteca de símbolos uno empieza al principio de la sección de código uno (véase la figura 3). Como se muestra en la figura 6, el símbolo "X" se encuentra en un desplazamiento transversal (03) del principio de la biblioteca de símbolos y el símbolo "Y" se encuentra en un desplazamiento transversal (15). Las direcciones de desplazamiento de símbolo se guardan en una tabla de direcciones de desplazamiento de símbolo 328 de la sección de código gestor de parches (véase la figura 3).
La figura 7 muestra una tabla que representa la tabla de direcciones de desplazamiento de símbolo 328 de la figura 3. La tabla de direcciones de desplazamiento de símbolo 328 cruza en la memoria los identificadores de símbolo con las direcciones de desplazamiento correspondientes y con los identificadores de sección de código correspondientes. Así, cuando el sistema trata de ejecutar el símbolo "X" de la biblioteca de símbolos uno, consulta la tabla de direcciones de desplazamiento de símbolo 328 para localizar la dirección exacta del símbolo con respecto a la sección de código en que está situada.
Volviendo a la figura 3, la primera pluralidad de bibliotecas de símbolos incluye por lo general todos los datos de lectura-escritura que deben consultarse o fijar en la ejecución de estas bibliotecas de símbolos. Por ejemplo, una biblioteca de símbolos puede comprender una operación que depende de una instrucción condicional. La sección de datos de lectura-escritura se consulta para determinar el estatus necesario para completar la instrucción condicional. El presente invento agrupa los datos de lectura-escritura de todas las bibliotecas de símbolos en una sección de lectura-escritura compartida. En algunos aspectos del invento, los datos de lectura-escritura 330 están en la sección de código gestor de parches 308. Otra posibilidad (no se muestra) es disponer los datos de lectura-escritura en una sección de código diferente, por ejemplo, en la sección de código n (306).
La primera pluralidad de bibliotecas de símbolos incluye asimismo un código de acceso a símbolo situado en una sección de código para calcular la dirección del símbolo solicitado. El código de acceso a símbolo se encuentra y se almacena en una dirección de una sección de código aparte, la sección de código 2 (304), por ejemplo. Sin embargo, tal como se muestra, el código de acceso a símbolo 332 se encuentra y se almacena en una dirección de la sección de código gestor de parches 308. La estructura de software del sistema 300 comprende además una primera ubicación para almacenar la dirección del código de acceso a símbolo. La primera ubicación se encuentra en una sección de código de la sección de almacenamiento de códigos 112, o en una sección de memoria aparte del dispositivo inalámbrico (no se muestra). La primera ubicación también se puede disponer en la misma sección de código que los datos de lectura-escritura. Como se muestra, la primera ubicación 334 se almacena en la sección de código gestor de parches 308 con los datos de lectura-escritura 330, la tabla de direcciones de desplazamiento de símbolo, la tabla de direcciones de la sección de código 326 y el código de acceso a símbolo 332 y la biblioteca de parches (biblioteca de símbolos de parche) 336.
El código de acceso a símbolo utiliza la tabla de direcciones de sección de código y las tablas de direcciones de desplazamiento de símbolo para buscar en la memoria la dirección exacta del símbolo solicitado. O sea, el código de acceso a símbolo accede a la tabla de direcciones de sección de código y a la tabla de direcciones de desplazamiento de símbolo para calcular la dirección del símbolo que busca. Por ejemplo, si se busca el símbolo "X" en la biblioteca de símbolos uno, se solicita el acceso a símbolo para buscar el identificador del símbolo (ID de símbolo) X_1, correspondiente al símbolo "X" (véase la figura 7). El código de acceso a símbolo consulta la dirección de desplazamiento de símbolo para establecer que el identificador de símbolo X_1 tiene un desplazamiento transversal de (03) a partir del inicio de la sección de código uno (véase la figura 6). El código de acceso a símbolo se solicita para buscar el identificador de la sección de código CS_1, correspondiente a la sección de código uno. El código de acceso a símbolo consulta la tabla de direcciones de sección de código para establecer la dirección de inicio asociada al identificador de la sección de código (ID de sección de código) CS_1. De este modo, el código de acceso a símbolo determina que el identificador de símbolo X_1 está desplazado (03) de la dirección (00100) o se encuentra en la dirección (00103).
El símbolo "X" es un nombre reservado porque forma parte del código real. En otras palabras, tiene unos datos absolutos asociados al mismo. Los datos pueden ser una dirección o un valor. El identificador de símbolo es un alias creado para seguir al símbolo. La tabla de direcciones de desplazamiento de símbolo y la tabla de direcciones de sección de código funcionan con identificadores para evitar la confusión con los nombres de símbolo y de sección de código reservados. También es posible que se utilice el mismo nombre de símbolo en muchas bibliotecas de símbolos. La utilización de identificadores impide la confusión entre estos símbolos.
Volviendo a la figura 1, la estructura de software del sistema 100 comprende además una memoria de lectura-escritura 114, generalmente una memoria de acceso aleatorio (RAM). Los datos de lectura-escritura 330, la tabla de direcciones de sección de código 326, la tabla de direcciones de desplazamiento de símbolo 328, el código de acceso a símbolo 332 y la dirección del código de acceso a símbolo 334 se cargan en la memoria de lectura-escritura 114 desde la sección gestor de parches para poder acceder durante la ejecución del software del sistema. Como se sabe, los tiempos de acceso para un código almacenado en la RAM son significativamente inferiores a los de acceso a una memoria no volátil como la Flash.
Volviendo a la figura 3, se observa que las bibliotecas de símbolos no necesariamente llenan las secciones de código en las que se encuentran, aunque los bloques de memoria tengan el tamaño necesario para alojar exactamente las secciones de código correspondientes almacenadas en su interior. Otra posibilidad indicada es que cada segunda pluralidad de secciones de código tenga un tamaño en bytes que permita alojar las bibliotecas de símbolos dispuestas, y que cada bloque de memoria direccionado de forma contigua tenga un tamaño en bytes que permita alojar las secciones de código correspondientes. Por ejemplo, la sección de código uno (302) puede ser una sección de 100 bytes para alojar una biblioteca de símbolos que tenga una longitud de 100 bytes. El primer bloque de memoria sería de 100 bytes para que coincida con el tamaño de bytes de la sección de código uno. Sin embargo, la biblioteca de símbolos cargada en la sección de código uno puede tener menos de 100 bytes. Como se muestra en la figura 3, la sección de código uno (302) tiene una sección no utilizada 340 ya que la biblioteca de símbolos uno (310) tiene menos de 100 bytes. Así, cada segunda pluralidad de las secciones de código puede tener un tamaño mayor que el necesario para alojar las bibliotecas de símbolos dispuestas en su interior. "Sobredimensionar" las secciones de código permite alojar bibliotecas de símbolos actualizadas más grandes.
Las figuras 8a y 8b muestran diagramas de flujo que ilustran el método del presente invento para organizar el software de un sistema actualizable sobre el terreno de un dispositivo de comunicación inalámbrica. Aunque para que el método se vea más claro se describe como una secuencia de pasos numerados, de la numeración no deberá inferirse ningún orden, a no ser que se indique explícitamente. El método empieza en el paso 800. El paso 802 forma el software de sistema en una primera pluralidad de bibliotecas de símbolos; cada biblioteca de símbolos comprende símbolos que tienen una funcionalidad relacionada. El paso 804 dispone la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código. El paso 806 ejecuta el software del sistema del dispositivo inalámbrico.
Disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código incluye iniciar las bibliotecas de símbolos al principio de las secciones de código, y el método comprende otros pasos. El paso 805a almacena el inicio de las secciones de código en las direcciones de inicio correspondientes. El paso 805b mantiene una tabla de direcciones de sección de código cruzando los identificadores de sección de código con las direcciones de inicio correspondientes.
Disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código consiste en disponer los símbolos que se desplazarán de sus respectivas direcciones de inicio de sección de código. Después, el paso 805c mantiene una tabla de direcciones de desplazamiento de símbolo que cruza identificadores de símbolo con las direcciones de desplazamiento correspondientes y con los identificadores de sección correspondientes.
En algunos aspectos del invento, formar en el paso 802 un código de software de sistema en una primera pluralidad de bibliotecas de símbolos consiste en crear datos de lectura-escritura para la pluralidad de bibliotecas de símbolos. Disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código incluye disponer los datos de lectura-escritura en una sección de código de lectura-escritura compartida.
En algunos aspectos del invento, formar en el paso 802 un código de software de sistema en una primera pluralidad de bibliotecas de símbolos comprende crear un código de acceso a símbolo, y disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código comprende disponer el código de acceso a símbolo en una primera sección de código. Luego, en el paso 806, ejecutar las secciones de código como software de sistema incluye varios subpasos. El paso 806a carga una tercera pluralidad de bibliotecas de símbolos en una memoria de lectura-escritura, generalmente la RAM. La tercera pluralidad de bibliotecas de símbolos no necesariamente tiene que contener todas las bibliotecas de símbolos de la sección de código gestor de parches. La tercera pluralidad de bibliotecas de símbolos contiene asimismo bibliotecas de símbolos que están en otras secciones de código, aparte de la sección de código gestor de parches. El paso 806b, en respuesta a la referencia a la primera ubicación de la memoria, accede al código de acceso a símbolo. El paso 806c pide al código de acceso a símbolo que calcule la dirección del símbolo solicitado utilizando el identificador de símbolo correspondiente y un identificador de sección de código correspondiente. El paso 806d accede a la tercera pluralidad de bibliotecas de símbolos de la RAM.
Solicitar, en el paso 806b, el código de acceso a símbolo para calcular la dirección del símbolo solicitado comprende acceder a la tabla de direcciones de sección de código y a la tabla de direcciones de desplazamiento de símbolo para calcular la dirección de dicho símbolo. Por lo general, almacenar, en el paso 805d, la dirección del código de acceso a símbolo en una primera ubicación de la memoria comprende almacenar la dirección del código de acceso a símbolo en la primera sección de código.
En algunos aspectos del invento, disponer en el paso 804 la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código consiste en poner los datos de lectura-escritura, la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo, y el código de acceso a símbolo en la primera sección de código, por lo general la sección de código gestor de parches. Después, el paso 806a, carga los datos de lectura-escritura, la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo, el código de acceso a símbolo, y la dirección de código de acceso a símbolo de la primera sección de código de la memoria de lectura-escritura (generalmente, la RAM). El paso 806d accede a los datos de lectura-escritura, la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo, el código de acceso a símbolo, y la dirección de código de acceso a símbolo de la memoria de lectura-escritura.
Almacenar en el paso 805a el inicio de las secciones de código en las direcciones de inicio correspondientes consta de varios subpasos. El paso 805a1 crea una segunda pluralidad de bloques de memoria direccionados de forma contigua. El paso 805a2 identifica cada bloque de memoria con una sección de código correspondiente. El paso 805a3 guarda las secciones de código en los bloques de memoria identificados.
En algunos aspectos del invento, disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código consiste en poner una tercera pluralidad de bibliotecas de símbolos en una primera sección de código. Después, en el paso 805a2, identificar cada bloque de memoria con una sección de código correspondiente comprende identificar un primer bloque de memoria con la primera sección de código, y almacenar, en el paso 805a3, secciones de código en los bloques de memoria identificados incluye almacenar la tercera pluralidad de bibliotecas de símbolos en el primer bloque de memoria.
Como alternativa, disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código comprende poner una primera biblioteca de símbolos en una primera sección de código. Después, en el paso 805a3, identificar cada bloque de memoria con una sección de código correspondiente incluye identificar un primer bloque de memoria con la primera sección de código, y almacenar, en el paso 805a3, las secciones de código en los bloques de memoria identificados incluye almacenar la primera biblioteca de símbolos en el primer bloque de memoria.
Disponer, en el paso 804, la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código comprende establecer el tamaño de las secciones de código para que puedan alojar las bibliotecas de símbolos dispuestas en las mismas. Después, en el paso 805a1, crear una segunda pluralidad de bloques de memoria direccionados de forma contigua comprende establecer el tamaño de los bloques de memoria para que puedan alojar las secciones de código correspondientes. Si no, en el paso 804, disponer la primera pluralidad de bibliotecas de símbolos en una segunda pluralidad de secciones de código comprende establecer el tamaño de las secciones de código para que puedan acomodar tamaños más grandes que las bibliotecas de símbolos dispuestas en las mismas.
Se ha ofrecido un sistema y método para organizar un software de sistema de un dispositivo inalámbrico para realizar actualizaciones in situ a través de una interfaz aérea. El sistema se puede actualizar con facilidad gracias a la disposición de bibliotecas de símbolos en secciones de código, con tablas para acceder a las direcciones de inicio de las secciones de código de la memoria y a las direcciones de desplazamiento de símbolo de las bibliotecas de símbolos. Aunque se han dado unos cuantos ejemplos de estas disposiciones de las bibliotecas y tablas de referencia cruzada para una función de pantalla, el presente invento no se limita simplemente a estos ejemplos. A los especialistas en la técnica se les ocurrirán otras variantes y formas de realizaciones del invento.

Claims (23)

1. Método para gestionar software en un dispositivo de comunicación inalámbrica (104), comprendiendo dicho método: disponer una pluralidad de símbolos en una pluralidad de secciones de código (302, 304, 306, 308); crear una tabla de direcciones de desplazamiento de símbolo (328) que cruce los símbolos con las direcciones de desplazamiento correspondientes y las secciones de código correspondientes (302, 304, 306, 308); recibir una actualización del software (102) a través de una comunicación inalámbrica, comprendiendo la actualización del software (102) un símbolo actualizado y una porción de tabla de direcciones de desplazamiento de símbolo actualizada para actualizar al menos una parte de la tabla de direcciones de desplazamiento de símbolo (328); almacenar el símbolo actualizado en una de las secciones de código (302, 304, 306, 308); incorporar la porción de tabla de direcciones de desplazamiento de símbolo actualizada en la tabla de direcciones de desplazamiento de símbolo (328); almacenar el inicio (318, 320, 322, 324, 408, 410, 412, 414) de las secciones de código (302, 304, 306, 308) en las direcciones de inicio correspondientes; y mantener una tabla de direcciones de sección de código que cruce las secciones de código (302, 304, 306, 308) con las direcciones de inicio correspondientes (318, 320, 322, 324, 408, 410, 412, 414).
2. Método de la reivindicación 1, en el que un símbolo comprende datos de lectura-escritura (330) y en el que el paso de colocación comprende además disponer los datos de lectura-escritura (330) en una sección de código de lectura-escritura compartida.
3. Método de la reivindicación 1, en el que el paso de creación comprende además: crear un código de acceso a símbolo (332); disponer el código de acceso a símbolo (332) en una sección de código (302, 304, 306, 308); almacenar la dirección del código de acceso a símbolo (332) en la memoria; y pedir el código de acceso a símbolo (332) para calcular la dirección de un símbolo solicitado utilizando un identificador de símbolo correspondiente y un identificador de sección de código correspondiente.
4. Método de la reivindicación 3, en el que el paso de petición comprende además acceder a la tabla de direcciones de sección de código y a la tabla de direcciones de desplazamiento de símbolo (328) para calcular la dirección del símbolo solicitado.
5. Método de la reivindicación 3, en el que almacenar la dirección del código de acceso a símbolo (334) en una primera ubicación de la memoria comprende almacenar la dirección del código de acceso a símbolo (334) en la primera sección de código (302, 304, 306, 308).
6. Método de la reivindicación 3, en el que el paso de disposición del código de acceso a símbolo (332) comprende además poner los datos de lectura-escritura (330), la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo (328) y el código de acceso a símbolo (332) en una sola de las secciones de código (302, 304, 306, 308).
7. Método de la reivindicación 6, comprendiendo además el paso de ejecutar un software de sistema actualizable in situ, incluyendo el paso de ejecución: cargar los datos de lectura-escritura (330), la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo (328), el código de acceso a símbolo (332) y la dirección del código de acceso a símbolo (332) de una sección de código (302, 304, 306, 308) en una memoria de lectura-escritura (114); y acceder a los datos de lectura-escritura (330), la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo (328), el código de acceso a símbolo (332) y la dirección del código de acceso a símbolo (334) de la memoria de lectura-escritura.
8. Método de la reivindicación 1, en el que almacenar el inicio (318, 320, 322, 324, 408, 410, 412, 414) de las secciones de código (302, 304, 306, 308) en las direcciones de inicio correspondientes (318, 320, 322, 324, 408, 410, 412, 414) incluye: crear una pluralidad de bloques de memoria direccionados de forma contigua; identificar cada bloque de memoria con una sección de código correspondiente (302, 304, 306, 308); y almacenar las secciones de código (302, 304, 306, 308) en los respectivos bloques de memoria identificados.
9. Método de la reivindicación 8, en el que disponer la pluralidad de símbolos en una pluralidad de secciones de código (302, 304, 306, 308) comprende poner dos o más símbolos en una sola sección de código (302, 304, 306, 308).
10. Método de la reivindicación 8, en el que disponer la pluralidad de símbolos en una pluralidad de secciones de código (302, 304, 306, 308) comprende poner un único símbolo en una sola sección de código (302, 304, 306, 308).
11. Método de la reivindicación 8, en el que el paso de disponer la primera pluralidad de símbolos comprende establecer el tamaño de una sección de código (302, 304, 306, 308) para que pueda alojar tamaños más grandes que el símbolo correspondiente.
12. Dispositivo de comunicación inalámbrica (104) con un software de sistema actualizable in situ, comprendiendo: un software de sistema ejecutable, actualizable in situ, diferenciado en una pluralidad de secciones de código (302, 304, 306, 308), en el que cada sección de código (302, 304, 306, 308) comprende uno o más símbolos, teniendo los símbolos las direcciones de desplazamiento correspondientes, comprendiendo desplazamientos desde las direcciones de inicio (318, 320, 322, 324, 408, 410, 412, 414) de las secciones de código correspondientes (302, 304, 306, 308); una tabla de direcciones de desplazamiento de símbolo (328) que cruza símbolos con las direcciones de desplazamiento correspondientes y las secciones de código correspondientes (302, 304, 306, 308); y una tabla de direcciones de sección de código que cruza las secciones de código (302, 304, 306, 308) con las direcciones de inicio de sección de código correspondientes (318, 320, 322, 324, 408, 410, 412, 414) en la memoria.
13. Dispositivo de comunicación inalámbrica de la reivindicación 12, en el que la pluralidad de secciones de código (302, 304, 306, 308) comprende una sección de lectura-escritura compartida, y en el que la pluralidad de bibliotecas de símbolos comprende datos de lectura-escritura (330) que se encuentran en la sección de lectura-escritura.
14. Dispositivo de comunicación inalámbrica de la reivindicación 12, en el que la pluralidad de símbolos comprende un código de acceso a símbolo (332) que está en una primera sección de código (302, 304, 306, 308) para calcular la dirección de un símbolo solicitado, y en el que la memoria comprende el código de acceso a símbolo (332) almacenado en una dirección, comprendiendo además: una primera ubicación para almacenar la dirección del código de acceso a símbolo (334).
15. Dispositivo de comunicación inalámbrica de la reivindicación 14, en el que el código de acceso a símbolo (332) accede a la tabla de direcciones de la sección código y a la tabla de direcciones de desplazamiento de símbolo (328) para calcular la dirección del símbolo solicitado.
16. Dispositivo de comunicación inalámbrica de la reivindicación 15, en el que la primera ubicación está en la primera sección de código (302, 304, 306, 308).
17. Dispositivo de comunicación inalámbrica de la reivindicación 15, en el que uno o más símbolos comprenden datos de lectura-escritura (330), la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo (328), y el código de acceso a símbolo (332) que están en la primera sección de código (302, 304, 306, 308).
18. Dispositivo de comunicación inalámbrica de la reivindicación 17, comprendiendo además: una memoria volátil de lectura-escritura (114), en la que los datos de lectura-escritura (330), la tabla de direcciones de sección de código, la tabla de direcciones de desplazamiento de símbolo (328), el código de acceso a símbolo (332) y la dirección del código de acceso a símbolo (334) se cargan en la memoria de lectura-escritura (114) de la primera sección de código (302, 304, 306, 308) para acceder a ellos durante la ejecución del software del sistema.
19. Dispositivo de comunicación inalámbrica de la reivindicación 12, en el que la memoria comprende una pluralidad de bloques de memoria direccionados de forma contigua, almacenando cada bloque de memoria una sección de código correspondiente (302, 304, 306, 308) de la pluralidad de secciones de código (302, 304, 306, 308).
20. Dispositivo de comunicación inalámbrica de la reivindicación 19, comprendiendo además un bloque de memoria para almacenar una primera sección de código (302, 304, 306, 308), en el que la primera sección de código (302, 304, 306, 308) comprende una pluralidad de bibliotecas de símbolos que están en la primera sección de código (302, 304, 306, 308).
21. Dispositivo de comunicación inalámbrica de la reivindicación 19, comprendiendo además un bloque de memoria para almacenar una primera sección de código (302, 304, 306, 308), en el que la primera sección de código (302, 304, 306, 308) comprende una sola biblioteca de símbolos dispuesta en la primera sección de código (302, 304, 306, 308).
22. Dispositivo de comunicación inalámbrica de la reivindicación 19, en el que el tamaño de cada pluralidad de secciones de código (302, 304, 306, 308) es mayor que el tamaño necesario para alojar los símbolos contenidos en la misma.
23. Dispositivo de comunicación inalámbrica de la reivindicación 12, en el que la memoria es una memoria no volátil en la que se puede escribir.
ES02749158T 2001-07-26 2002-07-22 Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. Expired - Lifetime ES2300454T3 (es)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US917026 2001-07-26
US09/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
US916900 2001-07-26
US09/916,460 US7159214B2 (en) 2001-07-26 2001-07-26 System and method for compacting field upgradeable wireless communication device software code sections
US916460 2001-07-26
US09/916,900 US7027806B2 (en) 2001-07-26 2001-07-26 System and method for field downloading a wireless communications device software code section
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
US927131 2001-08-10
US09/969,305 US7386846B2 (en) 2001-07-26 2001-10-02 System and method for the management of wireless communications device system software downloads in the field
US969305 2001-10-02
PCT/IB2002/002877 WO2003010668A2 (en) 2001-07-26 2002-07-23 System and method for field diagnosis of wireless communications device system software

Publications (1)

Publication Number Publication Date
ES2300454T3 true ES2300454T3 (es) 2008-06-16

Family

ID=27542295

Family Applications (9)

Application Number Title Priority Date Filing Date
ES02749158T Expired - Lifetime ES2300454T3 (es) 2001-07-26 2002-07-22 Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno.
ES02749167T Expired - Lifetime ES2249602T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
ES02749166T Expired - Lifetime ES2299587T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno.
ES02749163T Expired - Lifetime ES2263796T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables.
ES02749159T Expired - Lifetime ES2247355T3 (es) 2001-07-26 2002-07-23 Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos.
ES02751472T Expired - Lifetime ES2263799T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion telefonica punto por punto.
ES05018919T Expired - Lifetime ES2284112T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.
ES02762622T Expired - Lifetime ES2253553T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas.
ES02741113T Expired - Lifetime ES2248568T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.

Family Applications After (8)

Application Number Title Priority Date Filing Date
ES02749167T Expired - Lifetime ES2249602T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
ES02749166T Expired - Lifetime ES2299587T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno.
ES02749163T Expired - Lifetime ES2263796T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables.
ES02749159T Expired - Lifetime ES2247355T3 (es) 2001-07-26 2002-07-23 Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos.
ES02751472T Expired - Lifetime ES2263799T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion telefonica punto por punto.
ES05018919T Expired - Lifetime ES2284112T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.
ES02762622T Expired - Lifetime ES2253553T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas.
ES02741113T Expired - Lifetime ES2248568T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.

Country Status (9)

Country Link
EP (12) EP1410188A2 (es)
JP (11) JP4104546B2 (es)
KR (10) KR100940178B1 (es)
CN (10) CN1288553C (es)
AT (9) ATE387658T1 (es)
AU (9) AU2002319568A1 (es)
DE (7) DE60205755T2 (es)
ES (9) ES2300454T3 (es)
WO (10) WO2003010656A2 (es)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
JP4417123B2 (ja) 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
EP1654640B1 (en) 2003-06-04 2018-08-01 Qualcomm Incorporated Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software
US7873956B2 (en) 2003-09-25 2011-01-18 Pantech & Curitel Communications, Inc. Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor
US7257583B2 (en) 2004-01-09 2007-08-14 Microsoft Corporation System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download
KR100620729B1 (ko) * 2004-03-31 2006-09-13 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
EP1757132B1 (en) * 2004-05-18 2013-07-17 Kyocera Corporation Modular data components for wireless communication devices
GB2416876B (en) * 2004-08-03 2007-01-10 Nec Technologies Export file processing within a mobile radio communications device
US7512939B2 (en) * 2004-10-05 2009-03-31 Neopost Technologies System and method of secure updating of remote device software
EP1659810B1 (en) * 2004-11-17 2013-04-10 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating configuration parameters in a mobile terminal
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
CN101040552B (zh) * 2005-04-18 2010-12-01 捷讯研究有限公司 控制软件版本更新的方法和***
CN100442708C (zh) * 2005-06-17 2008-12-10 上海华为技术有限公司 一种主备备份的方法及***
CN100476728C (zh) * 2005-08-19 2009-04-08 光宝科技股份有限公司 应用程序更新方法及使用上述方法的移动通讯装置
CN100410893C (zh) * 2005-09-28 2008-08-13 联想(北京)有限公司 自行修复嵌入式设备的主控应用程序的方法及设备
CN1980447B (zh) * 2005-12-06 2010-06-16 中兴通讯股份有限公司 一种通信***软件版本的平滑升级方法
CN101401072B (zh) * 2006-03-10 2010-12-15 富士通株式会社 应用补丁筛选装置以及应用补丁筛选方法
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
EP2047420A4 (en) 2006-07-27 2009-11-18 Hewlett Packard Development Co USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE
CN100403263C (zh) * 2006-08-16 2008-07-16 华为技术有限公司 按配置下载设备软件的方法
KR100924647B1 (ko) * 2008-08-07 2009-11-02 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
JP2012523479A (ja) 2009-04-07 2012-10-04 センシエント カラーズ エルエルシー 自己分散性粒子並びにその製造方法及び使用方法
CN101539885B (zh) * 2009-04-23 2011-06-08 大唐微电子技术有限公司 一种无线通信模块软件自主空中升级的方法、装置及***
US8402217B2 (en) * 2009-09-15 2013-03-19 Marvell International Ltd. Implementing RAID in solid state memory
CN102253847A (zh) * 2010-05-19 2011-11-23 宏碁股份有限公司 制作***软件的***及***软件的部署方法
US8756256B2 (en) * 2010-05-26 2014-06-17 Qualcomm Incorporated Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts
JP6290913B2 (ja) * 2012-11-09 2018-03-07 コーヒレント・ロジックス・インコーポレーテッド 多重プロセッサシステムのためのリアルタイム分析及び制御
US10064251B2 (en) * 2013-03-15 2018-08-28 Cree, Inc. Updatable lighting fixtures and related components
CN103345412B (zh) * 2013-07-10 2016-08-24 华为技术有限公司 打补丁的方法及装置
US10652743B2 (en) 2017-12-21 2020-05-12 The Chamberlain Group, Inc. Security system for a moveable barrier operator
WO2019213672A1 (en) * 2018-05-04 2019-11-07 Herdx, Inc. Food supply tracking, verification, and feedback system
US11074773B1 (en) 2018-06-27 2021-07-27 The Chamberlain Group, Inc. Network-based control of movable barrier operators for autonomous vehicles
US11423717B2 (en) 2018-08-01 2022-08-23 The Chamberlain Group Llc Movable barrier operator and transmitter pairing over a network
KR102176204B1 (ko) 2018-10-15 2020-11-09 김용대 유명인 사용물품 기부 중개 서비스 방법
US10997810B2 (en) 2019-05-16 2021-05-04 The Chamberlain Group, Inc. In-vehicle transmitter training
JP7461755B2 (ja) * 2020-02-21 2024-04-04 日立Astemo株式会社 情報処理装置、プログラム更新システム、及びプログラム更新方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8901932D0 (en) * 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
FR2662891A1 (fr) * 1990-05-30 1991-12-06 Cit Alcatel Dispositif de telechargement de logiciel pour un terminal de telecommunication.
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
JPH07182178A (ja) * 1993-02-19 1995-07-21 Nec Corp プリロードモジュール修正システム
US5488648A (en) * 1993-08-17 1996-01-30 Telefonaktiebolaget L M Ericsson Behavior monitoring and analyzing system for stored program controlled switching system
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
JP3140906B2 (ja) 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5734904A (en) * 1994-11-14 1998-03-31 Microsoft Corporation Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type
JPH08166877A (ja) * 1994-12-13 1996-06-25 Olympus Optical Co Ltd 修正プログラムの実行可能なワンチップマイクロコンピュータ及びrom修正可能なマイクロコンピュータ
DE19502728A1 (de) * 1995-01-28 1996-08-01 Philips Patentverwaltung Telekommunikationsvorrichtung
US5673317A (en) * 1995-03-22 1997-09-30 Ora Electronics, Inc. System and method for preventing unauthorized programming of wireless network access devices
US5699275A (en) * 1995-04-12 1997-12-16 Highwaymaster Communications, Inc. System and method for remote patching of operating code located in a mobile unit
DE19527808C2 (de) * 1995-07-28 1999-04-01 Siemens Ag Verfahren zum Modifizieren der Softwareprozeduren eines Kommunikationssystems
DE19543843C2 (de) * 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
JP2002515999A (ja) * 1996-08-28 2002-05-28 ウィンド リヴァー システムズ インコーポレイテッド 複数プロセッサーで分割されるソフトウエア診断のためのツール
US6247065B1 (en) * 1996-12-26 2001-06-12 At&T Corp. Messaging platform process
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
SE512110C2 (sv) * 1997-06-17 2000-01-24 Ericsson Telefon Ab L M System och förfarande för att kundanpassa trådlösa kommunikationsenheter
JPH1115689A (ja) * 1997-06-19 1999-01-22 Nec Corp ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
US5974312A (en) * 1997-07-10 1999-10-26 Ericsson Inc. System and method for updating a memory in an electronic device via wireless data transfer
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
JPH11141394A (ja) * 1997-11-07 1999-05-25 Nissan Motor Co Ltd 車両制御用メモリ書き換え装置
JPH11146011A (ja) * 1997-11-11 1999-05-28 Nec Corp 電子メールシステム及び電子メールサーバ及び通信端末
JP3337062B2 (ja) * 1997-11-21 2002-10-21 日本電気株式会社 無線データ転送方法及びそのシステム
US6275694B1 (en) * 1997-12-19 2001-08-14 Vlsi Technology, Inc. Method for remotely updating software code for personal handy phone system equipment
US6438711B2 (en) * 1998-07-15 2002-08-20 Intel Corporation Method and apparatus for performing field diagnostics on a computer system
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
GB2349485B (en) * 1999-04-23 2003-12-10 Ibm Application management
SE516806C2 (sv) * 1999-05-26 2002-03-05 Ericsson Telefon Ab L M Sätt för inladdning av programvara i en radioterminal, såsom en mobiltelefon, och tillhörande radioterminal
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
FR2800963B1 (fr) * 1999-11-09 2001-12-07 Wavecom Sa Procede de mise a jour d'un programme principal execute par un module de radiocommunication et/ou de donnees associees a ce programme principal, et module de radiocommunication correspondant
US7264532B2 (en) * 2004-12-27 2007-09-04 Tsan-Yao Chen Cup structure

Also Published As

Publication number Publication date
ATE359681T1 (de) 2007-05-15
KR100913659B1 (ko) 2009-08-24
CN1535529A (zh) 2004-10-06
JP4073399B2 (ja) 2008-04-09
WO2003010942A2 (en) 2003-02-06
KR100940178B1 (ko) 2010-02-03
WO2003010942A3 (en) 2003-05-15
JP2005502105A (ja) 2005-01-20
CN1537397A (zh) 2004-10-13
ES2249602T3 (es) 2006-04-01
WO2003010656A3 (en) 2003-11-13
KR20040017352A (ko) 2004-02-26
CN1235138C (zh) 2006-01-04
ATE387658T1 (de) 2008-03-15
EP1410193B1 (en) 2005-09-28
WO2003010663A3 (en) 2003-12-24
AU2002319572A1 (en) 2003-02-17
KR100940180B1 (ko) 2010-02-04
AU2002355308A1 (en) 2003-02-17
JP4106020B2 (ja) 2008-06-25
ATE310354T1 (de) 2005-12-15
JP2008108268A (ja) 2008-05-08
CN1235137C (zh) 2006-01-04
ES2248568T3 (es) 2006-03-16
EP1423959A2 (en) 2004-06-02
EP1610222B1 (en) 2011-03-02
EP1601217A2 (en) 2005-11-30
KR100918162B1 (ko) 2009-09-17
KR100913658B1 (ko) 2009-08-24
JP2004537123A (ja) 2004-12-09
CN1275149C (zh) 2006-09-13
DE60211719D1 (de) 2006-06-29
DE60219536D1 (de) 2007-05-24
EP1410190B1 (en) 2005-08-24
CN1535418A (zh) 2004-10-06
JP4176634B2 (ja) 2008-11-05
CN1537272A (zh) 2004-10-13
AU2002319568A1 (en) 2003-02-17
WO2003010662A2 (en) 2003-02-06
KR20040019334A (ko) 2004-03-05
ATE327628T1 (de) 2006-06-15
ATE302972T1 (de) 2005-09-15
EP1601217B1 (en) 2007-04-11
JP2004537120A (ja) 2004-12-09
KR100984895B1 (ko) 2010-10-01
KR100940179B1 (ko) 2010-02-03
ES2284112T3 (es) 2007-11-01
WO2003010658A2 (en) 2003-02-06
WO2003010932A3 (en) 2004-04-08
CN1310488C (zh) 2007-04-11
EP1410193A2 (en) 2004-04-21
EP1410665B1 (en) 2005-09-07
WO2003010668A2 (en) 2003-02-06
EP1410209A2 (en) 2004-04-21
EP1410188A2 (en) 2004-04-21
DE60206055T2 (de) 2006-06-29
EP1601217A3 (en) 2006-05-10
EP1410665A2 (en) 2004-04-21
CN1537276A (zh) 2004-10-13
DE60205755D1 (de) 2005-09-29
ES2253553T3 (es) 2006-06-01
KR20040017351A (ko) 2004-02-26
JP2004537121A (ja) 2004-12-09
EP1423959B1 (en) 2006-05-24
DE60207429T2 (de) 2006-07-27
WO2003012639A2 (en) 2003-02-13
EP1610222A2 (en) 2005-12-28
CN1288553C (zh) 2006-12-06
CN1535422A (zh) 2004-10-06
AU2002319573A1 (en) 2003-02-17
KR20040022464A (ko) 2004-03-12
WO2003013103A2 (en) 2003-02-13
KR100911604B1 (ko) 2009-08-07
WO2003012639A3 (en) 2003-12-24
CN1535423A (zh) 2004-10-06
JP4077408B2 (ja) 2008-04-16
CN100378661C (zh) 2008-04-02
ATE305632T1 (de) 2005-10-15
EP1410189B1 (en) 2008-02-27
JP4101752B2 (ja) 2008-06-18
DE60207429D1 (de) 2005-12-22
CN1279447C (zh) 2006-10-11
DE60205755T2 (de) 2006-06-29
EP1410189A2 (en) 2004-04-21
DE60211704D1 (de) 2006-06-29
ES2299587T3 (es) 2008-06-01
EP1410190A2 (en) 2004-04-21
WO2003010662A3 (en) 2003-12-24
EP1425894A2 (en) 2004-06-09
ES2263799T3 (es) 2006-12-16
JP2004537925A (ja) 2004-12-16
DE60206389D1 (de) 2006-02-09
WO2003010664A3 (en) 2003-12-24
EP1610222A3 (en) 2007-01-31
JP2005505813A (ja) 2005-02-24
CN1275150C (zh) 2006-09-13
DE60219536T2 (de) 2008-01-03
KR20040022463A (ko) 2004-03-12
ES2247355T3 (es) 2006-03-01
KR20040015823A (ko) 2004-02-19
WO2003010663A2 (en) 2003-02-06
KR100817387B1 (ko) 2008-03-27
KR20040022462A (ko) 2004-03-12
ATE382159T1 (de) 2008-01-15
EP1410191A2 (en) 2004-04-21
CN1535421A (zh) 2004-10-06
WO2003013103A3 (en) 2004-04-08
JP4310186B2 (ja) 2009-08-05
ATE304272T1 (de) 2005-09-15
ATE327536T1 (de) 2006-06-15
ES2263796T3 (es) 2006-12-16
WO2003010932A2 (en) 2003-02-06
DE60206389T2 (de) 2006-07-13
JP4104546B2 (ja) 2008-06-18
CN1288554C (zh) 2006-12-06
DE60211704T2 (de) 2007-05-10
EP1410192B1 (en) 2007-12-26
DE60206055D1 (de) 2005-10-13
JP2004538693A (ja) 2004-12-24
WO2003010664A2 (en) 2003-02-06
KR100932058B1 (ko) 2009-12-15
JP2004537899A (ja) 2004-12-16
KR20040022460A (ko) 2004-03-12
KR20040022461A (ko) 2004-03-12
AU2002319569A1 (en) 2003-02-17
AU2002319576A1 (en) 2003-02-17
DE60211719T2 (de) 2007-01-11
EP1425894B1 (en) 2005-11-16
WO2003010656A2 (en) 2003-02-06
CN1535419A (zh) 2004-10-06
CN1250035C (zh) 2006-04-05
KR20040022459A (ko) 2004-03-12
EP1410192A2 (en) 2004-04-21
AU2002328167A1 (en) 2003-02-17
AU2002319577A1 (en) 2003-02-17
EP1410209B1 (en) 2006-05-24
JP4278513B2 (ja) 2009-06-17
WO2003010668A3 (en) 2003-09-25
WO2003010658A3 (en) 2003-12-24
AU2002319570A1 (en) 2003-02-17
CN1535420A (zh) 2004-10-06
JP2004537895A (ja) 2004-12-16
JP2004537209A (ja) 2004-12-09

Similar Documents

Publication Publication Date Title
ES2300454T3 (es) Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno.
US7644406B2 (en) Update system capable of updating software across multiple FLASH chips
US8479180B2 (en) Maintenance of over the air upgradeable wireless communication device software
US7657884B2 (en) Electronic device supporting multiple update agents
CN102945182B (zh) 应用程序更新方法和装置
US7027806B2 (en) System and method for field downloading a wireless communications device software code section
ES2221535B1 (es) Un dispositivo de telefonia movil y un metodo de gestion de datos.
CN102981880B (zh) 一种实现应用程序的更新的方法和装置
JP2005157657A (ja) 携帯端末におけるアプリケーションデータ管理方法及び携帯端末
CN105407130A (zh) 一种移动端插件***及移动端插件处理方法
JP5273397B2 (ja) Htmlデータを配信するための向上した機能を有するパーソナルトークン
CN105740027A (zh) 应用程序更新方法和装置
CN104267934A (zh) 信息的展现方法、装置和移动终端
JP2016533588A (ja) 記憶処理方法、装置及び端末
US7328007B2 (en) System and method for organizing wireless communication device system software
KR101660248B1 (ko) 다중 가입자 정보 처리 스마트 카드, 이를 사용하는 전자 장치, 및 전자 장치에서의 다중 가입자 관리 방법
KR20150029916A (ko) 컴퓨팅 환경 설정 장치 및 방법
KR20010011952A (ko) 모듈별 업데이트 장치 및 그 방법
CN114398026A (zh) 程序运行方法、装置、编程器和计算机可读存储介质
CN102984692A (zh) 一种移动终端网络内容的更新方法、***及移动终端