ES2249602T3 - Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables. - Google Patents

Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.

Info

Publication number
ES2249602T3
ES2249602T3 ES02749167T ES02749167T ES2249602T3 ES 2249602 T3 ES2249602 T3 ES 2249602T3 ES 02749167 T ES02749167 T ES 02749167T ES 02749167 T ES02749167 T ES 02749167T ES 2249602 T3 ES2249602 T3 ES 2249602T3
Authority
ES
Spain
Prior art keywords
data
code
section
persistent
elements
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
ES02749167T
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/916,460 external-priority patent/US7159214B2/en
Priority claimed from US09/916,900 external-priority patent/US7027806B2/en
Priority claimed from US09/917,026 external-priority patent/US7328007B2/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 ES2249602T3 publication Critical patent/ES2249602T3/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/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
    • 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
    • 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)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (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)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)

Abstract

Método para la actualización de datos persistentes en un dispositivo de comunicaciones sin cables, cuyo método comprende: ejecución de software del sistema (2102); lanzar un sistema de tiempo de ejecución (2104); procesar conjuntos de instrucciones dinámicas (2106); y, como respuesta al proceso de los conjuntos de instrucciones dinámicas, actualizar selectivamente datos persistentes en el software del sistema (2110).

Description

Sistema y método para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
Antecedentes de la invención 1. Sector de la invención
La presente invención se refiere, de modo general, a dispositivos de comunicaciones sin cables y, más particularmente, se refiere a un sistema y método para utilizar conjuntos o juegos de instrucciones dinámicas para actualizar elementos de datos persistentes en el software del sistema de dispositivos de comunicaciones sin cables.
2. Descripción de anterioridades
No es inhabitual realizar actualizaciones de software para teléfonos que se encuentran ya en servicio. Estas actualizaciones se pueden referir a problemas que han aparecido en el software una vez que los teléfonos han sido fabricados y distribuidos al público. Algunas actualizaciones pueden comportar la utilización de nuevas características en el teléfono, o nuevos servicios proporcionados por el proveedor del servicio. Otras actualizaciones pueden hacer referencia a problemas regionales o de zona, o a problemas asociados con determinados portadores. Por ejemplo, en ciertas zonas, la disposición de la red de portadores puede imponer condiciones de interfaz aéreo en el aparato telefónico que provocan que éste muestre un comportamiento inesperado, tal como búsqueda no apropiada de canales, terminación impropia de la llamada, audio defectuoso, o similares.
El enfoque tradicional para estas actualizaciones ha sido hacer que el dispositivo de comunicaciones sin cables, al cual se hará referencia como dispositivo sin cables, teléfono, o aparato manual, sea llevado a la tienda de venta al público/taller de servicio más próximo, o al propio fabricante para llevar a cabo los cambios. Los costes que se generan en este tipo de actualizaciones son importantes y afectan a línea de beneficios mínimos empresariales. Además, el cliente debe sufrir ciertas incomodidades y es posible que se sienta irritado. Frecuentemente, la solución práctica consiste en enviar nuevos teléfonos a los clientes.
Los dispositivos sin cables son utilizados en una serie de entornos con diferentes servicios para suscriptores, para un distinto número de aplicaciones de cliente. Por lo tanto, aunque el software del dispositivo sin cables puede ser actualizado para mejorar el servicio, es improbable que la actualización proporcione una mejora uniforme para todos los usuarios.
Sería por lo tanto ventajoso si se pudiera actualizar de manera económica el software del dispositivo de comunicaciones sin cables, y ello sin provocar incomodidades al cliente.
Sería ventajoso que se pudiera actualizar el software del dispositivo de comunicación sin cables sin necesidad de que el cliente dejara de tener la posibilidad de utilizar su teléfono durante un período de tiempo significativo.
Sería ventajoso que el software del aparato de comunicaciones sin cables pudiera ser actualizado con un mínimo de tiempo de servicio técnico, o sin necesidad de enviar el dispositivo a un taller de servicio.
Sería ventajoso que el software del sistema del dispositivo sin cables pudiera ser diferenciado en secciones de código, de manera que se tendría la necesidad de sustituir solamente determinadas secciones de código, en la actualización del software del sistema. Sería ventajoso que estas secciones de código pudieran ser comunicadas al dispositivo sin cables mediante enlace aéreo.
Sería ventajoso que el dispositivo sin cables pudiera funcionar con juegos de instrucciones cargadas de forma dinámica, que ayudarían en la actualización en servicio de datos persistentes del software del sistema. Sería ventajoso que estos datos persistentes pudieran ser actualizados de manera selectiva para adecuarse a las necesidades, o encaminarse a la solución de problemas de determinados usuarios.
La solicitud de patente europea publicada EP-A-1014263 (28 de junio de 2000, de Applied Microsystems Corporation) es representativa del estado de la técnica actual. Este documento describe un sistema para modificar un archivo de código ejecutable compilado al añadir zonas o segmentos que añaden funcionalidad cuando se ejecuta el archivo de código ejecutable modificado. La añadidura de un segmento ("patch") comporta la creación de un manipulador del segmento que, cuando se ejecuta, provoca la ejecución de las afirmaciones del segmento, y puede comportar la sustitución de una o varias instrucciones compiladas existentes en el archivo con instrucciones de segmentación para transferir flujo de ejecución al manipulador apropiado del segmento. Las especificaciones de los segmentos o añadiduras pueden incluir variables y expresiones que serán evaluadas en el contexto del ámbito variable actual apropiado, con independencia de si el ámbito está definido dentro del segmento o por instrucciones compiladas existentes. Después de que los segmentos han sido añadidos, pueden ser desactivados a efectos de impedir su ejecución sin eliminar las instrucciones de añadidura del archivo ejecutable compilado.
Características de la invención
Las actualizaciones del software de dispositivos de comunicaciones sin cables proporcionan a los clientes el mejor producto posible y las experiencias de los usuarios. Una componente onerosa de este negocio es la que se refiere a las llamadas para servicio ("recall") de los aparatos manuales para actualizar el software. Estas actualizaciones pueden ser necesarias para ofrecer al usuario servicios adicionales o para solucionar problemas que han aparecido en la utilización del teléfono después de su fabricación. La presente invención hace posible reactualizar de manera práctica el software de los equipos manuales en servicio, a través del interfaz aéreo. De manera más específica, la presente invención permite que el dispositivo de comunicación sin cables ejecute juegos o conjuntos de instrucciones de tipo dinámico. Estas instrucciones de tipo dinámico permiten que el dispositivo sin cables reactualice de manera "inteligente", o condicionalmente, el software del sistema y los datos del mismo. Además, los juegos de instrucciones dinámicas permiten que el dispositivo sin cables pueda realizar selectivamente cambios en los elementos de datos persistentes que son utilizados por el software del sistema.
De acuerdo con ello, se da a conocer un método para la actualización de datos persistentes en un dispositivo de comunicaciones sin cables. El método comprende: ejecución del software del sistema; lanzamiento de un dispositivo de medición de tiempo de ejecución; recibir las instrucciones de tiempo de ejecución del dispositivo de control de segmentos añadidos con conjuntos de instrucciones de tipo dinámico y nuevas secciones de código, incluyendo los datos persistentes actualizados, en una sección del sistema de archivo en memoria no volátil; procesar los juegos de instrucciones dinámicas; en respuesta al proceso de los juegos de instrucciones dinámicas, actualizar selectivamente datos persistentes en el software del sistema seleccionado del grupo que incluye datos de calibración de radiofrecuencia (RF), datos no volátiles del sistema y de configuración de usuario, datos de recursos, datos de sistema no volátil y de aplicación del usuario, y datos arbitrarios; y ejecutar el software del sistema con los datos persistentes actualizados.
A continuación se indicarán detalles del método de actualización de datos persistentes que se ha descrito, así como un sistema para la actualización de datos persistentes en un dispositivo de comunicaciones sin cables.
Breve descripción de los dibujos
La figura 1 es un diagrama esquemático de bloques del sistema de mantenimiento de software del dispositivo sin cables en su conjunto.
La figura 2 es un diagrama esquemático de bloques del sistema de mantenimiento del software, destacando la instalación de juegos de instrucciones con intermedio del interfaz aéreo.
La figura 3 es un diagrama esquemático de bloques que muestra el sistema de la presente invención para la ejecución de juegos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables.
La figura 4 es un diagrama de bloques esquemático de la memoria del dispositivo sin cables.
La figura 5 es una tabla que representa la tabla de direcciones de la sección de código de la figura 3.
La figura 6 es una representación detallada de la biblioteca de símbolos de la figura 3, con símbolos.
La figura 7 es una tabla representativa de la tabla de direcciones de desplazamiento de símbolos de la figura 3.
Las figuras 8a y 8b son representaciones del código operativo (OP-CODE) al que se tiene acceso por el dispositivo contador del tiempo de ejecución.
La figura 9 es un diagrama de bloques esquemático que muestra el sistema de la presente invención de actualización de datos persistentes en el software del sistema de un dispositivo de comunicaciones sin cables.
La figura 10 es un diagrama esquemático de bloques que muestra una expresión general del sistema de la figura 9.
Las figuras 11a y 11b son diagramas de bloques esquemáticos que muestran el aspecto de la sección de código de sustitución del sistema de la presente invención según la figura 10.
La figura 12 es un diagrama esquemático de bloques que muestra el aspecto lógico condicional del sistema de la presente invención.
La figura 13 es un diagrama esquemático ilustrativo del funcionamiento de las instrucciones de datos persistentes condicionales.
La figura 14 es un diagrama esquemático de bloques que muestra el aspecto de directorio del sistema de la presente invención. Las figuras 15a y 15b son diagramas de flujo que muestran el método de la presente invención para realizar juegos o conjuntos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables.
\newpage
La figura 16 es un diagrama de flujo que muestra el funcionamiento de un conjunto de instrucciones dinámicas a título de ejemplo.
La figura 17 es un diagrama de flujo que muestra el funcionamiento de otro conjunto de instrucciones dinámicas a título de ejemplo.
La figura 18 es un diagrama de flujo que muestra el funcionamiento de un tercer conjunto de instrucciones dinámicas a título de ejemplo.
La figura 19 es un diagrama de flujo que muestra el funcionamiento de un cuarto conjunto de instrucciones dinámicas a título de ejemplo.
La figura 20 es un diagrama de flujo que muestra el funcionamiento de un quinto conjunto de instrucciones dinámicas a título de ejemplo.
La figura 21 es un diagrama de flujo que muestra el método de la presente invención para actualizar datos persistentes en el software del sistema de un dispositivo de comunicaciones sin cables.
La figura 22 es un diagrama de flujo sustancialmente igual al de la figura 21, mostrando el proceso de actualización de elementos de datos de sustitución.
La figura 23 es un diagrama de flujo sustancialmente igual al de la figura 21, mostrando el proceso de actualización de elementos de datos lógicos condicionales.
La figura 24 es un diagrama de flujo sustancialmente igual al de la figura 21, mostrando el proceso de actualización de elementos de datos de directorio.
Descripción detallada de las realizaciones preferentes
Ciertas partes de las descripciones detalladas que siguen están presentadas en términos de procesos, pasos, bloques lógicos, códigos, trabajo de proceso y otras representaciones simbólicas de operaciones en bits de datos dentro de un microprocesador o memoria de un dispositivo sin cables. Estas descripciones y representaciones son los medios utilizados por los técnicos en las técnicas de procesos de datos para explicar de manera efectiva las características de su trabajo a otros técnicos en la materia. Un procedimiento, etapa ejecutada por microprocesador, elemento de datos, aplicación, bloque lógico, proceso, etc., es en esta descripción y, de manera general está concebido para consistir en una secuencia de etapas o instrucciones autocontenida que conduce al resultado deseado. Las etapas son las que requieren manipulaciones físicas de cantidades físicas. Usualmente, si bien no de manera indispensable, estas cantidades adoptan la forma de señales eléctricas o magnéticas capaces de ser almacenadas, transferidas, combinadas, comparadas y manipuladas de otros modos, en un dispositivo sin cables basado en un microprocesador. Se ha demostrado conveniente en ciertos casos, principalmente por razones de utilización común, hacer referencia a estas señales como bits, valores, elementos, símbolos, caracteres, términos, elementos de datos, números, o similares. En el caso de que se mencionen dispositivos físicos, tales como una memoria, están conectados a otros dispositivos físicos a través de un bus u otra conexión eléctrica. Estos dispositivos físicos se puede considerar que interaccionan con procesos o aplicaciones lógicas y, por lo tanto, están "conectados" a operaciones lógicas. Por ejemplo, una memoria puede almacenar o tener acceso a código para llevar a cabo una operación lógica, o una aplicación puede requerir una sección de código de la memoria para su ejecución. Además, una aplicación de software puede funcionar con una instrucción utilizando un elemento de datos.
No obstante, se debe tener en cuenta que todos estos términos y otros términos similares se deben asociar con las cantidades físicas apropiadas y que son solamente etiquetas para mayor comodidad aplicadas a estas cantidades. Si no se indica de otro modo específicamente, tal como es evidente de las explicaciones anteriores, se observará que en la totalidad de la presente invención, las explicaciones que utilizan términos tales como "realizar un proceso" o "conectar" o "trasladar" o "visualizar" o "requerir" o "determinar" o "mostrar en pantalla" o "reconocer" o "comparar" o "sustituir" o "direccionar" o "recuperar" o similares, se refieren a la acción y operaciones de un sistema microprocesador de un dispositivo sin cables que manipula y transforma datos representados en forma de cantidades físicas (electrónicas) dentro de los registros y memoria del sistema del ordenador en otros datos representados de manera similar como cantidades físicas dentro de las memorias o registros del dispositivo sin cables u otros dispositivos de almacenamiento, transmisión o visualización de este tipo de informaciones.
La figura 1 es un diagrama de bloques esquemático de un sistema (100) de mantenimiento de software de un dispositivo sin cables en su conjunto. La organización del software del sistema de la presente invención se presenta en detalle más adelante, siguiendo la disposición general del sistema (100) de mantenimiento del software. El sistema general (100) describe un proceso para suministrar actualizaciones y conjuntos de instrucciones (programas) de software del sistema, y para la instalación del software facilitado en un dispositivo sin cables. Las actualizaciones del software del sistema y el controlador de segmentos funcionan con instrucciones de tiempo (PMRTI), que son conocidas de manera más general como conjuntos de instrucciones o conjuntos de instrucciones dinámicas, siendo creados por el fabricante de los equipos manuales. El software del sistema está organizado en bibliotecas de símbolos. Las bibliotecas de símbolos están dispuestas en secciones de código. Cuando se tienen que actualizar las bibliotecas de símbolos, se transporta la actualización (102) del software en forma de una o varias secciones de código. La actualización del software es enviada por radio a dispositivos sin cables en servicio, de los cuales es representativo el dispositivo de comunicación sin cables (104), o se transmiten en comunicaciones separadas desde una estación de base (106), utilizando protocolos de transporte convencionales aéreos, de datos o de mensaje. La invención no está limitada a ningún formato de transporte específico, puesto que el dispositivo de comunicaciones sin cables puede ser modificado fácilmente para procesar cualquier protocolo de transporte disponible en el aire con el objetivo de recibir actualizaciones de software del sistema y actualizaciones PMRTI.
El software del sistema puede ser considerado como una serie de diferentes subsistemas. Los objetos del código pueden ser acoplados de manera íntima en uno de estos subsistemas abstractos, y la conexión resultante puede ser etiquetada como biblioteca de símbolos. Esto proporciona una descomposición lógica de la base del código y se pueden asociar añadidos del software y fijaciones del mismo con una de estas bibliotecas de símbolos. En la mayor parte de casos, una sola actualización está asociada con una o, como máximo, dos bibliotecas de símbolos. El resto de la base de código, las otras bibliotecas de símbolos, permanece sin cambios.
La noción de bibliotecas de símbolos proporciona un mecanismo para tratar con códigos y constantes. Los datos de lectura-escritura (RW), por otra parte, se acoplan en bibliotecas individuales únicas RW que contienen datos basados en RAM para todas las bibliotecas.
Una vez recibida por el dispositivo sin cables (104), la sección de código transportada debe ser sometida a proceso. Este dispositivo sin cables sobre-escribe una sección de código específica de memoria no volátil (108). La memoria no volátil (108) comprende una sección de sistema de archivo (FSS) (110) y una sección (112) de almacenamiento de código. La sección de código es típicamente comprimida antes de transporte a efectos de minimizar la ocupación en el FSS (110). Frecuentemente, la sección de código actualizada será acompañada por sus datos RW, que son otro tipo de biblioteca de símbolos que contiene todos los datos RW para cada biblioteca de símbolos. Si bien se han cargado en la memoria de acceso al azar de tipo volátil de lectura-escritura (114) cuando el software del sistema está en ejecución, los datos RW necesitan siempre ser almacenados en la memoria no volátil (108), de manera que pueden ser cargados en una memoria de acceso al azar, volátil, de lectura-escritura (114) cada vez que se efectúa la reposición del dispositivo sin cables. Esto incluye la primera vez que los datos RW son cargados en la memoria de lectura-escritura de tipo volátil y de acceso al azar. Tal como se explica a continuación de manera más detallada, los datos RW están dispuestos de manera típica con una sección de código de control de los segmentos añadidos.
El sistema (100) incluye el concepto de tablas virtuales. Utilizando estas tablas, las bibliotecas de símbolos de una sección de código pueden ser parcheadas (sustituidas), sin rotura (sustitución) de otras partes del software del sistema (otras secciones del código). Las tablas virtuales ejecutan, por consideraciones de eficacia, desde la memoria de acceso al azar, volátil, de lectura-escritura (114). Una tabla de direccionamiento de sección de código y una tabla de direccionamiento con desplazamiento de símbolos son tablas virtuales.
Las secciones de código actualizadas son recibidas por el dispositivo sin cables (104) y son almacenadas en la FSS (110). Un interfaz de usuario del dispositivo sin cables (UI) notificará de manera típica al usuario que se tiene a disposición nuevo software. Como respuesta al UI, requiere al usuario el reconocimiento de la notificación y señala la operación de añadidura o de actualización de segmentos. De manera alternativa, la operación de actualización es llevada a cabo automáticamente. El dispositivo sin cables puede ser incapaz de llevar a cabo tareas de comunicación estándar al ser realizado el proceso de actualización. La sección de código de gestión de añadidura de segmentos sustitutivos incluye una biblioteca de símbolos de control no volátil de lectura-escritura que se ha cargado también en la memoria de acceso al azar, volátil, de lectura-escritura (114). La biblioteca de símbolos de control no volátil de lectura-escritura provoca la sobreescritura de secciones de código con secciones de código actualizadas. La sección de código de gestión de la añadidura de segmentos de sustitución incluye los datos de lectura-escritura, tabla de direcciones de sección de código y tabla de direcciones de símbolos desplazados, así como un código de acceso de símbolos y la dirección del código de acceso de símbolos (se explica más adelante). Partes de estos datos no son válidos cuando se introducen secciones de código actualizadas, y las secciones de código de gestión de añadidura de segmentos actualizados incluyen datos de lectura-escritura, tabla de direcciones de sección de código y tablas de direcciones de símbolos desplazados válidas para las secciones de código actualizadas. Una vez que las secciones de código actualizadas son cargadas en la sección de almacenamiento de código (112), el dispositivo sin cables es repuesto o reseteado. Después de la operación de reposición, el dispositivo sin cables puede ejecutar el software del sistema actualizado. También se debe comprender que la sección de código de control de la añadidura de segmentos puede incluir otras bibliotecas de símbolos que no se han explicado anteriormente. Estas otras bibliotecas de símbolos no es necesario que sean cargadas en la memoria volátil de lectura-escritura (114).
La figura 2 es un diagrama esquemático de bloques del sistema de mantenimiento de software (100), destacando la instalación de conjuntos de instrucciones mediante el interfaz aéreo. Además de actualizar secciones de código de software del sistema, el sistema de mantenimiento (100) puede descargar e instalar conjuntos de instrucciones dinámicas, programas o conjuntos de instrucciones de gestión de añadidura de segmentos de sustitución (PMIS), a las que se hará referencia como instrucciones de tiempo de funcionamiento del control de la añadidura de segmentos (PMRTI). La sección de código PMRTI (200) es transportada al dispositivo sin cables (104) de la misma manera que las secciones de código de software de sistema antes descritas. Las secciones de código PMRTI son almacenadas inicialmente en la FSS (110). Una sección de código PMRTI es típicamente un archivo binario que puede ser visualizado en forma de instrucciones compiladas al equipo manual. Una sección de código PMRTI es suficientemente capaz para proporcionar la realización de operaciones matemáticas básicas y la realización de operaciones ejecutadas de forma condicional. Por ejemplo, una PMRTI de calibración de RF podría llevar a cabo las siguientes operaciones:
SI EL ELEMENTO DE CÁLCULO RF ES MENOR A X,
EJECUTAR INSTRUCCIÓN
O BIEN
EJECUTAR INSTRUCCIÓN
Una PMRTI puede soportar operaciones matemáticas básicas, tales como: adición, resta, multiplicación y división. Igual que en las secciones de código de software del sistema, la sección de código PMRTI puede ser cargada como respuesta a los requerimientos UI, y el dispositivo sin cables debe ser reseteado después de que la PMRTI es cargada en la sección de almacenamiento de código (112). A continuación, se puede ejecutar la sección PMRTI. Si la sección de código PMRTI está asociada con cualesquiera tablas o datos de lectura-escritura virtuales, se transportará una sección de código de gestión de los segmentos de añadidura actualizados con la PMRTI para instalación en la sección de almacenamiento de código (112). De manera alternativa, la PMRTI puede ser mantenida y procesada desde la FSS (110). Después de que el aparato manual (104) ha ejecutado todas las instrucciones de la sección PMRTI, la sección PMRTI puede ser borrada de la FSS (110). De manera alternativa, la sección PMRTI es mantenida para operaciones futuras. Por ejemplo, la PMRTI puede ser ejecutada cada vez que se activa el dispositivo sin cables.
La PMRTI es un sistema de instrucciones de tiempo de ejecución muy potente. El aparato manual puede ejecutar cualquier instrucción que se facilite al mismo a través del entorno PMRTI. Este mecanismo puede ser utilizado para el soporte de calibraciones de RF. De modo más general, la PMRTI puede ser utilizada para eliminar problemas desde una posición remota en el software de un dispositivo sin cables cuando se han identificado problemas de software por el fabricante o proveedor del servicio, de manera típica como resultado de quejas de los usuarios. La PMRTI puede también registrar datos necesarios para diagnosticar los problemas del software. La PMRTI puede lanzar aplicaciones de sistema de nueva introducción para análisis de datos, eliminación de problemas y reparaciones. La PMRTI puede proporcionar actualizaciones basadas en datos RW para análisis y posible solución a corto plazo de un problema en lugar de una sección de código de software de sistema actualizado. La PMRTI puede proporcionar algoritmos de compactado de memoria para utilización con el dispositivo sin cables.
En algunos aspectos de la invención, la organización del software del sistema en bibliotecas de símbolos puede impactar en las dimensiones de la memoria volátil (114) y de la memoria no volátil (108) necesarias para ejecución. Esto es debido al hecho de que las secciones de código son típicamente más grandes que las bibliotecas de símbolos dispuestas en las secciones de código. Estas secciones de código más grandes existen para recibir secciones de código actualizadas. La organización del software del sistema como una colección de bibliotecas impacta la exigencia de dimensiones de memoria no volátil. Para las mismas dimensiones de código, la cantidad de memoria no volátil utilizada será mayor debido al hecho de que las secciones de código se pueden dimensionar más grandes que las bibliotecas de símbolos dispuestas en su interior.
Una vez que las actualizaciones de software han sido facilitadas al dispositivo sin cables, el sistema de mantenimiento (100) del software soporta el compactado de la memoria. El compactado de la memoria es similar a las aplicaciones de desfragmentación de disco en los ordenadores de sobremesa. El mecanismo de compactado asegura que se utiliza la memoria de forma óptima y que está bien equilibrada para futuras actualizaciones de la sección de código, de manera que las dimensiones de las secciones de código actualizadas son impredictibles. El sistema (100) analiza la sección de almacenamiento de código al ser ésta objeto de añadiduras (actualización). El sistema (100) está destinado a acoplar secciones de código actualizadas en el espacio de memoria ocupado por la sección de código que es sustituida. Si la sección de código actualizada es mayor que la sección de código que está siendo sustituida, el sistema (100) compacta las secciones de código en la memoria (112). De manera alternativa, el compactado se puede calcular por el fabricante o proveedor del servicio, y las instrucciones de compactado se pueden transportar al dispositivo sin cables (104).
El compactado puede ser un proceso engorroso por la necesidad de tiempo, debido a la complejidad del algoritmo y asimismo al vasto volumen de movimiento de datos. El algoritmo de compactado efectúa la predicción de la factibilidad antes de que empiece cualquier proceso. Los procedimientos de UI pueden ser utilizados para pedir permiso del usuario antes de intentar el compactado.
En algunos aspectos de la invención, todas las secciones de código de software del sistema pueden ser actualizadas simultáneamente. No obstante, una actualización de la totalidad del software del sistema requeriría una FSS (110) mayor.
La figura 3 es un diagrama de bloques esquemático que ilustra la ejecución del conjunto de instrucciones dinámicas de la presente invención, en un dispositivo de comunicaciones sin cables. El sistema (300) comprende una sección (112) de almacenamiento de código en la memoria (108) incluyendo software de sistema ejecutable en el dispositivo sin cables, diferenciado en una serie de secciones de código actuales. Se han mostrado la sección de código uno (302), sección de código dos (304), sección de código n (306), y una sección de código de gestión de los segmentos de añadidura (308). No obstante, la invención no está limitada a ningún número específico de secciones de código. Además, el sistema (300) comprende adicionalmente una primera serie de bibliotecas de símbolos dispuestas en una segunda serie de secciones de código. Se han mostrado la biblioteca de símbolos uno (310) dispuesta 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 m (316) dispuesta en la sección de códigos n (306). Cada una de las bibliotecas comprende símbolos con funcionalidades relacionadas. Por ejemplo, la biblioteca de símbolos uno (310) puede estar involucrada en el funcionamiento en la pantalla de cristal líquido (LCD) del dispositivo sin cables. Entonces, los símbolos serían asociados a funciones de visualización. Tal como se ha indicado en detalle más adelante, las bibliotecas de símbolos adicionales están dispuestas en la sección (308) de código de gestión de los segmentos de adición.
La figura 4 es un diagrama esquemático de bloques de la memoria del dispositivo sin cables. Tal como se ha mostrado, la memoria es la sección de almacenamiento de código (112) de la figura 1. La memoria es una memoria no volátil, con capacidad de recibir escritura, tal como una memoria Flash. Se debe comprender que las secciones de código no necesitan de manera indispensable ser almacenadas en la misma memoria que la FSS (110). También se debe comprender que la estructura de software de sistema de la presente invención puede ser activada con secciones de código almacenadas en una serie de memorias que cooperan. La sección de almacenamiento de código (112) comprende una segunda serie de bloques de memoria direccionados de forma contigua, en la que cada bloque de memoria almacena una correspondiente sección de código desde la segunda serie de secciones de código. De este modo, la sección de código uno (302) está almacenada 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 de orden n (404), y la sección de código (308) de gestión de segmentos de añadidura en el bloque de memoria de orden p (406).
Comparando las figuras 3 y 4, el inicio de cada sección de código está almacenado en direcciones de inicio correspondientes de la memoria, y las bibliotecas de símbolos están dispuestas para su inicio en el inicio de las secciones de código. Es decir, cada una de las bibliotecas de símbolos empieza en una primera dirección y discurre por una gama de direcciones de modo secuencial desde la primera dirección. Por ejemplo, la sección de código uno (302) se inicia en la primera dirección de inicio (408) (marcada con "S") en la memoria (112) de la sección de almacenamiento de código. En la figura 3, la biblioteca de símbolos uno (310) empieza en el inicio (318) de la primera sección de código. De manera similar, 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 en el inicio (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ódigo (112) (figura 4), y la biblioteca de símbolos m (316) empieza en el inicio de la sección de código n (322) (figura 3). La sección de código de gestión de segmentos de añadidos empieza en la dirección de inicio de orden p (414) en la memoria (112) de la sección de almacenamiento de código, y la primera biblioteca de símbolos de la sección (308) del código de sección de gestión de segmentos añadidos empieza en el inicio (324) de la sección de código de la gestión de segmentos añadidos. De este modo, la biblioteca de símbolos uno (310) está almacenada finalmente en el primer bloque de memoria (400). Si una sección de código incluye una serie de bibliotecas de símbolos, tal como la sección de código dos (304), la serie de bibliotecas de símbolos son almacenadas en el correspondiente bloque de memoria, en este caso, el segundo bloque de memoria (402).
En la figura 3, el sistema (300) comprende además una tabla (326) de dirección de la sección de código como un tipo de símbolo incluido en una biblioteca de símbolos dispuesta en la sección (308) de código de gestión de segmentos añadidos. La sección de código direcciona identificadores de sección de código de referencias cruzadas de la tabla con direcciones de inicio de sección de código correspondientes de la memoria.
La figura 5 es una tabla representativa de la tabla de direcciones de la sección de códigos (326) de la figura 3. La tabla (326) de direcciones de la sección de códigos es consultada para encontrar la dirección de inicio de la sección de código para una biblioteca de símbolos. Por ejemplo, el sistema (300) busca la sección de código uno cuando se requiere para ejecución un símbolo de la biblioteca de símbolos. 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 (326) de la sección de código. La disposición de bibliotecas de símbolos en secciones de código y el seguimiento de las secciones de código con una tabla permiten que las secciones de código puedan ser desplazadas o expansionadas. Las operaciones de expansión o de movimiento pueden ser necesarias para instalar secciones de código actualizadas (con bibliotecas de símbolos actualizadas).
Haciendo referencia nuevamente a la figura 3 se debe observar que no todas las bibliotecas de símbolos empiezan al inicio de una sección de código. Tal como se ha mostrado, la biblioteca de símbolos tres (314) está dispuesta en la sección de código dos (304), pero no empieza en la dirección (320) de inicio de la sección de código. Por lo tanto, si se requiere para ejecución un símbolo de la biblioteca de símbolos tres (314), el sistema (300) consulta la tabla (326) de direcciones de la sección de código para encontrar la dirección de inicio de la sección de códigos dos (304). Tal como se explica más adelante, una tabla de direcciones de desplazamiento de símbolos permite que los símbolos de la biblioteca de símbolos tres (314) puedan ser localizados. No importa que los símbolos se extiendan a múltiples bibliotecas, siempre que queden retenidos con la misma sección de código.
Tal como se ha observado anteriormente, cada una de las bibliotecas de símbolos incluye símbolos relacionados funcionalmente. Un símbolo es un nombre definido por el programador para localizar y utilizar una rutina, una variable o bien una estructura de datos. Por lo tanto, un símbolo puede ser una dirección o un valor. Los símbolos pueden ser internos o externos. Los símbolos internos no son visibles más allá del alcance de la sección de código corriente. De manera más específica, no son buscados por otras bibliotecas de símbolos, en otras secciones de código. Se utilizan símbolos externos y se invocan en las secciones de código y son buscados por bibliotecas de diferentes secciones de código. La dirección de desplazamiento de símbolos incluye de manera típica una lista de todos los símbolos externos.
Por ejemplo, la biblioteca de símbolos uno (310) puede generar caracteres en la pantalla de un dispositivo sin cables. Los símbolos de esta biblioteca generarían, por su parte, números de teléfono, nombres, hora y otras características de la pantalla. Cada una de las características es generada con rutinas, a las que se hará referencia en esta descripción como símbolo. Por ejemplo, un símbolo de la biblioteca de símbolos uno (310) genera números de teléfono en la pantalla. Este símbolo es representado por una "X", y es externo. Cuando el dispositivo sin cables recibe una llamada telefónica y se activa el servicio de ID del que efectúa la llamada, 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 es una representación detallada de la biblioteca de símbolos uno (310) de la figura 3, con símbolos. Los símbolos están dispuestos para su desplazamiento con respecto a las direcciones de inicio correspondientes de la sección de código. En muchas circunstancias, el inicio de la biblioteca de símbolo es el inicio de la sección de código pero ello no es cierto si una sección de código, comprende más de una biblioteca de símbolos. La biblioteca de símbolos uno (310) empieza en el inicio de la sección de código uno (ver figura 3). Tal como se ha mostrado en la figura 6, el símbolo "X" está situado en un desplazamiento de (03) desde el inicio de la biblioteca de símbolos y el símbolo "Y" está situado en un desplazamiento de (15). Las direcciones de desplazamiento de los símbolos están almacenadas en una tabla de direcciones de desplazamiento de símbolos (328) en la sección de código de gestión de segmentos añadidos (ver figura 3).
La figura 7 es una tabla que representa la tabla de direcciones de desplazamiento de símbolos (328) de la figura 3. La tabla (328) de direcciones de desplazamientos de símbolos efectúa el cruzamiento de referencias de identificadores de símbolos con correspondientes direcciones de desplazamiento, y con identificadores correspondientes de la sección de código de la memoria. De este modo, cuando el sistema intenta ejecutar el símbolo "X" en la biblioteca de símbolos uno, se consulta la tabla (328) de dirección de desplazamiento de símbolos para localizar la dirección exacta del símbolo, con respecto a la sección de código en la que está dispuesto.
Haciendo referencia nuevamente a la figura 3, la totalidad de la primera serie de bibliotecas de símbolos incluye de manera típica datos de lectura-escritura que deben ser consultados o determinados en la ejecución de estas bibliotecas de símbolos. Por ejemplo, una biblioteca de símbolos puede incluir una operación dependiente de una declaración condicional. La sección de datos de la lectura-escritura es consultada para determinar la situación requerida para completar la declaración condicional. La presente invención agrupa los datos de lectura-escritura procedentes de todas las bibliotecas de símbolos en una sección compartida de lectura-escritura. En algunos aspectos de la invención, los datos de lectura-escritura (330) están dispuestos en la sección de código (308) de gestión de segmentos añadidos. De manera alternativa (no mostrado), los datos de lectura-escritura pueden ser dispuestos en una sección de código distinta, tal como, por ejemplo, la sección de código n (306).
La primera serie de bibliotecas de símbolos incluye también un código de acceso de símbolo dispuesto en la sección de código para calcular la dirección de un símbolo deseado. El código de acceso de símbolo puede ser dispuesto y almacenado en una dirección en una sección de código separada, por ejemplo, la sección de código dos (304). No obstante, tal como se ha mostrado, el código de acceso de símbolos (332) está dispuesto y es almacenado en una dirección de la sección de código (308) de gestión de segmentos añadidos. El sistema (300) comprende además una primera localización para almacenamiento de la dirección de código de acceso de símbolo. La primera localización puede ser una sección de código en la sección de almacenamiento de código (112), o en una sección de memoria separada del dispositivo sin cables (no mostrado). La primera localización puede ser dispuesta también en la misma sección de código que los datos de lectura-escritura. Tal como se ha mostrado, la primera localización (334) está almacenada en la sección de código (308) de gestión de segmentos añadidos con los datos (330) de lectura-escritura, la tabla (328) de direcciones de desplazamiento de símbolos, la tabla (326) de dirección de sección de código, y el código de acceso de símbolos (332) y la biblioteca de segmentos añadidos (biblioteca de símbolos de segmentos añadidos) (336).
El código de acceso de símbolo accede a la tabla de direcciones de la sección de código y a las tablas de direcciones de desplazamiento de símbolos para calcular o hallar las direcciones de un símbolo deseado en la memoria. Es decir, el código de acceso de símbolo calcula la dirección del símbolo deseado utilizando un identificador de símbolo correspondiente y un identificador de sección de código correspondiente. Por ejemplo, si se busca el símbolo "X" en la biblioteca de símbolos uno, se acude al acceso de símbolos para buscar el identificador de símbolos (ID del símbolo) "X_1", correspondiente al símbolo "X" (ver figura 7). El código de acceso del símbolo consulta la tabla de direcciones de desplazamiento de símbolos para determinar que el identificador de símbolos "X_1" tiene un desplazamiento de (03) desde el inicio de la sección de código uno (ver figura 6). El código de acceso de símbolo es invocado para buscar el identificador de sección de código "CS_1", que corresponde a la sección de código uno. El código de acceso de símbolo consulta la tabla de direcciones de la sección de código para determinar la dirección de inicio asociada con el identificador de sección de código (ID de la sección de código) "CS_1". De este modo, el código de acceso de símbolo determina que el identificador de símbolo "X_1" está desplazado (03) con respecto a la dirección (00100), o está situado en la dirección (00103).
El símbolo "X" es un nombre reservado dado que es una parte del código actual. En otras palabras, tiene un dato absoluto asociado con el mismo. Los datos pueden ser una dirección o un valor. El identificador de símbolo es un nombre supuesto creado para el seguimiento del símbolo. La tabla de direcciones de desplazamiento de símbolos y la tabla de direcciones de sección de código funcionan ambas con identificadores para evitar confusión con nombres de símbolo y de sección de código reservados. También es posible que el mismo nombre de símbolo sea utilizado en muchas bibliotecas de símbolos. La utilización de identificadores impide la confusión entre estos símbolos.
Haciendo referencia nuevamente a la figura 1, el sistema (300) comprende además una memoria volátil de lectura-escritura (114), de manera típica, una memoria de acceso al azar (RAM). Los datos de lectura-escritura (330), la tabla (326) de direcciones de las secciones de código, la tabla (328) de direcciones de desplazamiento de símbolos, el código de acceso de símbolos (332), y la dirección de código de acceso de símbolos (334) son cargados en la memoria volátil de lectura-escritura (114) desde la sección de código de gestión de segmentos añadidos para acceso durante la ejecución del software del sistema. Como es bien sabido, los tiempos de acceso para códigos almacenados en una RAM son significativamente menores que el acceso a una memoria no volátil tal como Flash.
Haciendo nuevamente referencia a la figura 3, se puede observar que las bibliotecas de símbolos no necesariamente deben llenar las secciones de código en las que están dispuestas, si bien los bloques de memoria están dimensionados para adaptarse exactamente en las correspondientes secciones de código almacenadas en su interior. Dicho de otro modo, cada una de la segunda serie de secciones de código tiene unas dimensiones en bites que se adaptan a las bibliotecas de símbolos dispuestas, y cada uno de los bloques de memoria direccionados de forma contigua tiene unas dimensiones en bites que se adaptan a las correspondientes secciones de código. Por ejemplo, la sección de código uno (302) puede ser una sección de 100 bites para recibir una biblioteca de símbolos que tiene una longitud de 100 bites. El primer bloque de memoria sería de 100 bites para adaptarse a las dimensiones de bites de la sección de código uno. No obstante, la biblioteca de símbolos dispuesta en la sección de código uno puede ser menor de 100 bites. Tal como se ha mostrado en la figura 3, la sección de código uno (302) tiene una sección no utilizada (340), dado que la biblioteca de símbolos uno (310) es menor de 100 bites. Por lo tanto, cada una de la segunda serie de secciones de código puede tener unas dimensiones mayores que las necesarias para recibir las bibliotecas de símbolos dispuestas. Al "redimensionar" las secciones de código, se pueden recibir o adoptar bibliotecas de símbolos actualizadas más grandes.
Los bloques de memoria direccionados de forma contigua se refieren a la división del espacio de memoria física en bloques lógicos de dimensiones variables. Las secciones de código y los bloques de memoria son términos esencialmente intercambiables cuando la sección de código está almacenada en memoria. El concepto de una sección de código es utilizado para identificar una sección de código que quizás es mayor que la biblioteca de símbolos, o la colección de bibliotecas de símbolos en la sección de código al ser desplazada y manipulada.
Tal como se aprecia en la figura 3, el sistema (300) comprende una biblioteca de símbolos de segmentos añadidos, a la que se hará referencia en esta descripción como biblioteca de segmentos añadidos (336), para disponer nuevas secciones de código en la sección de almacenamiento de código con las secciones de código corrientes. La disposición de nuevas secciones de código con secciones de código corrientes en la sección de almacenamiento de código forma software del sistema ejecutable actualizado. La gestión (336) de segmentos añadidos no solamente dispone nuevas secciones de código con las secciones de código corrientes, también sustituye secciones de código con secciones de código actualizadas.
Haciendo referencia nuevamente a la figura 4, la sección (110) de sistema de archivos de la memoria (108) recibe nuevas secciones de código, tales como la nueva sección de código (450) y la sección de código (452) de gestión de segmentos añadidos actualizada. La sección del sistema de archivos recibe también una primera instrucción de tiempo de ejecución de la gestión de segmentos añadidos (PMRTI) (454) incluyendo instrucciones para disponer las nuevas secciones de código con secciones de código corrientes. Tal como se aprecia en la figura 1, un interfaz aéreo (150) recibe secciones de código nuevas o actualizadas, así como la primera PMRTI. Si bien el interfaz aéreo (150) ha sido representado por una antena, se debe comprender que el interfaz aéreo podría incluir también un transceptor RF, circuitos de banda base y circuitos de demodulación (no mostrados). La sección (110) de sistema de archivo almacena las nuevas secciones de código recibidas con intermedio del interfaz aéreo (150). La biblioteca de segmentos añadidos (336), que ejecuta desde la memoria volátil de lectura-escritura (114), sustituye una primera sección de código en la sección de almacenamiento de códigos, por ejemplo, la sección de código n (306), con una nueva sección de código nueva o actualizada (450), como respuesta a la primera PMRTI (454). De manera típica, la sección de código (308) de gestión de segmentos añadidos es sustituida con la sección de código (452) de la gestión de segmentos añadidos actualizada. Cuando se sustituyen las secciones de código, la biblioteca de segmentos añadidos (336) sobreescribe la primera sección de código, por ejemplo, la sección de código n (306), en la sección de almacenamiento de código (112) con las secciones de código actualizadas, por ejemplo, la sección de código (450), en la sección del sistema de archivo (110). En un caso extremo, todas las secciones de código de la sección de almacenamiento de códigos (112) son sustituidas por secciones de código actualizadas. Es decir, la FSS (110) recibe una segunda serie de secciones de código actualizadas (no mostrado), y la biblioteca (336) de segmentos añadidos sustituye a la segunda serie de secciones de código en la sección de almacenamiento de código (112) con la segunda serie de secciones de código actualizadas. Desde luego, la FSS (110) debe ser suficientemente grande para recibir la segunda serie de secciones de código actualizadas recibidas por medio del interfaz aéreo.
Tal como se ha indicado anteriormente, las secciones de código actualizadas recibidas pueden incluir secciones de código de datos de lectura-escritura, secciones de código de tablas de direcciones de sección de código, bibliotecas de símbolos, secciones de código de tablas de direcciones de desplazamiento de símbolos, secciones de código de acceso de símbolos, o una sección de código con una nueva biblioteca de segmentos añadidos. Todas estas secciones de código, con sus bibliotecas de símbolos asociadas y símbolos, se pueden almacenar en forma de secciones de código distintas e independientes. Entonces, cada una de estas secciones de código sería sustituida por una sección de código actualizada única. Es decir, una sección de código de escritura-lectura actualizada sería recibida y sustituiría la sección de código de lectura-escritura en la sección de almacenamiento de código. Una sección de código de tablas de direcciones de secciones de código actualizadas sería recibida y sustituiría la sección de código de tabla de direcciones de sección de códigos en la sección de almacenamiento de códigos. Una sección de código de la tabla de direcciones de desplazamiento de símbolos actualizada sería recibida y sustituiría la sección de código de la tabla de direcciones de desplazamiento de símbolos en la sección de almacenamiento de código. Una sección de código de acceso de símbolos actualizada sería recibida y sustituiría la sección de código de acceso de símbolos en la sección de almacenamiento de códigos. De manera similar, una sección de códigos de gestión de segmentos añadidos actualizada (con una biblioteca de segmentos añadidos) sería recibida y sustituiría la sección de código de gestión de segmentos añadidos en la sección de almacenamiento de códigos.
No obstante, las secciones de código anteriormente mencionadas son asociadas de manera típica entre sí en la sección de código de la gestión de segmentos añadidos. De este modo, la sección de código de lectura-escritura de la sección de almacenamiento de códigos es sustituida por la sección de códigos de lectura-escritura actualizada de la sección (110) del sistema de archivo cuando la sección (308) del código de gestión de segmentos añadidos es sustituida por la sección de código (450) de segmentos añadidos actualizada. De manera similar, la tabla de direcciones de la sección de códigos, la tabla de direcciones de desplazamiento de símbolos, las secciones de código de acceso de símbolos, así como la biblioteca de segmentos de símbolos son sustituidos cuando se instala la sección de código (450) de gestión de segmentos añadidos actualizada. La disposición de nuevos datos de lectura-escritura, la nueva tabla de direcciones de la sección de códigos, la nueva tabla de direcciones de desplazamiento de símbolos, el nuevo código de acceso de símbolos y la nueva biblioteca de segmentos añadidos como la nueva sección de código (450) de gestión de segmentos añadidos actualizada, junto con las secciones de código corrientes en la sección de almacenamiento de códigos, forman el software del sistema ejecutable actualizado.
Cuando la sección (110) del sistema de archivo recibe una dirección de código de acceso de símbolo actualizada, la gestión de segmentos añadidos sustituye la dirección de código de acceso de símbolo en la primera localización en la memoria por la dirección de código de acceso de símbolo actualizada. Tal como se ha mencionado anteriormente, la primera localización en la memoria (334) está, de manera típica, en la sección de código de gestión de segmentos añadidos (ver figura 3).
Tal como se aprecia en la figura 3, la biblioteca de segmentos añadidos (308) comprende además un compactador o una biblioteca de símbolos del compactador (342). El compactador (342) puede estar dispuesto asimismo como una sección de código independiente y distinta, sin embargo, tal como se ha mencionado anteriormente, resulta útil y eficaz agrupar las funciones asociadas con actualizaciones de software del sistema en una única sección de código de gestión de segmento. Generalmente, se puede decir que el compactador (342) redimensiona las secciones de código, de manera que las secciones nuevas pueden ser dispuestas con secciones de código actuales en la sección de almacenamiento de código (112).
Con los aspectos de organización, descarga y compactación de la invención ya establecidos, la descripción siguiente se centrará en el sistema (300) de ejecución del conjunto de instrucciones dinámicas del dispositivo de comunicaciones sin cables. El sistema (300) comprende software del sistema ejecutable y datos del sistema diferenciados en secciones de código, tal como se ha mencionado en gran detalle anteriormente. Además, el sistema (300) comprende conjuntos de instrucciones dinámicas para hacer funcionar con los datos del sistema y el software del sistema, y controlando la ejecución del software del sistema. Tal como se observa en la figura 4, un conjunto de instrucción dinámica (470) está organizado en una primera PMRTI (454). Tal como se observa en la figura 3, el sistema comprende además un dispositivo de tiempo de ejecución para el proceso de conjuntos de instrucciones dinámicas, provisto como biblioteca de tiempo de ejecución (370). Como en el caso de la biblioteca del compactador (342) y la biblioteca de segmentos añadidos (336) mencionadas anteriormente, la biblioteca de tiempo de ejecución (370) está dispuesta típicamente en la sección de código de gestión de segmentos añadidos (308). Sin embargo, la biblioteca de tiempo de ejecución (370) podría estar situada alternativamente en otra sección, por ejemplo, la primera sección de código (304).
Los conjuntos de instrucciones dinámicas son conjuntos únicos o múltiples de instrucciones que comprenden código de operación condicional, y generalmente comprenden elementos de datos. El dispositivo de tiempo de ejecución lee el código de operación y determina qué operaciones es necesario llevar a cabo. El código de operación puede ser condicional, matemático, de proceso o lógico. El dispositivo de tiempo de ejecución o la biblioteca de tiempo de ejecución (370) procesa los conjuntos de instrucciones dinámicas para llevar a cabo operaciones tales como operaciones matemáticas o lógicas. Es decir, el dispositivo de tiempo de ejecución lee el conjunto de instrucciones dinámicas (470) y lleva a cabo una secuencia de operaciones como respuesta al código de operación. A pesar de que los conjuntos de instrucciones dinámicas no están limitados a ningún lenguaje específico, el código de operación es típicamente una forma de código de máquina, dado que la memoria del dispositivo sin cables está limitada y la velocidad de ejecución es un factor importante. El código de operación es considerado como condicional en la medida que analiza un elemento de datos y toma una decisión como resultado de dicho análisis. El dispositivo de tiempo de ejecución también puede determinar que una operación sea llevada a cabo sobre los datos antes de ser analizada.
Por ejemplo, el código de operación puede especificar que un elemento de datos de una memoria de dispositivo sin cables sea comparado con un valor predeterminado. En el caso que dicho elemento de datos es menor que un valor predeterminado, el elemento de datos permanece inalterado, y en el caso que dicho elemento de datos es mayor que el mencionado valor predeterminado, es sustituido con el valor predeterminado. De forma alternativa, el código de operación puede añadir un segundo valor predeterminado a un elemento de datos desde la memoria del dispositivo sin cables, antes de que la operación de comparación mencionada anteriormente sea llevada a cabo.
Tal como ha sido mencionado anteriormente, la memoria no volátil de la sección del sistema de archivos (110) recibe los conjuntos de instrucciones dinámicas a través de una interfaz, tal como un enlace de comunicaciones aéreo (150). Tal como se muestra en la figura 1, la interfaz también puede ser una línea fija (160) de radiofrecuencia (RF). Entonces, la PMRTI puede ser recibida por el FSS (110) sin que el software de sistema sea operacional, tal como en un ambiente de calibración de fábrica. La PMRTI también puede ser recibida mediante una interfaz de puerto lógico (162) o un módulo de memoria instalable (164). El módulo de memoria (164) puede ser instalado en el dispositivo sin cables (104) en el momento de la calibración inicial, instalado en el servicio, o instalado durante la recalibración en fábrica. A pesar de que no se muestra de forma específica, la PMRTI puede ser recibida mediante interfaces infrarrojas o tecnología Bluetooth.
Las figuras 8a y 8b muestran las instrucciones que son accedidas por el dispositivo de tiempo de ejecución (370). Se muestra en la figura 8a una primera instrucción (800), una segunda instrucción (802), y una instrucción de orden j (804), sin embargo, el conjunto de instrucciones dinámicas no está limitado a ninguna cantidad específica de instrucciones. La longitud del código de operación en cada instrucción es fija. El dispositivo de tiempo de ejecución (370) captura la longitud de la instrucción, como una medida de bits o bytes, para determinar si la instrucción incluye elementos de datos. El resto de la longitud de la instrucción, una vez que ha sido eliminado el código de operación, incluye elementos de datos. El dispositivo de tiempo de ejecución extrae los elementos de datos de la instrucción. Tal como se muestra, se mide la longitud (806) de la primera instrucción (800) y son extraídos los elementos de datos (808). Se debe observar que no todas las instrucciones incluyen necesariamente elementos de datos que serán extraídos. El dispositivo de tiempo de ejecución (370) utiliza los datos extraídos (808) para llevar a cabo la secuencia de operaciones en respuesta al código de operación (810) en la instrucción (800).
La figura 8b es un gráfico más detallado de la primera instrucción (800) de la figura 8a. Utilizando la primera instrucción (800) como ejemplo, la instrucción incluye código de operación (810) y datos (808). La instrucción, y de forma más específica, la sección de elementos de datos (808) incluye identificadores de símbolos, que actúan como enlace con los símbolos en las secciones de código del dispositivo sin cables. Tal como ha sido descrito anteriormente en detalle, los identificadores de símbolos son utilizados con la tabla de direcciones de secciones de código (326) (ver figura 5) y la tabla de direcciones de desplazamiento de símbolos (328) (ver figura 7) para localizar el símbolo correspondiente al identificador de símbolo. Tal como se muestra, un identificador de símbolo "X_1" es mostrado en la primera instrucción (800). La tabla de direcciones de desplazamiento de símbolos (328) localiza el símbolo correspondiente en una sección de código con el identificador "CS_1" y un desplazamiento de "3". La tabla de direcciones de sección de código (326) dispone la dirección de inicio de la sección de código número uno (302). De esta manera, es encontrado el símbolo "X" (ver figura 6).
Después de que el dispositivo de tiempo de ejecución encuentra los símbolos correspondientes con los identificadores de símbolos recibidos utilizado la tabla de direcciones de secciones de código y la tabla de direcciones de desplazamiento de símbolos, extrae datos cuando los símbolos localizados son elementos de datos. Por ejemplo, si el símbolo "X" es un elemento de datos en la biblioteca de símbolos uno (310), el dispositivo de tiempo de ejecución lo extrae. De manera alternativa, el símbolo "X" puede ser código de operación, y el dispositivo de tiempo de ejecución ejecuta el símbolo "X" cuando es encontrado.
La PMRTI puede ser utilizada para llevar a cabo la actualización de los datos de sistema, o elementos de datos de sistema. En algunos aspectos de la invención, los datos de sistema son almacenados en una sección de código en la sección de sistema de archivos (110), por ejemplo, la sección de código (472), ver figura 4. El dispositivo de tiempo de ejecución accede a los datos de sistema desde la sección de código (472) y analiza los datos de sistema. El dispositivo de tiempo de ejecución procesa el código de operación de los conjuntos de instrucciones dinámicas para llevar a cabo operaciones matemáticas o lógicas sobre los elementos de datos, del modo que ha sido descrito anteriormente. Después de la operación, el dispositivo de tiempo de ejecución procesa las instrucciones para crear datos de sistema actualizados. Se debe observar que los datos de sistema actualizados pueden incluir elementos de datos no alterados en algunas circunstancias. Los datos de sistema en la segunda sección de código (472) son sustituidos por los datos de sistema actualizados como respuesta al código de operación. De este modo, mediante el procesamiento de la instrucción llevado a cabo por el dispositivo de tiempo de ejecución, se controla la ejecución del software de sistema utilizando los datos de sistema actualizados en la sección de código (472). De este modo, pueden ser actualizados los símbolos objetivados de forma específica en el software de sistema, sin sustituir secciones de código completas. Mediante el mismo proceso, los datos de sistema pueden ser sustituidos en una sección de código en la sección de almacenamiento de código (112). Por ejemplo, los datos de sistema pueden ser almacenados en la tercera sección de código (344), y el dispositivo de tiempo de ejecución puede sustituir los datos de sistema en la tercera sección de código por datos de sistema actualizados como respuesta al código de operación.
La PMRTI se puede utilizar asimismo para actualizar elementos de datos en la memoria volátil (114). A modo de ejemplo, la memoria volátil (114) acepta datos de lectura-escritura (330), ver figura 1. Los datos de lectura-escritura pueden ser de una, o de una serie de secciones de código en la sección de almacenamiento de código (112) y/o el FSS (110). El dispositivo de tiempo de ejecución accede a los datos de lectura-escritura, analiza dichos datos de lectura-escritura (330), crea los datos de lectura-escritura actualizados, y reemplaza los datos de lectura-escritura (330) de la memoria volátil (114) por los datos de lectura-escritura actualizados como respuesta al código de operación. Entonces, el software de sistema está controlado para ejecutarse utilizando los datos de lectura-escritura actualizados en la memoria volátil (114).
En algunos aspectos de la presente invención, el dispositivo de tiempo de ejecución controla la ejecución del software de sistema. El control del rendimiento está definido de forma amplia para incluir una gran cantidad de actividades del dispositivo sin cables. Por ejemplo, pueden ser controlados los datos correspondientes a los parámetros de canal, características de canal, apilamiento del sistema, condiciones de error, o un registro de elementos de datos de la RAM a través de una secuencia de operaciones que conducen a una situación de fallo específico o una situación de rendimiento reducido. Además, resulta posible utilizar conjuntos de instrucciones dinámicas para analizar datos recogidos del rendimiento, proporcionar variantes de datos actualizados, y recapturar datos para estudiar posibles soluciones al problema. Arreglos temporarios también pueden ser provistos utilizando procesos PMRTI.
De manera más específica, el dispositivo de tiempo de ejecución recoge datos de rendimiento, y almacena dichos datos de rendimiento en la sección de sistema de archivos como respuesta al código de operación. Entonces, el software de sistema es controlado para ser ejecutado recogiendo los datos de rendimiento para la evaluación del software de sistema. La evaluación puede ocurrir como una forma de análisis llevada a cabo por el código de operación del conjunto de instrucciones dinámicas, o puede ser llevada a cabo fuera del dispositivo sin cables. En algunos aspectos de la presente invención, el dispositivo de tiempo de ejecución accede a los datos de rendimiento que han sido recogidos de la sección de sistema de archivos y transmite dichos datos de rendimiento a través de una interfaz de enlace aéreo como respuesta al código de operación. La recogida de datos de rendimiento de los dispositivos sin cables en el servicio permite al fabricante analizar totalmente los problemas, de forma local o global, sin necesidad de hacer que dichos dispositivos vayan a un agente oficial ("recalling").
En algunos aspectos de la presente invención, la sección de sistema de archivos (110) recibe una instrucción de tiempo de ejecución de gestión de segmentación que incluye una nueva sección de código. Por ejemplo, en la figura 4 se muestra una nueva sección de código (474). De manera alternativa, la nueva sección de código puede ser independiente de la PMRTI, como una nueva sección de código n (450). Por ejemplo, la nueva sección de código n (450) puede haber sido recibida mediante comunicaciones de enlace aéreo previas, o haber sido instalada durante la calibración en fábrica. El dispositivo de tiempo de ejecución añade la nueva sección de código (474) (450) a la sección de almacenamiento de código como respuesta al código de operación. En algunos aspectos de la presente invención, la nueva sección de código es añadida al bloque no utilizado en la sección de almacenamiento de código (112). De forma alternativa, se requiere una operación de compactación. Entonces, el software de sistema está controlado para la ejecución utilizando la nueva sección de código (474) (450). En otros aspectos de la invención, la PMRTI (454) incluye una sección de código actualizado (474). De manera alternativa, la nueva sección de código (450) es una sección de código actualizado independiente de la PMRTI. El dispositivo de tiempo de ejecución reemplaza una sección de código en la sección de almacenamiento de código, por ejemplo, la sección de código dos (304), por la sección de código actualizado (474) (450) como respuesta al código de operación. El software del sistema está controlado para ejecutarse utilizando la sección de código actualizada (474) (450). En algunos aspectos de la invención, es necesaria una operación de compactado para localizar la sección de código actualizada. De manera alternativa, la sección de código actualizada es añadida a una sección no utilizada o vacante de la sección de almacenamiento de código.
Tal como ha sido descrito anteriormente, la adición de una nueva sección de código o la actualización de una sección de código requiere de manera típica la generación de una nueva tabla de direcciones de secciones de código, dado que dicha operación incluye direcciones de inicio de secciones de código nuevas y/o modificadas. Además, una operación de compactación requiere asimismo una nueva tabla de direcciones de secciones de código. Las operaciones de compactación pueden ser el resultado de la operación del compactador (342), explicada anteriormente, o el resultado de instrucciones PMRTI que suministran detalles del modo en que debe llevarse a cabo dicha compactación. Cuando la PMRTI incluye instrucciones de descarga y compactación, la PMRTI incluye también de forma típica una nueva tabla de direcciones de secciones de código que se hace válida después de que las operaciones de descarga y compactación han sido completadas.
La figura 9 es un diagrama de bloques esquemático que muestra el sistema de la presente invención para la actualización de los datos persistentes en el software de sistema de un dispositivo de comunicaciones inalámbricas. Dicho sistema (900) comprende una interfaz de enlace aéreo (902), equivalente a la interfaz de enlace aéreo (150) de la figura 1, y un software de sistema ejecutable y datos de sistema separados en secciones de código almacenadas en un dispositivo de almacenamiento permanente de memoria no volátil (904), equivalente a la memoria (108) de la figura 1. El sistema (900) es substancialmente el mismo que el sistema (100) descrito anteriormente, y las características similares no serán repetidas a efectos de brevedad. El dispositivo de almacenamiento permanente no volátil (904) incluye una sección de sistema de archivos (906) y una sección de almacenamiento de código (908).
Los conjuntos de instrucciones dinámicas (910) para la actualización selectiva de los datos persistentes en el software de sistema son recibidos a través de la interfaz de enlace aéreo (902). Los datos persistentes deben entenderse como elementos de datos del software de sistema que, de manera general, se mantienen fijos o con valor constante. Por ejemplo, los datos persistentes pueden ser un número fijo que es utilizado en un cálculo de un valor atenuador de RF, determinado como respuesta a la recepción de una orden nivel de potencia de transmisión por una estación base. El cambio en los datos persistentes puede tener en cuenta diferencias regionales de temperatura o variaciones de los lotes de transistores de energía de RF. Un cambio de este tipo permite que el dispositivo sin cables corrija de manera permanente su proceso de calibración. Además de los datos de calibración RF, los datos del sistema no volátil y de configuración de usuario, datos de recursos, datos de sistema no volátil y datos de aplicación de usuario, y datos arbitrarios son todos tipos de datos persistentes que pueden ser actualizados. Los datos del sistema no volátil y de configuración de usuario, los datos de recursos, los datos de sistema no volátil y datos de aplicación de usuario son descritos con mayor detalle posteriormente. Los datos arbitrarios deben entenderse como cualquier tipo de elemento de datos de software de sistema que no queda cubierto por las categorías de datos anteriormente mencionadas.
Se entiende que el sistema actualiza los datos persistentes de forma selectiva porque no todos los elementos de datos en una sección de código o biblioteca de símbolos necesitan ser sustituidos de forma global, como en algunos procesos pertenecientes a la técnica anterior. Es decir, pueden actualizarse elementos de datos únicos o múltiples en una sección de código. La actualización es más selectiva dado que utiliza de manera potencial operaciones lógicas o matemáticas condicionales para determinar los elementos de datos que deben ser sustituidos, y el valor que será utilizado como sustituto. Finalmente, el sistema es capaz de llevar a cabo la actualización de datos persistentes actualizados a partir de una gran variedad de clases de datos mencionadas anteriormente.
Los conjuntos de instrucciones dinámicas (910), así como nuevas secciones de código (912), son parte de las instrucciones de tiempo de ejecución de gestión de segmentación (914). De manera típica, los conjuntos de instrucciones dinámicas (910) son almacenados en la sección del sistema de archivos (906). Un dispositivo de tiempo de ejecución, o biblioteca de tiempo de ejecución (916) procesa los conjuntos de instrucciones dinámicas (910). Tal como se ha mencionado anteriormente, la biblioteca de tiempo de ejecución (916) forma parte, de manera típica, es parte de la sección de código de gestión de segmentación (918). El software de sistema ejecutable y los datos de sistema (secciones de código en la memoria permanente (904)) son actualizados como respuesta al procesamiento de los conjuntos de instrucciones dinámicas. El software de sistema es ejecutado siguiendo las actualizaciones de datos persistentes del software de sistema, llevadas a cabo por los conjuntos de instrucciones dinámicas (910).
Tal como se ha mencionado anteriormente en detalle, el software de sistema forma bibliotecas de símbolos. Cada biblioteca de símbolos comprende símbolos que tienen una funcionalidad relacionada, que son dispuestos en secciones de código en la memoria no volátil (904) (o bien la sección de almacenamiento de código (908) o bien la sección de sistema de archivos (904)). La sección de sistema de archivos (906) de la memoria no volátil recibe las instrucciones de tiempo de ejecución de gestión de segmentación (PMRTI) (914), incluyendo los conjuntos de instrucciones dinámicas (910) y las nuevas secciones de código (se muestra la nueva sección de código (912)). Dichos conjuntos de instrucciones dinámicas y las nuevas secciones de código pueden incluir datos persistentes e instrucciones de datos persistentes actualizados.
El sistema (900) puede comprender otro tipo de interfaces, además de la interfaz de enlace aéreo (902). Por ejemplo, un teclado o teclado numérico del dispositivo de comunicaciones sin cables (950), un módulo de memoria instalable (952), una interfaz de infrarrojos (954), un puerto lógico (956), y una interfaz de línea fija de RF (958). La sección de sistema de archivos (906) es capaz de recibir datos persistentes actualizados a través de cualquiera de dichas interfaces.
La figura 10 es un diagrama de bloques esquemático que muestra de manera general el sistema (900) de la figura 9. La sección de sistema de archivos (906) recibe conjuntos de instrucciones dinámicas que incluyen instrucciones de datos persistentes (910). El software de sistema incluye una serie de elementos de datos persistentes en una primera sección de código (1000). Un elemento de datos persistente "X_1" es mostrado con la referencia (1002). Además, debe entenderse que una sección de código normalmente incluiría numerosos elementos de datos persistentes. Las instrucciones de datos persistentes (910) hacen que los elementos de datos persistentes en la primera sección de código (1000) sean sustituidos con los elementos de datos persistentes actualizados. Tal como se muestra, el elemento de datos persistentes actualizado "Y_1" (1004) está reemplazando al elemento de datos "X_1" (1002), ver la flecha punteada con la referencia "1". Tal como se describe a continuación, los datos persistentes actualizados son actualizados a través de una variedad de medios. A pesar de que la primera sección de código se muestra localizada en la sección de almacenamiento de código (908), debe entenderse que la primera sección de código podría estar localizada de forma alternativa en la sección de sistema de archivos (906) y que el sistema de la presente invención puede actualizar los elementos de datos persistentes en la sección del sistema de archivos (906) de la memoria permanente (904).
Las figuras 11a y 11b son diagramas de bloques esquemáticos que muestran el aspecto de la sección de código de sustitución del sistema de la presente invención (900) de la figura 10. La figura 11a muestra un aspecto del proceso de sustitución de elementos de datos. La sección del sistema de archivos (906) recibe una sección de código de sustitución (912), típicamente con una serie de elementos de datos, pero dicha sección de código (912) podría incluir tan solo un único elemento de datos. De forma alternativa, los elementos de datos de sustitución podrían ser distribuidos en una serie de secciones de código de sustitución. Las instrucciones de datos persistentes (910) reemplazan los elementos de datos persistentes en la primera sección de código (1000) con los elementos de datos suministrados por la sección de código de sustitución. Tal como se muestra, el elemento de datos "X_1" (1002) está siendo sustituido con el elemento de datos "Y_1" (1004) a partir de la sección de código de sustitución (912), ver flecha punteada con la referencia "1".
La figura 11b es un diagrama de bloques esquemático que muestra una variación del aspecto de la sección de código de sustitución del sistema de la presente invención (900). En algunos aspectos de la presente invención, la sección de sistema de archivos (906) recibe los elementos de datos de sustitución alojados junto con las instrucciones de datos persistentes (910). Las instrucciones de datos persistentes (910) reemplazan a los elementos de datos persistentes en la primera sección de código (1000) con los elementos de datos alojados en las instrucciones de datos persistentes. Tal como se muestra, el elemento de datos "X_1" (1002) está siendo sustituido con el elemento de datos "Y_1" (1004) a partir de los conjuntos de instrucciones persistentes (910), ver la flecha punteada con la referencia "1". A pesar de que la primera sección de código se muestra localizada en la sección de almacenamiento de código (908), debe entenderse que la primera sección de código podría estar localizada de forma alternativa en la sección del sistema de archivos (906) y que la característica de sustitución del sistema de la presente invención puede actualizar elementos de datos persistentes en la sección del sistema de archivos (906) de la memoria permanente (904).
La figura 12 es un diagrama de bloques esquemático que muestra el aspecto lógico condicional del sistema de la presente invención (900). La sección del sistema de archivos (906) recibe una serie de elementos de datos de restricción e instrucciones de datos persistentes condicionales (1200). Las instrucciones de datos persistentes condicionales (1200) pueden ser consideradas como un subconjunto del conjunto de instrucciones persistentes que utilizan de forma específica operaciones lógicas o matemáticas para llevar a cabo las sustituciones de elementos de datos. Las instrucciones de datos persistentes condicionales (1220) llevan a cabo la comparación de los elementos de datos persistentes en la primera sección de código (1000) con los elementos de datos de restricción. Como respuesta a dicha comparación, los elementos de datos persistentes en la primera sección de código (100) con los elementos de datos de restricción, las instrucciones de datos persistentes condicionales (1200) sustituyen a los elementos de datos persistentes en la primera sección de código (1000).
En un aspecto de la presente invención, la sección del sistema de archivos (906) recibe una sección de código de restricción (1202) con una serie de elementos de datos. Se muestran los elementos de datos "Y_1" (1024), "Y_2" (1026) e "Y_3" (1028). Las instrucciones de datos persistentes condicionales (1200) sustituyen los elementos de datos persistentes en la primera sección de código (1000) con elementos de datos a partir de la sección de código de restricción (1202), como respuesta a la comparación de los elementos de datos persistentes en la primera sección de código (1000) con los elementos de datos en la sección de código de restricción (1202).
La figura 13 es un diagrama esquemático que muestra el funcionamiento de las instrucciones de datos persistentes condicionales. Tal como se muestra en este ejemplo, las instrucciones de datos persistentes condicionales (1200) pueden comparar el elemento de datos "X_1" (1002) de la primera sección de código (1000) con el elemento de datos "Y_1" (1204) de la sección de datos de restricción (1202). La operación condicional puede ser: es (Y_1 > X_1)? Como resultado de esta operación, las instrucciones de datos persistentes condicionales (1200) pueden decidir el dejar "X_1" (1002) en su lugar, sustituir "X_1" (1200) por "Y_1" (1204), sustituir "X_1" (1002) por "Y_2" (1206), o sustituir "X_1" (1002) por un valor calculado, para mencionar unas pocas posibilidades. De este modo, las instrucciones de datos persistentes condicionales (1200) pueden sustituir elementos de datos persistentes en la primera sección de código (1000) con elementos de datos calculados mediante las instrucciones de datos persistentes condicionales (1202), como respuesta a la comparación de elementos de datos persistentes (es decir, "X_1") en la primera sección de código (1000) con los elementos de datos de restricción (es decir, "Y_1"). Por ejemplo (como se muestra), el cálculo puede detectar la diferencia entre "Y_1" y "X_1", añadir dicha diferencia a "Y_1", y utilizar dicho resultado para sustituir "X_1".
De forma alternativa, las instrucciones de datos persistentes condicionales (1200) utilizan los elementos de datos de restricción como operandos en los cálculos para obtener productos o resultados de elementos de datos. Los elementos de datos persistentes en la primera sección de código son reemplazados con los productos de elementos de datos. Por ejemplo, si "Y_1" es mayor que "X_1", el cálculo puede ser el de multiplicar el operando "Y_1" por 3, y utilizar dicho resultado para sustituir "X_1". En otra variante, si "Y_1" es mayor que "X_1", el cálculo puede ser la multiplicación del operando "Y_2" por 3, y utilizar dicho resultado para sustituir "X_1". Debe entenderse además que las operaciones condicionales lógicas o matemáticas son procesadas utilizando operaciones de software convencional, y por lo tanto puede ser cualquier operación que pueda ser llevada a cabo utilizando software.
Haciendo referencia nuevamente a la figura 12, en algunos aspectos de la presente invención, la sección de sistema de archivos (906) recibe elementos de datos de restricción, tal como el elemento de datos "Z_1" (1210) alojado junto con las instrucciones de datos persistentes condicionales (1200). Entonces, las instrucciones de datos persistentes condicionales (1200) sustituyen elementos de datos persistentes en la primera sección de código (1000) con elementos de datos de restricción alojados en las instrucciones de datos persistentes condicionales (1200), como respuesta a la comparación de los elementos de datos persistentes en la primera sección de código (1000) con los elementos de datos de restricción. A pesar de que no se muestra de forma específica, las instrucciones de datos persistentes condicionales (1200) llevarían a cabo una operación condicional lógica o matemática, comparando "X_1" (1002) con "Z_1" (1210), por ejemplo, y se tomaría una decisión de sustitución como resultado de dicha comparación. Además, el elemento de datos podría ser sustituido simplemente con un elemento de datos incorporado, o el elemento de datos de sustitución puede ser generado como un producto de una operación matemática utilizando un elemento de datos incorporado en las instrucciones de datos persistentes condicionales (1200). A pesar de que la primera sección de código podría estar localizada de forma alternativa en la sección de almacenamiento de código (908), debe comprenderse que la primera sección de código puede estar localizada de manera alternativa en la sección del sistema de archivos (906) y que el aspecto lógico condicional del sistema de la presente invención puede actualizar elementos de datos persistentes en la sección del sistema de archivos (906) de la memoria permanente (904).
La figura 14 es un diagrama de bloques esquemático que muestra el aspecto directorio o de direccionamiento del sistema de la presente invención (900). La sección de sistema de archivos (906) recibe una sección de código directorio (1400) con una serie de direcciones de elementos de datos, tales como los elementos "A_1" (1402), "A_2" (1404), y "A_3" (1406). Las instrucciones de datos persistentes (910) localizan elementos de datos de sustitución como respuesta a las direcciones de elementos de datos de la sección de código directorio. Las instrucciones de datos persistentes (910) llevan a cabo la sustitución de los elementos de datos persistentes en la primera sección de código (1000) con el elemento de datos de sustitución localizado. Tal como se muestra, las instrucciones de datos persistentes (910) utilizan la dirección de elemento de datos "A_1" (1402), ver flecha punteada con la referencia "1". La dirección "A_1" (1402) dirige las instrucciones de datos persistentes (910) al elemento de datos "Y_1" (1004) en la nueva sección de código (912), ver flecha punteada con la referencia "2". Una vez que ha sido localizado, el elemento de datos "X_1" (1002) en la primera sección de código (1000) es sustituido por el elemento de datos "Y_1" (1004), ver flecha punteada con la referencia "3".
En una variante más compleja del proceso directorio o de direccionamiento, la sección del sistema de archivos (906) recibe instrucciones de datos persistentes condicionales, representadas con el indicador de referencia (910), y una sección de código de direccionamiento (1400) con una serie de direcciones de restricción, representadas por "A_1" (1402), "A_2" (1404), y "A_3" (1406). Las instrucciones de datos persistentes condicionales (910) localizan los elementos de datos de restricción utilizando las direcciones de restricción en la sección de código de direccionamiento (1400). Entonces, las instrucciones de datos persistentes condicionales (910) llevan a cabo la comparación de los elementos de datos persistentes en la primera sección de código (1000) con las restricciones localizadas utilizando las direcciones de restricción. Como respuesta a dicha comparación, las instrucciones de datos persistentes condicionales (910) sustituyen los elementos de datos persistentes en la primera sección de código (1000). Por ejemplo (no mostrado), las instrucciones de datos persistentes condicionales (910) utilizan la dirección "A_1" (1402) para localizar la restricción "Y_1" (1004) en la nueva sección de código (912). Entonces, de un modo similar al descrito anteriormente haciendo referencia a la figura 13, las instrucciones de datos persistentes condicionales (910) llevan a cabo una operación condicional lógica o matemática utilizando la restricción "Y_1" (1004). Nuevamente, tal como ha sido descrito anteriormente, el elemento de datos de sustitución puede ser un valor de sustitución simple o generado como resultado de un cálculo. A pesar de que la primera sección de código se muestra localizada en la sección de almacenamiento de código (908), debe entenderse además que la primera sección de código podría estar localizada de forma alternativa en la sección del sistema de archivos (906) y que el aspecto de direccionamiento del sistema de la presente invención puede actualizar elementos de datos persistentes en la sección del sistema de archivos (906) de la memoria permanente (904).
Tal como ha sido mencionado anteriormente, una utilización importante de la presente invención es para llevar a cabo la actualización de elementos de datos que soportan operaciones de calibración de RF. Haciendo referencia a la figura 9, el software de sistema incluye elementos de datos de calibración de RF dispuestos en la primera sección de código (1000). Los elementos de datos de calibración RF son utilizados para funciones tales como ajuste de frecuencia, polarización de amplificador, ajustes de atenuador, y ajustes de temperatura, para nombrar unas pocas posibilidades. Entonces, la sección del sistema de archivos (906) recibe una instrucción de tiempo de ejecución de gestión de segmentación (914), como mínimo, con un elemento de datos de calibración RF actualizado. De forma típica, la actualización de los datos persistentes implica la recepción de más de un elemento de datos actualizado, y la sustitución de más de un elemento de datos. Tal como se ha observado anteriormente, el elemento de datos puede ser actualizado a través de una variedad de medios (de sustitución, condicionales, de direccionamiento, o una combinación de los tres) asociados con la PMRTI (914). Entonces, exponiéndolo de forma general, las instrucciones de datos persistentes (910) pueden utilizarse para referenciar elementos de datos de calibración RF actualizados en la instrucción de tiempo de ejecución de gestión de segmentación (914) cuando se lleva a cabo la sustitución de los elementos de datos de calibración RF en la primera sección de código (1000).
En algunos aspectos de la presente invención, la sección del sistema de archivos (906) recibe una instrucción de tiempo de ejecución de gestión de segmentación (914) como mínimo con un elemento de datos actualizado del sistema no volátil y de configuración de usuario. Nuevamente, pueden existir una serie de fuentes de elementos de datos. El software de sistema incluye elementos de datos de sistema no volátil y de configuración de usuario dispuestos en la primera sección de código (1000) para funciones como los archivos de configuración del sistema para la identificación de la región local del dispositivo sin cables, identificación de regiones de itinerancia ("roaming") permisibles, identificación de si el dispositivo sin cables funciona en modos digital o analógico e, identificación del modo de funcionamiento preferente del dispositivo sin cables. Las instrucciones de datos persistentes (910) hacen referencia a los elementos de datos actualizados del sistema no volátil y de configuración de usuario en la instrucción de tiempo de ejecución de gestión de segmentación (914), cuando se sustituyen elementos de datos del sistema no volátil y de configuración de usuario en la primera sección de código (1000). Los elementos de datos son actualizados utilizando un proceso de sustitución, operaciones lógicas condicionales, o un proceso de direccionamiento.
En algunos aspectos de la presente invención, la sección de sistema de archivos (906) recibe una instrucción de tiempo de ejecución de gestión de segmentación (914), como mínimo, con un elemento de datos actualizados del sistema no volátil y de aplicación de usuario. El software de sistema incluye elementos de datos del sistema no volátil y de aplicación de usuario, dispuestos en la primera sección de código (1000) para ser utilizados en funciones tales como la gestión de archivos de registros telefónicos y la gestión de archivos de planeamiento o programación de calendario. Las instrucciones de datos persistentes (910) hacen referencia a los elementos de datos actualizados del sistema no volátil y de aplicación de usuario en la instrucción de tiempo de ejecución de gestión de segmentación (914) cuando se sustituyen elementos de datos del sistema no volátil y de aplicación de usuario en la primera sección de código (1000). Tal como se ha explicado anteriormente, los elementos de datos del sistema no volátil y de aplicación de usuario son actualizados utilizando un procedimiento de sustitución, operaciones lógicas condicionales, un proceso de direccionamiento, o combinaciones de dichos procesos básicos.
En algunos aspectos de la presente invención, la sección del sistema de archivos (906) recibe una instrucción de tiempo de ejecución de gestión de segmentación (914) como mínimo con un elemento de datos de recursos actualizado. El software de sistema incluye elementos de datos de recursos, dispuestos en la primera sección de código (1000) para diálogos de interfaz con el usuario, menús de interfaz con el usuario y lenguajes de interfaz con el usuario. Las instrucciones de datos persistentes (910) hacen referencia a los elementos de datos de recursos actualizados en la instrucción de tiempo de ejecución de gestión de segmentación (914) cuando se sustituyen elementos de datos de recursos en la primera sección de código (1000). Los elementos de datos de recursos son actualizados utilizando un proceso de sustitución, operaciones lógicas condicionales, un proceso de direccionamiento, o combinaciones de dichos procesos básicos.
Las figuras 15a y 15b son diagramas de flujo de la presente invención, que muestran un método para la ejecución de conjuntos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables. A pesar de que se muestra como una secuencia de etapas numeradas a efectos de claridad de exposición, no debe inferir un orden determinado de dicha numeración (y de la numeración en los métodos presentados a continuación) a menos que se estipule de forma explícita. El método inicia en la etapa (1500). La etapa (1501a) organiza al software del sistema en bibliotecas de símbolos, cada una de dichas bibliotecas de símbolos comprendiendo símbolos que tienen una funcionalidad relacionada. La etapa (1501b) dispone las bibliotecas de símbolos en secciones de código. La etapa (1502) ejecuta el software de sistema. La etapa (1503) lanza un dispositivo de tiempo de ejecución. De forma típica, el lanzamiento de un dispositivo de tiempo de ejecución incluye la invocación a una biblioteca de tiempo de ejecución de una primera sección de código. El dispositivo de tiempo de ejecución puede ser lanzado desde memoria volátil o desde memoria no volátil. La etapa (1504), a continuación de la etapa (1503), recibe los conjuntos de instrucciones dinámicas. La recepción de dichos conjuntos de instrucciones dinámicas en la etapa (1504) incluye la recepción de conjuntos de instrucciones dinámicas a través de una interfaz seleccionada del grupo que incluye un enlace aéreo, una línea física de radiofrecuencia (RF), un módulo de memoria instalable, infrarrojos e interfaces de puertos lógicos. En algunos aspectos de la presente invención, la recepción del conjunto de instrucciones dinámicas en la etapa (1504) incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentación (PMRTI) en una memoria no volátil de la sección del sistema de archivos.
La etapa (1506) procesa los conjuntos de instrucciones dinámicas. El procesamiento de dichos conjuntos de instrucciones dinámicas incluye el procesamiento de instrucciones en respuesta a operaciones matemáticas y lógicas. En algunos aspectos de la presente invención, la etapa (1507) (no mostrada), que sigue al procesamiento de los conjuntos de instrucciones dinámicas, elimina dichos conjuntos de instrucciones dinámicas. La etapa (1508) opera sobre los datos del sistema y el software de sistema. La etapa (1510), en respuesta a dicha operación sobre los datos del sistema y el software de sistema, controla la ejecución del software de sistema.
De manera típica, la recepción de instrucciones de tiempo de ejecución de gestión de segmentación en la etapa (1504) incluye la recepción de código de operación condicional y elementos de datos. Entonces, el procesamiento de los conjuntos de instrucciones dinámicas en la etapa (1506) incluye subetapas. La etapa (1506a) utiliza el dispositivo de tiempo de ejecución para leer el código de operación de la instrucción de tiempo de ejecución de gestión de segmentación. La etapa (1506b) lleva a cabo una secuencia de operaciones en respuesta a dicho código de operación.
En algunos aspectos, la disposición de las bibliotecas de símbolos en secciones de código en la etapa (1501b) incluye el inicio de dichas bibliotecas de símbolos en el inicia de las secciones de código y la disposición de símbolos que estarán desplazados con respecto a sus respectivas direcciones de inicio de sección de código. Entonces, el método comprende etapas adicionales. La etapa (1501c) almacena el inicio de las secciones de código en las correspondientes direcciones de inicio. La etapa (1501d) mantiene una tabla de direcciones de secciones de código (CSAT) con referencias cruzadas a identificadores de sección de código con las correspondientes direcciones de inicio. La etapa (1501e) mantiene una tabla de direcciones de desplazamiento de símbolos (SOAT) con referencias cruzadas a identificadores de símbolos con las correspondientes direcciones de desplazamiento, y los correspondientes identificadores de sección de código.
En algunos aspectos de la presente invención, la recepción de la instrucción de tiempo de ejecución de gestión de segmentación en la etapa (1504) incluye la recepción de identificadores de símbolos. Entonces, el método comprende una etapa adicional. La etapa (1506a2) localiza los símbolos correspondientes a los identificadores de símbolos recibidos utilizando la tabla de direcciones de secciones de código y la tabla de direcciones de desplazamiento de símbolos. La realización de una secuencia de operaciones como respuesta al código de operación en la etapa (1506b) incluye subetapas. La etapa (1506b1) extrae los datos cuando los símbolos localizados son elementos de datos. La etapa (1506b2) ejecuta los símbolos cuando los símbolos localizados son instrucciones.
En algunos aspectos de la presente invención, el procesamiento de conjunto de instrucciones dinámicas en la etapa (1506b1) incluye subetapas adicionales. La etapa (1506b1a) utiliza el dispositivo de tiempo de ejecución para capturar la longitud de la instrucción de tiempo de ejecución de gestión de segmentación. La etapa (1506b1b) extrae los elementos de datos de la instrucción de tiempo de ejecución de gestión de segmentación, como respuesta al código de operación. La etapa (1506b1c) utiliza los datos extraídos para llevar a cabo la secuencia de operaciones que responden al código de operación.
La figura 16 es un diagrama de flujo que muestra una operación del conjunto de instrucciones dinámicas a modo de ejemplo. Varias de las etapas de la figura 16 son las mismas que las de la figura 15, y por lo tanto no serán repetidas en la presente descripción a efectos de brevedad. El procesamiento de conjuntos de instrucciones dinámicas en la etapa (1606) incluye subetapas. La etapa (1606a) accede a los datos de sistema almacenados en una segunda sección de código en la sección del sistema de archivos. La etapa (1606b) analiza los datos del sistema. La etapa (1606c) crea datos de sistema actualizados. Entonces, la operación sobre los datos de sistema y el software de sistema en la etapa (1608) incluye la sustitución de datos de sistema en la segunda sección con los datos de sistema actualizados, y el control de ejecución del software de sistema en la etapa (1610) incluye la utilización de datos de sistema actualizados en la ejecución del software de sistema.
La figura 17 es un diagrama de flujo que muestra otra operación del conjunto de instrucciones dinámicas a modo de ejemplo. Varias de las etapas en la figura 17 son las mismas que las de la figura 15, y por lo tanto no serán repetidas en la presente descripción a efectos de brevedad. La etapa (1701c) almacena una serie de secciones de código en una memoria no volátil de almacenamiento de código. El procesamiento de conjuntos de instrucciones dinámicas en la etapa (1706) incluye subetapas. La etapa (1706a) accede a los datos del sistema almacenados en una tercera sección de código en la sección de almacenamiento de código (CSS). La etapa (1706b) analiza los datos del sistema. La etapa (1706c) crea datos de sistema actualizados. La operación sobre datos del sistema y el software de sistema en la etapa (1708) incluye la sustitución de los datos de sistema en la tercera sección de código por los datos de sistema actualizados. El control de la ejecución del software de sistema en la etapa (1710) incluye la utilización de los datos de sistema actualizados en la ejecución del software de sistema.
La figura 18 es un diagrama de flujo que muestra una tercera operación del conjunto de instrucciones dinámicas a modo de ejemplo. Varias de las etapas de la figura 18 son las mismas que las de la figura 15, y por lo tanto no serán repetidas en la presente descripción a efectos de brevedad. La etapa (1801c) almacena una serie de secciones de código en una memoria no volátil de la sección de almacenamiento de código. La etapa (1801d) carga datos de lectura-escritura en la memoria no volátil. El procesamiento de conjuntos de instrucciones dinámicas en la etapa (1806) incluye subetapas. La etapa (1806a) accede a los datos de lectura-escritura de la memoria no volátil. La etapa (1806b) analiza dichos datos de lectura-escritura. La etapa (1806c) crea datos de lectura-escritura actualizados. La operación sobre los datos de sistema y el software de sistema en la etapa (1808) incluye la sustitución de los datos de lectura-escritura en la memoria no volátil con los datos de lectura-escritura actualizados. El control de la ejecución del software de sistema en la etapa (1810) incluye la utilización de los datos de lectura-escritura actualizados en la ejecución del software de sistema.
La figura 19 es un diagrama de flujo que muestra una cuarta operación de un conjunto de instrucciones dinámicas a modo de ejemplo. Varias de las etapas de la figura 19 son las mismas que las de la figura 15, y por lo tanto no serán repetidas en la presente descripción a efectos de brevedad. El procesamiento de conjuntos de instrucciones dinámicas incluye subetapas. La etapa (1906a), como respuesta al código de operación, controla la ejecución del software de sistema. La etapa (1906b) recoge datos de rendimiento. La etapa (1906c) almacena los datos de rendimiento. La etapa (1906d) transmite los datos almacenados a través de una interfaz de enlace aéreo. La operación sobre los datos del sistema y el software de sistema en la etapa (1908) incluye la utilización de los datos de rendimiento para la evaluación del software de sistema. La etapa (1910) controla la ejecución del software de sistema.
La figura 20 es un diagrama de flujo que muestra una quinta operación de un conjunto de instrucciones dinámicas, a modo de ejemplo. Varias de las etapas de la figura 20 son las mismas que las de la figura 15, y por lo tanto no serán repetidas en la presente descripción a efectos de brevedad. La etapa (2001c) almacena una serie de secciones de código en una memoria no volátil de la sección de almacenamiento de código. La recepción de las instrucciones de tiempo de ejecución de gestión de segmentación en la etapa (2003) incluye la recepción de una nueva sección de código. La operación sobre los datos de sistema y el software de sistema en la etapa (2008) incluye la añadidura de la nueva sección de código a la sección de almacenamiento de código, y el control de la ejecución del software de sistema en la etapa (2010) incluye la utilización de la nueva sección de código para la ejecución del software de sistema.
De manera alternativa, la recepción de una nueva sección de código en la etapa (2003) incluye la recepción de una sección de código actualizada. Entonces, la operación sobre los datos del sistema y el software de sistema en la etapa (2008) incluye la sustitución de una cuarta sección de código en la sección de almacenamiento de código con la sección de código actualizada.
La figura 21 es un diagrama de flujo que muestra el método de la presente invención para llevar a cabo la actualización de datos persistentes en el software de sistema de un dispositivo de comunicaciones sin cables. El método inicia en la etapa (2100). Tal como se ha descrito en detalle anteriormente, y por lo tanto no se ha mostrado de forma específica en la figura, la etapa (2101a) dispone el software de sistema en bibliotecas de símbolos, cada comprendiendo biblioteca de símbolos con funcionalidad relacionada. La etapa (2101b) dispone las bibliotecas de símbolos en secciones de código en la memoria no volátil (en la sección de almacenamiento de código de la sección de sistema de archivos). La etapa (2102) ejecuta el software del sistema. La etapa (2104) lanza un dispositivo de tiempo de ejecución. La etapa (2106) recibe instrucciones de tiempo de ejecución de gestión de segmentación con conjuntos de instrucciones dinámicas y nuevas secciones de código, incluyendo datos persistentes actualizados, en una sección del sistema de archivos en la memoria no volátil. La etapa (2108) procesa los conjuntos de instrucciones dinámicas. La etapa (2110), en respuesta al procesamiento de dichos conjuntos de instrucciones dinámicas, actualiza de forma selectiva los datos persistentes en el software del sistema.
La actualización de los datos persistentes en el software del sistema en la etapa (2110) incluye la actualización de datos persistentes tales como datos de calibración de radiofrecuencia (RF), datos del sistema no volátil y de configuración de usuario, datos de recursos, datos del sistema no volátil y datos de aplicación de usuario, y datos arbitrarios. Un nuevo punto (entre otros) en la presente invención es la capacidad de sustitución de algunos elementos de datos en una sección del software del sistema sin la necesidad de llevar a cabo una sustitución masiva de todos los elementos de datos. La etapa (2112) ejecuta el software del sistema con los datos persistentes actualizados.
La figura 22 es un diagrama de flujo sustancialmente idéntico al de la figura 21, que muestra el proceso de actualización de elementos de datos de sustitución. La mayor parte de las etapas de la figura 22 son las mismas que las etapas de la figura 21, y por lo tanto no son explicadas nuevamente a efectos de brevedad. La recepción de conjuntos de instrucciones dinámicas en la etapa (2206) incluye la recepción de instrucciones de datos persistentes, y la disposición de las bibliotecas de símbolos en secciones de código en la etapa (2201b) (no mostrada) incluye la disposición de una serie de elementos de datos persistentes en una primera sección de código. Entonces, la actualización de datos persistentes en la etapa (2210) incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes actualizados, en respuesta a las instrucciones de datos persistentes.
En algunos aspectos, la recepción de datos persistentes actualizados en una sección del sistema de archivos en la memoria no volátil en la etapa (2206) incluye la recepción de una sección de código de sustitución con una serie de elementos de datos. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes actualizados (etapa (2210)), en respuesta a las instrucciones de datos persistentes, incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos de la sección de código de sustitución.
En algunos aspectos, la recepción de instrucciones de datos persistentes en la etapa (2206) incluye la recepción de elementos de datos de sustitución incorporados en las instrucciones de datos persistentes. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes actualizados, etapa (2210), en respuesta a instrucciones de datos persistentes, incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos incorporados en las instrucciones de datos persistentes.
La figura 23 es un diagrama de flujo substancialmente idéntico al de la figura 21, que muestra el proceso lógico-condicional de actualización de elementos de datos. La mayoría de las etapas de la figura 23 son las mismas que las etapas de la figura 21, y por lo tanto no serán explicadas nuevamente a efectos de brevedad. La recepción de datos persistentes actualizados en una sección del sistema de archivos en la memoria no volátil en la etapa (2306) incluye la recepción de una serie de elementos de datos de restricción e instrucciones condicionales de datos persistentes. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes actualizados (etapa (2310)), en respuesta a las instrucciones condicionales de datos persistentes, incluye subetapas. La etapa (2310a), que utiliza instrucciones condicionales de datos persistentes, compara los elementos de datos persistentes en la primera sección de código con los elementos de datos de restricción. La etapa (2310b), en respuesta a dicha comparación, sustituye los elementos de datos persistentes en la primera sección de código.
En algunos aspectos, la recepción de datos persistentes actualizados en una sección del sistema de archivos en memoria no volátil en la etapa (2306) incluye la recepción de una sección de código de restricción con una serie de elementos de datos. Entonces, la sustitución de los elementos de datos persistentes en la primera sección de código (etapa (2310b)), en respuesta a dicha comparación, incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos de la sección de código de restricción.
En algunos aspectos, la recepción de instrucciones condicionales de datos persistentes en la etapa (2306) incluye la recepción de elementos de datos de restricción incorporados con las instrucciones condicionales de datos persistentes. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código (etapa (2310b)), en respuesta a dicha comparación, incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos de restricción incorporados en las instrucciones de datos persistentes.
En algunos aspectos de la presente invención, la sustitución de elementos de datos persistentes en la primera sección de código (etapa (2310b)), en respuesta a la mencionada comparación, incluye la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos calculados por las instrucciones condicionales de datos persistentes. En otros aspectos, la sustitución de los elementos de datos persistentes en la primera sección de código (etapa (2310b)), en respuesta a la comparación, incluye subetapas. La etapa (2310b1) utiliza los elementos de datos de restricción como operandos en cálculos realizados por las instrucciones condicionales de datos persistentes para obtener productos o resultados de elementos de datos. La etapa (2310b2) sustituye los elementos de datos persistentes en la primera sección de código por los productos de elementos de datos obtenidos.
La figura 24 es un diagrama de flujo substancialmente idéntico al de la figura 21, que muestra el proceso de actualización de elementos de datos por direccionamiento. La mayor parte de las etapas de la figura 24 son las mismas que las etapas de la figura 21, y por lo tanto no serán descritas nuevamente a efectos de brevedad. La recepción de datos persistentes actualizados en una sección del sistema de archivos en memoria no volátil en la etapa (2406) incluye la recepción de una sección de código directorio o de direccionamiento con una serie de direcciones de elementos de datos. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes actualizados (etapa (2410)), en respuesta a las instrucciones de datos persistentes, incluye subetapas. La etapa (2410a) localiza elementos de datos de sustitución como respuesta a las direcciones de elementos de datos de la sección de código directorio. La etapa (2410b) sustituye los elementos de datos persistentes en la primera sección de código por el elemento de datos de sustitución localizado.
En algunos aspectos, la recepción de datos persistentes actualizados en una sección del sistema de archivos en memoria no volátil en la etapa (2406) incluye la recepción de una sección de código directorio con una serie de direcciones de restricción. Entonces, la sustitución de elementos de datos persistentes en la primera sección de código por elementos de datos persistentes (etapa (2410)), en respuesta a las instrucciones de datos persistentes, incluye subetapas. La etapa (2410c) localiza elementos de datos de restricción utilizado las direcciones de restricción en la sección de código directorio. La etapa (2410d), utilizando las instrucciones de datos persistentes condicionales, compara los elementos de datos persistentes en la primera sección de código con las mencionadas restricciones. La etapa (2410e), en respuesta a dicha comparación, sustituye los elementos de datos persistentes en la primera sección de código.
Haciendo referencia nuevamente a la figura 21, la recepción de datos persistentes actualizados en la etapa (2106) incluye la recepción de datos persistentes actualizados a través de una interfaz seleccionada a partir del grupo que comprende un enlace aéreo, un teclado del dispositivo de comunicaciones sin cables, un módulo de memoria instalable, infrarrojos, puerto lógico e interfaces de línea física RF.
En algunos aspectos, la recepción de datos persistentes actualizados en la etapa (2106) incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentación como mínimo con un elemento de datos de calibración RF actualizado. La disposición de las bibliotecas de símbolos en secciones de código en la etapa (2101b) (no mostrada) incluye la disposición de los elementos de datos de calibración RF en una primera sección de código, y la ejecución del software de sistema en la etapa (2102) incluye la utilización de dichos datos de calibración RF de la primera sección de código para funciones que incluyen, por no están limitadas a, ajustes de frecuencia, polarización de amplificador, ajustes de atenuador, y ajustes de temperatura. Entonces, la actualización de los datos persistentes en el software de sistema (2110) incluye el referenciado de los elementos de datos de calibración RF actualizados en la instrucción de tiempo de ejecución de gestión de segmentación cuando se lleva a cabo la sustitución de elementos de datos de calibración RF en la primera sección de código. Tal como ha sido mostrado anteriormente, los elementos de datos actualizados son referenciados para la utilización de procesos de actualización de sustitución, lógicos condicionales o de direccionamiento.
En algunos aspectos de la presente invención, la recepción de datos persistentes actualizados en la etapa (2106) incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentación, como mínimo, con un elemento de datos del sistema no volátil y de configuración de usuario. La disposición de las bibliotecas de símbolos en secciones de código en la etapa (2101b) (no mostrada) incluye la disposición de elementos de datos del sistema no volátil y de configuración de usuario en una primera sección de código. La ejecución del software de sistema en la etapa (2102) incluye la utilización de elementos de datos del sistema no volátil y de configuración de usuario de dicha primera sección de código para funciones, que incluyen, pero no están limitadas a los mismos, archivos de configuración del sistema para la identificación de la región local del dispositivo sin cables, identificación de regiones de itinerancia ("roaming") permisibles, la identificación de si el modo de operación del dispositivo sin cables es digital o analógico y la identificación del modo de funcionamiento preferente del dispositivo sin cables. Entonces, la actualización de los datos persistentes en el software de sistema en la etapa (2110) incluye el referenciado de elementos de datos actualizados del sistema no volátil y de configuración de usuario en la instrucción de tiempo de ejecución de gestión de segmentación, cuando se lleva a cabo la sustitución de elementos de datos del sistema no volátil y de configuración de usuario en la primera sección de código.
En algunos aspectos, la recepción de datos persistentes actualizados en la etapa (2106) incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentación, como mínimo, con un elemento de datos actualizado del sistema no volátil y de aplicación de usuario. La disposición de las bibliotecas de símbolos en secciones de código en la etapa (2101b) (no mostrada) incluye la disposición de elementos de datos del sistema no volátil y de aplicación de usuario en una primera sección de código. La ejecución del software de sistema en la etapa (2102) incluye la utilización de dichos elementos de datos no volátiles del sistema y de aplicación de usuario de dicha primera sección de código para funciones que incluyen, pero no están limitadas a las mismas, la gestión de archivos de registros telefónicos y la gestión de archivos de planeamiento o programación de calendario. Entonces, la actualización de datos persistentes en el software de sistema en la etapa (2110) incluye el referenciado de los elementos de datos actualizados del sistema no volátil y de aplicación de usuario en la instrucción de tiempo de ejecución de gestión de segmentación cuando se lleva a cabo la sustitución de dichos elementos de datos del sistema no volátil y de aplicación de usuario en la primera sección de código.
En algunos aspectos, la recepción de nuevas secciones de código en la etapa (2106) incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentación, como mínimo, con un elemento de datos de recurso actualizado. La disposición de las bibliotecas de símbolos en secciones de código en la etapa (2101b) (no mostrada) incluye la disposición de elementos de datos de recurso en una primera sección de código. La ejecución del software de sistema en la etapa (2102) incluye la utilización de los datos de recursos de la primera sección de código para funciones que incluyen, pero no están limitadas a los mismos, diálogos de interfaz con el usuario, menús de interfaz con el usuario y lenguajes de interfaz con el usuario. La actualización de los datos persistentes en el software de sistema en la etapa (2110) incluye el referenciado de elementos de datos de recursos actualizados en la instrucción de tiempo de ejecución de gestión de segmentación cuando se lleva a cabo la sustitución de elementos de datos de recursos en la primera sección de código.
Se han dado a conocer un sistema y un método para la ejecución de conjuntos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables, para asistir la actualización y la resolución de problemas del software de sistema. Dicho sistema puede ser actualizado de forma sencilla debido a la disposición de bibliotecas de símbolos en secciones de código, con tablas para el acceso a las direcciones de inicio de las secciones de código en memoria y de direcciones de desplazamiento de símbolos en las bibliotecas de símbolos. La utilización de conjuntos de instrucciones dinámicas permite la aplicación de modificaciones a medida en cada dispositivo sin cables, basándose en características específicas de dicho dispositivo. Unos pocos ejemplos generales han sido dados para mostrar los posibles usos de los conjuntos de instrucciones dinámicas para la actualización de datos persistentes del software de sistema. Sin embardo, la presente invención no está limitada a dichos ejemplos. Otras variaciones y realizaciones de la presente invención serán evidentes para las personas especializadas en la técnica.

Claims (39)

1. Método para la actualización de datos persistentes en un dispositivo de comunicaciones sin cables, cuyo método comprende:
ejecución de software del sistema (2102);
lanzar un sistema de tiempo de ejecución (2104);
procesar conjuntos de instrucciones dinámicas (2106); y,
como respuesta al proceso de los conjuntos de instrucciones dinámicas, actualizar selectivamente datos persistentes en el software del sistema (2110).
2. Método, según la reivindicación 1, que comprende además:
ejecutar el software del sistema con los datos persistentes actualizados (2112).
3. Método, según la reivindicación 2, en el que la actualización de datos persistentes en el software del sistema comprende la actualización de datos persistentes seleccionados entre el grupo que incluye datos de calibración de radiofrecuencia (RF), sistema no volátil y datos de configuración de usuario, datos de recursos, sistema no volátil y datos de aplicación de usuario, así como datos arbitrarios.
4. Método, según la reivindicación 3, que comprende además:
formar el software de sistema en bibliotecas de símbolos, comprendiendo cada biblioteca de símbolos, símbolos que tienen funcionalidades relacionadas;
disponer las bibliotecas de símbolos en secciones de código en memoria no volátil; y
recibir instrucciones de tiempo de ejecución de la gestión de segmentos añadidos con conjuntos de instrucciones dinámicas y nuevas secciones de código, incluyendo datos persistentes actualizados, en una sección de sistema de archivo en memoria no volátil.
5. Método, según la reivindicación 4, en el que la recepción de los juegos de instrucciones dinámicas comprende la recepción de instrucciones de datos persistentes (2206);
de manera que la disposición de bibliotecas de símbolos en secciones de código comprende una serie de elementos de datos persistentes en una primera sección de código; y,
en el que la actualización de datos persistentes comprende la sustitución de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados, como respuesta a las instrucciones de datos persistentes (2210).
6. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados en una sección de un sistema de archivo en una memoria no volátil comprende la recepción de una sección de código de sustitución con una serie de elementos de datos; y,
en el que la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados, como respuesta a las instrucciones de datos persistentes, comprende la sustitución de los elementos de datos persistentes en la primera sección de código con los elementos de datos de la sección de código de sustitución.
7. Método, según la reivindicación 5, en el que la recepción de instrucciones de datos persistentes incluye la recepción de elementos de datos de sustitución incorporados con las instrucciones de datos persistentes; y,
en el que la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados, como respuesta a las instrucciones de datos persistentes, incluye la sustitución de los elementos de datos persistentes en la primera sección de código con los elementos de datos incorporados en las instrucciones de datos persistentes.
8. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados en una sección de un sistema de archivo en una memoria no volátil comprende la recepción de una serie de elementos de datos limitativos e instrucciones de datos persistentes condicionales (2306);
en el que la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados, en respuesta a las instrucciones de datos persistentes condicionales, comprende:
utilización de las instrucciones de datos persistentes condicionales, comparación de los elementos de datos persistentes en la primera sección de código con los elementos de datos limitativos (2310a); y,
como respuesta a la comparación, sustituir los elementos de datos persistentes en la primera sección de código (2310b).
9. Método, según la reivindicación 8, en el que la recepción de datos persistentes actualizados en una sección de un sistema de archivo en una memoria no volátil comprende la recepción de una sección de código limitativo con una serie de elementos de datos; y,
en el que la sustitución de elementos de datos persistentes en la primera sección de código, como respuesta a la comparación, incluye la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos de la sección de código de limitación.
10. Método, según la reivindicación 8, en el que la recepción de instrucciones de datos persistentes condicionales incluye la recepción de elementos de datos de limitación incorporados con las instrucciones de datos persistentes condicionales;
de manera que la sustitución de elementos de datos persistentes en la primera sección de código, como respuesta a la comparación, incluye la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos de limitación incorporados en las instrucciones de datos persistentes condicionales.
11. Método, según la reivindicación 8, en el que la sustitución de elementos de datos persistentes en la primera sección de código, como respuesta a la comparación, incluye la sustitución de elementos de datos persistes en la primera sección de código con elementos de datos calculados por las instrucciones de datos persistentes condicionales.
12. Método, según la reivindicación 8, en el que la sustitución de los elementos de datos persistentes en la primera sección de código, como respuesta a la comparación, comprende:
utilizar los elementos de datos de limitación como operandos en cálculos llevados a cabo por las instrucciones de datos persistentes condicionales para crear productos de elementos de datos (2310(b)1); y,
sustituir elementos de datos persistentes en la primera sección de código con los productos de elementos de datos (2310(b)2).
13. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados en una sección de un sistema de archivo en memoria no volátil comprende la recepción de una sección de código directorio con una serie de direcciones de elementos de datos (2406);
de manera que la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados, como respuesta a instrucciones de datos persistentes, incluye:
colocación de elementos de datos en sustitución como respuesta a las direcciones de elementos de datos de la sección de código de directorio (2410a); y,
sustituir los elementos de datos persistentes en la primera sección de código con los elementos de datos de sustitución localizados (2410b).
14. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados en una sección de un sistema de archivo en una memoria no volátil comprende la recepción de una sección de código directorio con una serie de direcciones de limitación (2406);
de manera que la sustitución de elementos de datos persistentes en la primera sección de código con elementos de datos persistentes, en respuesta a las instrucciones de datos persistentes, incluye:
localizar elementos de datos de limitación utilizando las direcciones de limitación en la sección de código de directorio (2410c); y,
utilizar las instrucciones de datos persistentes condicionales, comparando los elementos de datos persistentes de la primera sección de código con limitaciones (2410d); y,
como respuesta a la comparación, sustituir los elementos de datos persistentes en la primera sección de código (2410e).
15. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados comprende la recepción de datos persistentes actualizados con intermedio de un interfaz seleccionado del grupo que incluye enlace aéreo (150, 902), teclado de un dispositivo de comunicaciones sin cables (104, 950), módulo de memoria instalable (164, 952), infrarrojos (954), puerta lógica (162, 956), e interfaces de línea RF (160, 958).
16. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados comprende la recepción de una instrucción de tiempo de ejecución de gestión de segmentos añadidos ("patch manager") con, como mínimo, un elemento de datos de calibración actualizado RF,
de manera que la disposición de bibliotecas de símbolos en secciones de código incluye la disposición de elementos de datos de calibración RF en una primera sección de código;
de manera que la ejecución del software del sistema comprende la utilización de los datos de calibración de los datos RF de la primera sección de código para funciones seleccionadas del grupo que incluye ajuste de frecuencia, polarización de amplificador, ajustes de atenuador y ajustes de temperatura; y,
en el que la actualización de datos persistentes en el software de sistema comprende el referenciado de los elementos de datos de calibrado RF en la instrucción de tiempo de ejecución de la gestión de segmentos añadidos cuando se sustituyen elementos de datos de calibrado RF en la primera sección de código.
17. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentos añadidos que tiene como mínimo un sistema no volátil actualizado y un elemento de datos de configuración de usuario;
en el que la disposición de bibliotecas de símbolos en secciones de código comprende la disposición de elementos de datos de configuración del sistema no volátil y de usuario en una primera sección de código;
en el que la ejecución del software del sistema comprende la utilización de elementos de datos del sistema no volátil y de configuración de usuario de la primera sección de código para funciones seleccionadas del grupo que incluye archivos de configuración de sistema para identificación de la zona propia del dispositivo de comunicación sin cables, identificación de zonas de derivación permisibles ("roaming"), identificar si el dispositivo de comunicación sin cables funciona en modalidades digital y analógica e, identificar la modalidad operativa preferente del dispositivo de comunicación sin cables; y
en el que la actualización de los datos persistentes en el software del sistema comprende el referenciado de los elementos de datos del sistema no volátil actualizado y de la configuración de usuario en una instrucción de tiempo de ejecución de gestión de segmentos añadidos cuando se efectúa la sustitución de elementos de datos de configuración de usuario y de sistema no volátil en la segunda sección de código.
18. Método, según la reivindicación 5, en el que la recepción de datos persistentes actualizados incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentos añadidos con, como mínimo, un elemento de datos de aplicación de usuario y de sistema no volátil actualizado;
en el que la disposición de bibliotecas de símbolos en secciones de código comprende la disposición de elementos de datos de aplicación de usuario y de sistema no volátil en una primera sección de código;
en el que la ejecución del software del sistema incluye la utilización de elementos de datos de aplicación de usuario y de sistema no volátil de la primera sección de código para funciones seleccionadas del grupo que incluye gestión de archivos de listín telefónico y gestión de archivos de programación de calendario; y,
en el que la actualización de los datos persistentes en el software del sistema incluye el referenciado del sistema no volátil actualizado y de elementos de datos de aplicación de usuario en la instrucción de tiempo de ejecución de gestión de segmentos añadidos cuando se efectúa la sustitución de los elementos de datos del sistema no volátil de aplicación de usuario en la primera sección de código.
19. Método, según la reivindicación 5, en el que la recepción de nuevas secciones de código incluye la recepción de una instrucción de tiempo de ejecución de gestión de segmentos añadidos que tiene como mínimo un elemento de datos de recursos actualizado;
en el que la disposición de bibliotecas de símbolos en secciones de código incluye la disposición de elementos de datos de recursos en una primera sección de código;
en el que la ejecución del software del sistema comprende la utilización de datos de recursos de la primera sección de código para funciones seleccionadas entre el grupo que comprende diálogos de interfaz de usuario, menús de interfaz de usuario y lenguajes de interfaz de usuario; y
en el que la actualización de datos persistentes en el software del sistema comprende el referenciado de los elementos de datos de recursos actualizados en la instrucción de tiempo de ejecución de gestión de segmentos añadidos cuando se efectúa la sustitución de los elementos de datos de recursos en la primera sección de código.
20. Sistema para la actualización de datos persistentes, en un dispositivo de comunicaciones sin cables, cuyo sistema comprende:
datos de software de sistema ejecutable y de sistema, diferenciados en secciones de código almacenadas en almacenamiento permanente en memoria no volátil (108, 918);
juegos de instrucciones dinámicas (470, 910) para actualizar selectivamente datos persistentes en el software del sistema; y,
un dispositivo de control del tiempo de ejecución (370, 916) para procesar los juegos de instrucciones dinámicas (470, 910).
21. Sistema, según la reivindicación 20, en el que software de sistema ejecutable y datos de sistema son actualizados como respuesta al proceso de los juegos de instrucciones dinámicas (470, 910).
22. Sistema, según la reivindicación 21, en el que el software del sistema ejecutable está formado en bibliotecas de símbolos (310, 312, 314, 316), comprendiendo cada biblioteca de símbolos, símbolos que tienen funcionalidad relacionada, dispuestos en secciones de código almacenadas en una sección de almacenamiento de código (112);
comprendiendo además el sistema:
un interfaz aéreo (150, 902); y,
una sección de sistema de archivo (110, 906) de memoria permanente no volátil (108, 918) que recibe las instrucciones (454, 914) (PMRTI) del tiempo de ejecución de gestión de segmentos añadidos con intermedio del interfaz aéreo (150, 192), incluyendo las instrucciones (454, 914) de tiempo de ejecución de control de segmentos añadidos juegos de instrucciones dinámicas (470, 910) y nuevas secciones de código (912).
23. Sistema, según la reivindicación 22, en el que los juegos de instrucciones dinámicas (470, 910) actualizan datos persistentes en el software del sistema seleccionado del grupo que incluye datos de calibración de radiofrecuencia (RF), datos de sistema no volátil y de configuración de usuario, datos de recursos, datos de sistema no volátil y de aplicación de usuario, y datos arbitrarios.
24. Sistema, según la reivindicación 23, en el que el software del sistema está formado en bibliotecas de símbolos (310, 312, 314, 316), comprendiendo cada una de las bibliotecas de símbolos, símbolos que tienen funcionalidad relacionada, y que están dispuestos en secciones de código en memoria permanente no volátil; y,
en el que la sección (110, 906) de sistema de archivo recibe juegos de instrucciones dinámicas (470, 910) y nuevas secciones de código, incluyendo datos persistentes actualizados.
25. Sistema, según la reivindicación 24, en el que la sección de sistema de archivo (110, 906) recibe conjuntos de instrucciones dinámicas (470, 910) incluyendo instrucciones de datos persistentes;
en el que el software del sistema comprende una serie de elementos de datos persistentes en una primeras sección de código; y,
en el que las instrucciones de datos persistentes sustituyen elementos de datos persistentes en la primera sección de código con elementos de datos persistentes actualizados.
26. Sistema, según la reivindicación 25, en el que la sección (110, 906) de sistema de archivo recibe una sección de código de sustitución con una serie de elementos de datos; y,
en el que las instrucciones de datos persistentes sustituyen los elementos de datos persistentes en la primera sección de código con los elementos de datos con la sección de código de sustitución.
27. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo (110, 906) recibe elementos de datos de sustitución incorporados con las instrucciones de datos persistentes; y,
en el que las instrucciones de datos persistentes sustituyen los elementos de datos persistentes en la primera sección de código con los elementos de datos incorporados en las instrucciones de datos persistentes.
28. Sistema, según la reivindicación 25, en el que la sección de sistema de archivo recibe una serie de elementos de datos de limitación (1210) e instrucciones de datos persistentes condicionales;
en el que las instrucciones de datos persistentes condicionales comparan los elementos de datos persistentes en la primera sección de código con los elementos de datos de limitación (1210) y, como respuesta a la comparación de los elementos de datos persistentes en la primera sección de código con los elementos de datos de limitación (1210), sustituyen los elementos de datos persistentes en la primera sección de código.
29. Sistema, según la reivindicación 28, en el que la sección del sistema de archivo recibe una sección de código de limitación con una serie de elementos de datos; y,
en el que las instrucciones de datos persistentes condicionales sustituyen elementos de datos persistentes en la primera sección de código con elementos de datos procedentes de la sección de código de limitación, como respuesta a la comparación de elementos de datos persistentes de la primera sección de código con los elementos de datos de limitación (1210).
30. Sistema, según la reivindicación 28, en el que la sección de sistema de archivo recibe elementos de datos de limitación (1210) incorporados con las instrucciones de datos persistentes condicionales;
en el que las instrucciones de datos persistentes condicionales sustituyen los elementos de datos persistentes de la primera sección de código con elementos de datos de limitación (1210) incorporados en las instrucciones de datos persistentes condicionales, como respuesta a la comparación de elementos de datos persistentes de la primera sección de código con los elementos de datos de limitación (1210).
31. Sistema, según la reivindicación 28, en el que las instrucciones de datos persistentes condicionales sustituyen elementos de datos persistentes de la primera sección de código con elementos de datos calculados por las instrucciones de datos persistentes condicionales, como respuesta a la comparación de los elementos de datos persistentes de la primera sección de código con los elementos de datos de limitación (1210).
32. Sistema, según la reivindicación 28, en el que las instrucciones de datos persistentes condicionales utilizan los elementos de datos de limitación (1210) como operandos en cálculos para crear productos de elementos de datos, para sustituir elementos de datos persistentes en la primera sección de código con los productos de elementos de
datos.
33. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo recibe una sección de código de directorio (1400) con una serie de direcciones de elementos de datos (1402, 1404, 1406);
en el que las instrucciones de datos persistentes sitúan los elementos de datos de sustitución como respuesta a las direcciones de los elementos de datos de la sección de código de directorio (1400) y sustituye los elementos de datos persistentes de la primera sección de código con los elementos de datos de sustitución localizados.
34. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo recibe instrucciones de datos persistentes condicionales y una sección de código de directorio (1400) con una serie de direcciones de limitación;
en el que las instrucciones de datos persistentes condicionales (1200) localizan elementos de datos de limitación (1210) utilizando las direcciones de limitación de la sección de código de directorio (1400), comparan los elementos de datos persistentes de la primera sección de código con las limitaciones localizadas, y, como respuesta a la comparación, sustituyen los elementos de datos persistentes de la primera sección de código.
35. Sistema, según la reivindicación 25, que comprende además:
interfaces seleccionados del grupo que incluye un teclado (104, 950) de un dispositivo de comunicaciones sin cables, un módulo de memoria instalable (164, 952), infrarrojos (954), una puerta lógica (162, 956), e interfaces de línea (160, 958); y,
en el que la sección de sistema de archivo (110, 906) recibe datos de sistema persistentes actualizados a través de un interfaz seleccionado a partir del grupo que comprende enlace aéreo (150, 902), teclado de dispositivo de comunicaciones sin cables (104, 950), módulo de memoria instalable (164, 952), infrarrojos (954), puerta lógica (162, 956), e interfaces de línea RF (160, 958).
36. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo (110, 906) recibe una instrucción de tiempo de ejecución (454, 914) de la gestión de segmentos añadidos con un mínimo de un elemento de datos de calibración RF;
en el que el software del sistema comprende elementos de datos de calibración RF dispuestos en una primera sección de código para funciones seleccionadas del grupo que comprende ajustes de frecuencia, polarización de amplificador, ajustes de alternador y ajustes de temperatura; y,
en el que las instrucciones de datos persistentes referencian los elementos de datos de calibración RF actualizados en la instrucción de tiempo de ejecución de gestión de segmentos añadidos cuando se sustituyen elementos de datos de calibración RF en la primera sección de código.
37. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo (110, 906) recibe una instrucción (454, 914) de tiempo de ejecución de gestión de segmentos añadidos con un mínimo de un elemento de datos de sistema no volátil actualizado y de configuración de usuario;
en el que el software del sistema comprende elementos de datos de sistema no volátil y de configuración de usuario dispuestos en una primera sección de código para funciones seleccionadas entre el grupo que comprende archivos de configuración de sistema para identificar la zona doméstica del dispositivo sin cables, identificación de zonas de acceso permisible, identificación de si el dispositivo sin cables funciona en modalidad digital y analógica e, identificando el modo operativo preferente del dispositivo sin cables; y
en el que las instrucciones de datos persistentes referencian los elementos de datos del sistema no volátil actualizado y de configuración de usuario en la instrucción de tiempo de ejecución de control de segmentos añadidos cuando se efectúa la sustitución de elementos de datos de sistema no volátil y de configuración de usuario en la primera sección de código.
38. Sistema, según la reivindicación 25, en el que la sección del sistema de archivo (110, 906) recibe una instrucción (454, 914) de tiempo de ejecución de control de segmentos añadidos con un mínimo de un elemento de datos de sistema no volátil actualizado y de aplicación de usuario.
en el que el software del sistema comprende elementos de datos del sistema no volátil y de aplicación de usuario dispuestos en una primera sección de código para funciones seleccionadas del grupo que comprende la gestión de archivos de listín telefónico y gestión de archivos de programas de calendario; y,
en el que las instrucciones de datos persistentes referencian los elementos de datos del sistema no volátil actualizado y de aplicación de usuario en la instrucción de tiempo de ejecución de gestión de segmentos añadidos cuando se sustituyen los elementos de datos del sistema no volátil y de aplicación de usuario en la primera sección de código.
39. Sistema, según la reivindicación 25, en el que la sección (110, 906) del sistema de archivo recibe una instrucción (454, 914) de tiempo de ejecución de control de segmentos añadidos con un mínimo de elementos de datos de recursos actualizado;
en el que el software de sistema comprende elementos de datos de recursos dispuestos en una primera sección de código para funciones seleccionadas entre el grupo que comprende diálogos de interfaz, menús de interfaz de usuario y lenguajes de interfaz de usuario; y,
en el que las instrucciones datos persistentes referencian los elementos de datos de recursos actualizados en la instrucción de tiempo de ejecución de control de segmentos añadidos cuando se sustituyen los elementos de datos de recursos en la primera sección de código.
ES02749167T 2001-07-26 2002-07-23 Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables. Expired - Lifetime ES2249602T3 (es)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US917026 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
US916900 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/917,026 US7328007B2 (en) 2001-07-26 2001-07-26 System and method for organizing wireless communication device system software
US927131 2001-08-10
US09/927,131 US7143407B2 (en) 2001-07-26 2001-08-10 System and method for executing wireless communications device dynamic instruction sets
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/002890 WO2003010664A2 (en) 2001-07-26 2002-07-23 System and method for updating persistent data in a wireless communications device

Publications (1)

Publication Number Publication Date
ES2249602T3 true ES2249602T3 (es) 2006-04-01

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.
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.
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.
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.
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.
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.

Family Applications Before (1)

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.

Family Applications After (7)

Application Number Title Priority Date Filing Date
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.
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.
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.
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.
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.

Country Status (9)

Country Link
EP (12) EP1410189B1 (es)
JP (11) JP2005505813A (es)
KR (10) KR100940180B1 (es)
CN (10) CN1275149C (es)
AT (9) ATE387658T1 (es)
AU (9) AU2002319569A1 (es)
DE (7) DE60206389T2 (es)
ES (9) ES2300454T3 (es)
WO (10) WO2003010658A2 (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 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
JP4528328B2 (ja) * 2004-05-18 2010-08-18 キョウセラ ワイヤレス コープ. 無線通信機器用のモジュラデータコンポーネント
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
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
WO2006110991A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Method and system for controlling software version updates
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 中兴通讯股份有限公司 一种通信系统软件版本的平滑升级方法
WO2007105274A1 (ja) * 2006-03-10 2007-09-20 Fujitsu Limited 適用パッチ選別装置及び適用パッチ選別方法
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 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
US9221986B2 (en) 2009-04-07 2015-12-29 Sensient Colors Llc Self-dispersing particles and methods for making and using the same
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
EP0979449A4 (en) * 1996-08-28 2005-08-24 Wind River Systems Inc TOOL FOR DIAGNOSING SOFTWARE DISTRIBUTED BETWEEN SEVERAL PROCESSORS
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
WO2003012639A2 (en) 2003-02-13
CN1288554C (zh) 2006-12-06
JP2005502105A (ja) 2005-01-20
EP1410192B1 (en) 2007-12-26
KR100817387B1 (ko) 2008-03-27
DE60211719D1 (de) 2006-06-29
CN1235138C (zh) 2006-01-04
WO2003010664A3 (en) 2003-12-24
CN1535422A (zh) 2004-10-06
AU2002319568A1 (en) 2003-02-17
KR20040017352A (ko) 2004-02-26
WO2003010942A2 (en) 2003-02-06
CN1310488C (zh) 2007-04-11
DE60207429D1 (de) 2005-12-22
EP1601217B1 (en) 2007-04-11
WO2003010668A3 (en) 2003-09-25
CN1235137C (zh) 2006-01-04
CN1535423A (zh) 2004-10-06
JP2004537895A (ja) 2004-12-16
KR20040022461A (ko) 2004-03-12
ATE387658T1 (de) 2008-03-15
WO2003010932A3 (en) 2004-04-08
DE60205755D1 (de) 2005-09-29
DE60206055D1 (de) 2005-10-13
KR20040017351A (ko) 2004-02-26
KR100911604B1 (ko) 2009-08-07
WO2003012639A3 (en) 2003-12-24
EP1601217A2 (en) 2005-11-30
JP2004537925A (ja) 2004-12-16
KR20040022463A (ko) 2004-03-12
CN1288553C (zh) 2006-12-06
AU2002319572A1 (en) 2003-02-17
ATE359681T1 (de) 2007-05-15
JP2004537123A (ja) 2004-12-09
DE60211719T2 (de) 2007-01-11
EP1410193A2 (en) 2004-04-21
KR100940179B1 (ko) 2010-02-03
AU2002319577A1 (en) 2003-02-17
WO2003010664A2 (en) 2003-02-06
EP1410193B1 (en) 2005-09-28
WO2003010932A2 (en) 2003-02-06
WO2003010942A3 (en) 2003-05-15
KR100940178B1 (ko) 2010-02-03
JP4073399B2 (ja) 2008-04-09
ATE382159T1 (de) 2008-01-15
WO2003010662A3 (en) 2003-12-24
KR100984895B1 (ko) 2010-10-01
CN1537276A (zh) 2004-10-13
JP4101752B2 (ja) 2008-06-18
AU2002319570A1 (en) 2003-02-17
KR20040022464A (ko) 2004-03-12
WO2003013103A2 (en) 2003-02-13
DE60211704D1 (de) 2006-06-29
KR100932058B1 (ko) 2009-12-15
CN1535421A (zh) 2004-10-06
CN1279447C (zh) 2006-10-11
JP4176634B2 (ja) 2008-11-05
EP1410209B1 (en) 2006-05-24
CN1535419A (zh) 2004-10-06
WO2003010658A3 (en) 2003-12-24
ATE302972T1 (de) 2005-09-15
KR20040022462A (ko) 2004-03-12
WO2003010658A2 (en) 2003-02-06
JP4310186B2 (ja) 2009-08-05
EP1610222A2 (en) 2005-12-28
EP1610222A3 (en) 2007-01-31
KR20040019334A (ko) 2004-03-05
ATE304272T1 (de) 2005-09-15
EP1410189A2 (en) 2004-04-21
EP1601217A3 (en) 2006-05-10
DE60206389D1 (de) 2006-02-09
KR100913658B1 (ko) 2009-08-24
ES2248568T3 (es) 2006-03-16
KR100913659B1 (ko) 2009-08-24
JP2004537899A (ja) 2004-12-16
JP4278513B2 (ja) 2009-06-17
ATE327536T1 (de) 2006-06-15
CN1535529A (zh) 2004-10-06
WO2003010662A2 (en) 2003-02-06
DE60219536D1 (de) 2007-05-24
EP1410190B1 (en) 2005-08-24
CN1275150C (zh) 2006-09-13
WO2003013103A3 (en) 2004-04-08
ATE305632T1 (de) 2005-10-15
EP1410188A2 (en) 2004-04-21
ES2247355T3 (es) 2006-03-01
DE60206055T2 (de) 2006-06-29
ATE310354T1 (de) 2005-12-15
EP1410191A2 (en) 2004-04-21
AU2002319569A1 (en) 2003-02-17
DE60207429T2 (de) 2006-07-27
JP2004537121A (ja) 2004-12-09
AU2002319576A1 (en) 2003-02-17
CN1275149C (zh) 2006-09-13
KR20040022459A (ko) 2004-03-12
JP2005505813A (ja) 2005-02-24
EP1410665B1 (en) 2005-09-07
JP2004537120A (ja) 2004-12-09
ES2284112T3 (es) 2007-11-01
ES2300454T3 (es) 2008-06-16
WO2003010663A2 (en) 2003-02-06
ATE327628T1 (de) 2006-06-15
CN1250035C (zh) 2006-04-05
EP1425894B1 (en) 2005-11-16
CN1537397A (zh) 2004-10-13
EP1410190A2 (en) 2004-04-21
AU2002319573A1 (en) 2003-02-17
JP4104546B2 (ja) 2008-06-18
WO2003010663A3 (en) 2003-12-24
ES2263796T3 (es) 2006-12-16
CN1535420A (zh) 2004-10-06
DE60206389T2 (de) 2006-07-13
WO2003010656A2 (en) 2003-02-06
AU2002355308A1 (en) 2003-02-17
ES2299587T3 (es) 2008-06-01
JP4077408B2 (ja) 2008-04-16
WO2003010656A3 (en) 2003-11-13
EP1410189B1 (en) 2008-02-27
EP1425894A2 (en) 2004-06-09
DE60219536T2 (de) 2008-01-03
DE60211704T2 (de) 2007-05-10
JP2004537209A (ja) 2004-12-09
KR100918162B1 (ko) 2009-09-17
CN100378661C (zh) 2008-04-02
JP2004538693A (ja) 2004-12-24
ES2263799T3 (es) 2006-12-16
ES2253553T3 (es) 2006-06-01
JP4106020B2 (ja) 2008-06-25
KR100940180B1 (ko) 2010-02-04
JP2008108268A (ja) 2008-05-08
CN1537272A (zh) 2004-10-13
EP1410665A2 (en) 2004-04-21
DE60205755T2 (de) 2006-06-29
EP1423959A2 (en) 2004-06-02
EP1610222B1 (en) 2011-03-02
EP1410192A2 (en) 2004-04-21
KR20040015823A (ko) 2004-02-19
EP1423959B1 (en) 2006-05-24
KR20040022460A (ko) 2004-03-12
CN1535418A (zh) 2004-10-06
WO2003010668A2 (en) 2003-02-06
AU2002328167A1 (en) 2003-02-17
EP1410209A2 (en) 2004-04-21

Similar Documents

Publication Publication Date Title
ES2249602T3 (es) Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
EP1973035B1 (en) System and method for the management of wireless communications device system software downloads in the field
CN103049692B (zh) 一种应用安装方法、装置和设备
US8909291B1 (en) Dynamic remotely managed SIM profile
US7386846B2 (en) System and method for the management of wireless communications device system software downloads in the field
JP5072992B2 (ja) 無線によるエリアコード更新のためのシステムおよび方法
US20060223517A1 (en) Field downloading of wireless device software
JPWO2008050439A1 (ja) アプリケーション管理装置及びアプリケーション管理方法
Badenhop et al. Extraction and analysis of non-volatile memory of the ZW0301 module, a Z-Wave transceiver
US7328007B2 (en) System and method for organizing wireless communication device system software
KR100662291B1 (ko) 휴대장치에서의 모듈 프로그램 구현 방법
KR100575780B1 (ko) Ota를 이용한 바이너리 데이터 업데이트 모듈 실행 방법
JP2014182467A (ja) 情報記憶媒体、データ選択処理プログラム、及びデータ選択処理方法