ES2263796T3 - Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables. - Google Patents

Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables.

Info

Publication number
ES2263796T3
ES2263796T3 ES02749163T ES02749163T ES2263796T3 ES 2263796 T3 ES2263796 T3 ES 2263796T3 ES 02749163 T ES02749163 T ES 02749163T ES 02749163 T ES02749163 T ES 02749163T ES 2263796 T3 ES2263796 T3 ES 2263796T3
Authority
ES
Spain
Prior art keywords
code
section
data
software
instruction sets
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
ES02749163T
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,900 external-priority patent/US7027806B2/en
Priority claimed from US09/916,460 external-priority patent/US7159214B2/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 ES2263796T3 publication Critical patent/ES2263796T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

Método para diagnóstico en servicio de software de sistema en un dispositivo de comunicaciones sin cables, cuyo método comprende: ejecutar el software del sistema (2102); poner en servicio un instrumento de tiempo de funcionamiento, capaz de procesar instrucciones de tiempo de funcionamiento del gestor de corrección (2104); recibir instrucciones de tiempo de funcionamiento del gestor de corrección (2106); y diagnosticar en servicio el software del sistema procesando las instrucciones de tiempo de funcionamiento del gestor de corrección (2108).

Description

Sistema y método para el diagnóstico en servicio del software de un sistema de dispositivo de comunicaciones sin cables.
Antecedentes de la invención 1. Sector técnico de la invención
La presente solicitud reivindica prioridad de la solicitud de Patente USA nº de serie 09/927.131 presentada en 10 de Agosto de 2001 y titulada "Sistema y método para la realización de juegos de instrucciones dinámicas para un dispositivo de comunicaciones sin cables" y está relacionada con la solicitud de patente USA nº de serie 09/916.900 presentada en 26 de Julio de 2001 y titulada "Sistema y método para la descarga en servicio de una sección de código de software de un dispositivo de comunicaciones sin cables" y 09/9169.460 presentada en 26 de Julio de 2001 y titulada "Sistema y método para el compactado de secciones de código de software de un dispositivo de comunicaciones sin cables reactualizable en servicio", todas las cuales se incorporan a esta descripción a título de referencia.
La presente invención se refiere de modo general a dispositivos de comunicaciones sin cable y, más particularmente, se refiere a un sistema y método para la utilización de juegos de instrucciones dinámicas para el diagnóstico de dispositivos de comunicaciones sin cables en servicio.
2. Descripción de técnicas relacionadas
No es inhabitual enviar actualizaciones de software para teléfonos que se encuentran ya en servicio. Estas actualizaciones se pueden relacionar con problemas descubiertos en el software una vez 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 servicios proporcionados por el proveedor de servicios. Otras actualizaciones pueden comportar problemas regionales o problemas asociados con ciertas compañías de comunicaciones. Por ejemplo, en ciertas regiones la disposición de red de las compañías de comunicaciones pueden imponer condiciones de interfaz de comunicación inalámbrica en el aparato manual que provocan que éste muestre un comportamiento inesperado, tal como búsqueda inapropiada de canales, terminación inapropiada de llamadas, audio inapropiado o similares.
El enfoque tradicional para dichas actualizaciones ha sido pedir la devolución temporal del dispositivo de comunicaciones sin cables, al cual se hace referencia en esta descripción asimismo como dispositivo sin cables, teléfono o aparato manual, a la tienda más próxima de ventas o servicio de la compañía de comunicaciones o al fabricante para realizar los cambios. Los costes involucrados en dichas actualizaciones son importantes y reducen la rentabilidad. Además, el cliente sufre inconvenientes que le pueden incomodar. Frecuentemente la solución práctica consiste en facilitar al cliente teléfonos nuevos.
Los dispositivos sin cables son utilizados en una serie de medios, con diferentes servicios de suscriptores, para una serie de aplicaciones de clientes distintos. Por lo tanto, aún en el caso en el que el software de un dispositivo sin cables pueda ser actualizado para mejorar su funcionamiento, es improbable que la actualización proporcione una mejora uniforme para todos los usuarios.
Sería ventajoso si se pudiera actualizar el software de un dispositivo de comunicaciones sin cables de manera económica y sin inconvenientes para el cliente.
Sería ventajoso si se pudiera actualizar el software del dispositivo de comunicaciones sin cables sin que el cliente dejara de poder utilizar sus teléfonos durante un periodo de tiempo significativo.
Sería ventajoso si el software del dispositivo de comunicaciones sin cables pudiera ser actualizado con un mínimo de tiempo del servicio técnico o sin necesidad de enviar el dispositivo al lugar en que se encuentra dicho servicio técnico.
Sería ventajoso que el software de sistema del dispositivo sin cables pudiera ser diferenciado en secciones de código, de manera que solamente hubiera la necesidad de sustituir secciones de código específicas del software del sistema en la actualización del software del sistema. Sería ventajoso si estas secciones de código pudieran ser comunicadas al dispositivo sin cables con intermedio de enlace inalámbrico.
Sería ventajoso si el dispositivo sin cables pudiera funcionar con juegos de instrucciones cargadas dinámicamente, que ayudarían a la actualización en servicio del software del sistema.
Sería ventajoso que los juegos de instrucciones dinámicas pudieran adaptar la modificación para adecuarse a las necesidades o problemas de usuarios de dispositivos individuales.
Sería ventajoso si estos juegos de instrucciones dinámicas pudieran ser utilizados para reparar averías y proporcionar soluciones temporales a problemas del software de sistema.
La solicitud de patente PCT publicada WO-A-98/09208, titulada "Herramienta para diagnóstico de software dividido en procesadores múltiples" ("A tool for software diagnosis divided across multiple processors"), da a conocer una indicación del estado general de la técnica en este sector, describiendo dicha referencia un sistema por ordenador objetivo/hospedante en el que el tráfico en los enlaces de conexión de comunicaciones y las dimensiones de un agente en el objetivo son reducidos utilizando, entre otros parámetros, bibliotecas de contaje de tiempo compartido, antememorias diferenciales de flujo cuantificado y direccionado de memoria objetivo basada en el hospedante.
Características de la invención
Las actualizaciones de software del dispositivo de comunicaciones sin cables proporcionan a los clientes la mejor experiencia posible de usuarios y del producto. Un componente oneroso en el mercado incluye la devolución temporal de equipos manuales para actualizar el software. Estas actualizaciones pueden ser necesarias para ofrecerle al usuario servicios adicionales o para tratar los problemas que se han descubierto en la utilización del teléfono después de que ha sido fabricado. La presente invención hace posible actualizar prácticamente software de aparatos manuales en servicio, con intermedio del interfaz del enlace inalámbrico. De manera específica, la presente invención permite al dispositivo de comunicación sin cables ejecutar juegos de instrucciones dinámicas. Estos juegos de instrucciones dinámicas permiten que el dispositivo sin cables actualice de forma "inteligente" o condicionalmente el software del sistema y los datos del sistema. Además, los juegos de instrucciones dinámicas permiten al dispositivo sin cables recoger datos y hacer cambios en el software del sistema como respuesta a los datos recogidos. De manera alternativa, los datos pueden ser recogidos y transmitidos al fabricante del dispositivo sin cables a efectos de análisis.
De acuerdo con lo anterior, se prevé un método para el diagnóstico en servicio del software de sistema en un dispositivo de comunicaciones sin cables. El método comprende: software del sistema de ejecución; lanzamiento de un dispositivo de contaje de tiempo ("run-time engine"); recibir instrucciones de tiempo de funcionamiento del gestor de corrección (PMRTI), incluyendo juegos de instrucciones dinámicas y secciones de código nuevo, en memoria no volátil de sección en un sistema de archivo; y proceso de juegos de instrucciones dinámicas para diagnosticar en servicio el software del sistema.
El proceso de los juegos de instrucciones dinámicas comprende: ejecutar los juegos de instrucciones de diagnóstico con el software del sistema para recoger datos; analizar los datos recogidos; y, en respuesta al análisis de los datos recogidos, operar en datos del sistema y software del sistema. El método comprende además: seguir el funcionamiento en el software del sistema y datos del sistema, ejecutando el software del sistema.
A continuación se facilitarán detalles del método de diagnóstico en servicio del software de sistema descrito anteriormente, y un sistema para diagnóstico en servicio del software del sistema en un dispositivo de comunicaciones sin cables.
Breve descripción de los dibujos
La figura 1 es un diagrama de bloques esquemático del sistema global de mantenimiento del software del dispositivo sin cables.
La figura 2 es diagrama de bloques esquemático del sistema de mantenimiento del software, haciendo observar la instalación de juegos de instrucciones con intermedio del interfaz inalámbrico.
La figura 3 es un diagrama de bloques esquemático, que muestra el sistema de la presente invención para realizar juegos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables.
La figura 4 es un diagrama esquemático de bloques 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 uno de la figura 3, con símbolos.
La figura 7 es una tabla que representa 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 de contaje de tiempo funcional ("run-time engine").
La figura 9 es un diagrama de bloques esquemático, que muestra el sistema de la presente invención para diagnóstico en servicio del software del sistema en un dispositivo de comunicaciones sin cables.
La figura 10 es un diagrama de bloques esquemático, que muestra el sistema de la figura 9, de manera más detallada.
La figura 11 es un diagrama esquemático que muestra la lógica condicional o aspecto matemático de los juegos de instrucciones de diagnóstico de la figura 10.
\newpage
La figura 12 es un diagrama de bloques esquemático, que muestra el simple aspecto de actualización del sistema de diagnóstico en servicio de la presente invención.
La figura 13 es un diagrama de bloques esquemático, que muestra el aspecto de la corrección de código de forma iterativa del sistema de diagnóstico en servicio de la presente invención.
La figura 14 es un diagrama de bloques esquemático, que muestra una solución permanente a las reparaciones temporales establecidas por el sistema de diagnóstico en servicio de la figura 13.
Las figuras 15a y 15b son diagramas de flujo que muestran el método de la presente invención para ejecutar juegos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables.
La figura 16 es un diagrama de flujo que muestra el funcionamiento de un juego de instrucciones dinámicas a título de ejemplo.
La figura 17 es un diagrama de flujo ilustrativo, a título de ejemplo, de otro funcionamiento de un juego de instrucciones dinámicas.
La figura 18 es un diagrama de flujo ilustrativo, a título de ejemplo, de un tercer funcionamiento del juego de instrucciones dinámicas.
La figura 19 es un diagrama de flujo ilustrativo, a título de ejemplo, de un cuarto funcionamiento del juego de instrucciones dinámicas.
La figura 20 es un diagrama de flujo ilustrativo, a título de ejemplo, de un quinto funcionamiento del juego de instrucciones dinámicas.
La figura 21 es un diagrama de flujo que muestra el método de la presente invención para el diagnóstico en servicio del software de sistema en un dispositivo de comunicaciones sin cables.
La figura 22 es un diagrama de flujo que muestra características adicionales del método de la presente invención mostrado en la figura 21.
La figura 23 es un diagrama de flujo que muestra el análisis externo característico del método de diagnóstico en servicio de la figura 21.
\vskip1.000000\baselineskip
Descripción detallada de las realizaciones preferentes
Algunas partes de las descripciones detalladas siguientes se presentan en términos de procedimientos, etapas, bloques lógicos, códigos, 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 proceso de datos para trasladar, de manera eficaz, su trabajo a otros técnicos en la materia. Un proceso, etapa realizada en microprocesador, aplicación, bloque lógico, proceso, etc. está concebido, en este caso de manera general, como secuencia autocontenida de etapas o instrucciones que conducen al resultado deseado. Las etapas son las que requieren manipulaciones físicas de cantidades físicas. Habitualmente, si bien no necesariamente, estas cantidades adoptan la forma de señales eléctricas o magnéticas capaces de ser almacenadas, transferidas, combinadas, comparadas y manipuladas de otras formas en un dispositivo sin cables basado en un microprocesador. Se ha demostrado conveniente en algunos casos, principalmente por razones de utilización común, hacer referencia a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números o similares. En el caso que se mencionen dispositivos físicos tales como una memoria, estos están conectados a otros dispositivos físicos con intermedio de un bus o de otra conexión eléctrica. Se puede considerar que estos dispositivos físicos interaccionan con procesos lógicos o aplicaciones y, por lo tanto, están "conectados" a operaciones lógicas. Por ejemplo, una memoria puede almacenar o codificar el acceso a otra operación lógica, o una aplicación puede reclamar una sección de código de la memoria para su ejecución.
No obstante, se debe tener en cuenta que la totalidad de estos términos y otros similares se tienen que asociar con cantidades físicas apropiadas y son meramente etiquetas convenientes aplicadas a estas cantidades. Si no se indica específicamente de otro modo, tal como es evidente de las explicaciones siguientes, se apreciará que, en la totalidad de la presente invención, los comentarios utilizando términos tales "proceso" o "conexión" o "traslación " o "exhibición" o "interrogación" o "determinación" o "visualización" o "reconocimiento" o similares se refieren a la acción y procesos en un sistema de microprocesador de dispositivos sin cables, que manipula y transforma datos representados como cantidades físicas (electrónicas) dentro de los registros del sistema del ordenador y memorias en otros datos representados de manera similar como cantidades físicas dentro de las memorias del dispositivo sin cables o registros u otros dispositivos de almacenamiento, transmisión o exhibición de información.
La figura 1 es un diagrama de bloques esquemático del conjunto del sistema de mantenimiento (100) del software del dispositivo sin cables. La organización del software del sistema de la presente invención se ha presentado en detalle a continuación, siguiendo una consideración general del sistema (100) de mantenimiento del software. El sistema general (100) describe un procedimiento para el suministro de actualizaciones y juegos de instrucciones (programas) del software del sistema, y acoplamiento o instalación del software suministrado a un dispositivo sin cables. Las actualizaciones de software del sistema y las instrucciones de tiempo funcional del gestor de corrección (PMRTI), que son más generalmente conocidos como juegos de instrucciones o juegos de instrucciones dinámicas, son creadas 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 las bibliotecas de símbolos tienen que ser actualizadas, la actualización (102) del software es transportada como una o varias secciones de código. La actualización del software es enviada a los dispositivos sin cables en servicio, de los que es representativo el dispositivo (104) de comunicaciones sin cables, o es transmitido en comunicaciones separadas a partir de la estación de base (106) utilizando protocolos de transporte bien conocidos, de tipo aéreo convencional, de datos o de mensajes. La invención no está limitada a ningún formato de transporte particular, dado que el dispositivo de comunicaciones sin cables puede ser modificado fácilmente para procesar cualquier protocolo de transporte aéreo disponible, con el objetivo de recibir software del sistema y actualizaciones PMRTI.
El software del sistema puede ser considerado como una colección de diferentes subsistemas. Los objetos del código pueden ser acoplados íntimamente en uno de estos subsistemas abstractos, y la colección resultante se puede etiquetar como biblioteca de símbolos. Esto proporciona una interrupción lógica de la base del código, y las correcciones y arreglos del software se pueden asociar con una de estas bibliotecas de símbolos. En la mayor parte de casos, una actualización única es asociada con una biblioteca de símbolos o como máximo a dos. El resto de la base de código, las otras bibliotecas de símbolos, permanece sin cambios.
La noción de las bibliotecas de símbolos proporciona un mecanismo para tratar con código y constantes. Los datos de escritura-lectura (RW), por otra parte, se acoplan en una biblioteca individual única (RW) que contiene 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 procesada. Este dispositivo sin cables sobreescribe 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 de almacenamiento de código (112). La sección de código es comprimida de modo típico antes de su transporte, a efectos de minimizar la ocupación en la FSS (110). Frecuentemente, la sección de código actualizada será acompañada por sus datos RW, lo que es otro tipo de biblioteca de símbolos que contiene todos los datos RW para cada biblioteca de símbolos. Si bien se carga en la memoria volátil de acceso al azar de escritura-lectura (114), cuando se ejecuta el software del sistema, los datos RW necesitan siempre ser almacenados en la memoria no volátil (108), de manera que pueden ser cargados en la memoria volátil de acceso al azar 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 volátil de acceso al azar de escritura-lectura. 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 gestor de corrección.
El sistema (100) comprende el concepto de tablas virtuales. Utilizando estas tablas, se pueden corregir (sustituir) bibliotecas de símbolos en una sección de código, sin interrumpir (sustituir) otras partes del software del sistema (otras secciones de código). Las tablas virtuales ejecutan a partir de la memoria de lectura-escritura de acceso al azar volátil (114) a efectos de eficacia. Una tabla de direccionado de sección de código y una tabla de direccionado de desplazamiento de símbolos son tablas virtuales.
Las secciones de código actualizado son recibidas por el dispositivo sin cables (104) y almacenadas en la sección FSS (110). Un interfaz de usuario del dispositivo sin cables (UI) notificará, de manera típica, al usuario que se tiene nuevo software a disposición. Como respuesta a las solicitudes de UI, el usuario reconoce la notificación y señala la operación de corrección o de actualización. 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 realizar el proceso de actualización. La sección de código del gestor de corrección comprende una biblioteca de símbolos de control lectura-escritura, no volátil, que es cargada también en la memoria volátil de acceso al azar de lectura-escritura (114). La biblioteca de símbolos de control de lectura-escritura, no volátil, provoca la sobreescritura de secciones de código con secciones de código actualizadas. La sección de código gestor de correcciones comprende los datos de escritura-lectura, tablas de direcciones de secciones de código y tabla de direcciones de desplazamiento de símbolos, así como un código de acceso de símbolos y dirección de acceso de símbolos (se explica más adelante). Partes de estos datos son inválidas cuando se introducen secciones de código actualizadas, y una sección de código gestor de correcciones actualizada comprende datos de lectura-escritura, una tabla de direcciones de sección de código y una tabla de direcciones válida de desplazamiento de símbolos 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), se efectúa la reposición del dispositivo sin cables. Después de la operación de reposición, el dispositivo sin cables puede ejecutar el software del sistema actualizado. Se debe comprender asimismo que la sección de código de gestión de correcciones puede incluir otras bibliotecas de símbolos que no se han explicado en lo anterior. 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 de bloques esquemático del sistema (100) de mantenimiento del software, destacando el montaje de juegos de instrucciones con intermedio del interfaz sin cables. Además de actualizar las secciones de código de software del sistema, el sistema de mantenimiento (100) puede descargar y aplicar o instalar juegos de instrucciones dinámicas, programas, o juegos de instrucciones del gestor de correcciones (PMIS), a los que se hará referencia en esta descripción como instrucciones de tiempo funcional del gestor de correcciones (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 sección FSS (110). Una sección de código PMRTI es típicamente un archivo binario que puede ser visualizado como instrucciones compiladas al aparato manual. Una sección de código PMRTI es suficientemente amplia para proporcionar la realización de operaciones matemáticas básicas y la realización de operaciones ejecutadas condicionalmente. Por ejemplo, una PMRTI de calibración RF puede llevar a cabo las siguientes operaciones:
SI ELEMENTO DE CÁLCULO RF ES MENOR DE X
EJECUTAR INSTRUCCIÓN
O BIEN
EJECUTAR INSTRUCCIÓN
Una PMRTI puede soportar operaciones matemáticas básicas tales como suma, 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 en respuesta a interrogaciones de UI, y el dispositivo sin cables debe ser objeto de reposición después de que las instrucciones PMRTI han sido cargadas en la sección (112) de almacenamiento de código. A continuación se puede ejecutar la sección PMRTI. Si la sección de código PMRTI está asociada con cualesquiera tablas virtuales o datos de lectura-escritura, una sección de código de gestión de corrección actualizada será transportada con la instrucción PMRTI para instalación en la sección de almacenamiento de código (112). De manera alternativa, la instrucción PMRTI puede ser mantenida y procesada a partir de la sección FSS (110). Después de que el aparato manual (104) ha realizado todas las instrucciones en la sección PMRTI, la sección PMRTI puede ser borrada de la FSS (110). De manera alternativa, la PMRTI es mantenida para futuras operaciones. La PMRTI puede ser ejecutada cada vez que se activa el dispositivo sin cables.
La PMRTI es un dispositivo de instrucciones de tiempo funcional muy potente. El equipo manual puede ejecutar cualquier instrucción facilitada al mismo a través de un medio PMRTI. Este mecanismo puede ser utilizado para soportar calibraciones RF. De manera más general, se puede utilizar PMRTI para reparar de forma remota software de un dispositivo sin cables cuando se han reconocido problemas en el software por el fabricante o proveedor del servicio, de manera típica como resultado de quejas de usuarios. La PMRTI puede también registrar datos necesarios para el diagnóstico de problemas de software. La PMRTI puede lanzar aplicaciones de sistema que han sido bajadas recientemente para análisis de datos, solución de averías y arreglos. La PMRTI puede proporcionar actualizaciones basadas en datos RW para análisis y solución a corto plazo a un determinado problema, en lugar de una sección de código de software de sistema actualizada. La PMRTI puede proporcionar algoritmos de compactado de memoria para utilizar por 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 memoria no volátil (108) requeridas 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 colección de bibliotecas tiene impacto en la exigencia de dimensión 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 pueden ser dimensionadas para que sean mayores que las bibliotecas de símbolos dispuestas dentro de las mismas.
Una vez que las actualizaciones de software han sido suministradas al dispositivo sin cables, el sistema de mantenimiento de software (100) soporta el compactado de la memoria. El compactado de la memoria es similar a las aplicaciones de defragmentación de disco en los ordenadores de sobremesa. El mecanismo de compactado asegura que la memoria sea utilizada de forma óptima y que está bien equilibrada para futuras actualizaciones de secciones 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 empezar a ser corregido (actualizado). El sistema (100) intenta acoplar secciones de código actualizadas en el espacio de memoria ocupado por la sección de código que está siendo sustituida. Si la sección de código actualizada es más grande 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 puede ser calculado por el fabricante o proveedor de servicio, y se pueden transportar instrucciones de compactado al dispositivo sin cables (104).
El compactado puede ser un proceso que requiere mucho tiempo debido a la complejidad del algoritmo y también al volumen muy grande de movimiento de datos. El algoritmo de compactado efectúa la predicción de la factibilidad antes de empezar proceso alguno. Los requerimientos de UI pueden ser utilizados para pedir permiso del usuario antes de intentar el compactado.
\newpage
En algunos aspectos de la invención, todas las secciones de código de software del sistema pueden ser actualizadas simultáneamente. No obstante, la actualización completa del software del sistema requeriría una sección FSS (110) más grande.
La figura 3 es un diagrama de bloques esquemático que muestra la ejecución del juego de instrucciones dinámicas de la presente invención, en un dispositivo de comunicación sin cables. El sistema (300) comprende una sección (112) de almacenamiento de código en la memoria (108) que incluye un software del sistema del dispositivo sin cables ejecutable, diferenciado en una serie de secciones de código corrientes. La sección de código uno (302), la sección de código dos (304), la sección de código n (306) y la sección (308) de código gestor de corrección se han mostrado en el dibujo. 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 dispuesta en la 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ódigo n (306). Cada una de las bibliotecas de símbolos comprende símbolos que tienen funcionalidad relacionada. Por ejemplo, la biblioteca de símbolos uno (310) puede estar involucrada en el funcionamiento de la pantalla de cristal líquido (LCD) del dispositivo sin cables. A continuación, los símbolos serían asociados con funciones de visualización. Tal como se explica en detalle más adelante, las bibliotecas de símbolos adicionales están dispuestas en la sección de código gestor de
corrección (308).
La figura 4 es un diagrama de bloques esquemático 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 que puede ser escrita, no volátil, tal como una memoria Flash. Se debe comprender que las secciones de código no deben ser necesariamente almacenadas en la misma memoria que la FSS (110). También se debe comprender que la estructura de software del sistema de la presente invención se podría activar con secciones de código almacenadas en una serie de memorias asociadas. La sección de almacenamiento de código (112) comprende una segunda serie de bloques de memoria direccionados de forma contigua, en los que cada bloque de memoria almacena una sección de código correspondiente de la segunda serie de secciones de código. De este modo, la sección de código uno (302) es 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 gestor de corrección (308) en el bloque de memoria de orden p (406).
Comparando las figuras 3 y 4, el inicio de cada sección de código es almacenado en la dirección de inicio correspondiente en la memoria, y las bibliotecas de símbolos son dispuestas para empezar en el inicio de las secciones de código. Es decir, cada biblioteca de símbolos empieza en una primera dirección y funciona por una gama de direcciones de forma secuencial desde la primera dirección. Por ejemplo, la sección de código uno (302) empieza 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 la tercera dirección de inicio (412) en la memoria (112) de la sección de almacenamiento de código (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 gestor de corrección 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 de código (308) del gestor de corrección empieza en el inicio (324) de la sección de código gestor de corrección. De este modo, la biblioteca de símbolos uno (310) es almacenada finalmente en el primer bloque de memoria (400). Si una sección de código comprende una serie de bibliotecas de símbolos, tales 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 sección de código como tipo de símbolo incluido en una biblioteca de símbolos dispuesta en la sección de código gestor de corrección (308). La tabla de direcciones de secciones de código efectúa la referencia cruzada de los identificadores de sección de código con correspondientes direcciones de inicio de sección de código en la memoria.
La figura 5 es una tabla representativa de la tabla de direcciones (326) de la sección de código de la figura 3. La tabla (326) de dirección de secciones de código es consultada para encontrar la dirección inicial 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 un símbolo en la biblioteca de símbolos uno para ejecución. Para hallar 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, la tabla (326) de direcciones de sección de código es consultada. La disposición de bibliotecas de símbolos en secciones de código y la localización de secciones de códigos con una tabla permiten el desplazamiento o expansión de las secciones de código. 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 necesariamente cada biblioteca de símbolos empieza en el 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 un símbolo de la biblioteca de símbolos tres (314) es necesario para ejecución, el sistema (300) consulta la tabla (326) de direcciones de secciones de código para encontrar la dirección de inicio de la sección de código dos (304). Tal como se explica más adelante, una tabla de direcciones de desplazamiento de símbolos permite la localización de los símbolos en la biblioteca de símbolos tres (314). No es importante que los símbolos se extiendan a través de bibliotecas múltiples, siempre que estén retenidos con la misma sección de código.
Tal como se ha indicado anteriormente, cada biblioteca de símbolos comprende símbolos relacionados funcionalmente. Un símbolo es un nombre definido por programador para localizar y utilizar un cuerpo de rutina, variable o 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 ámbito 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 por secciones de código y se buscan por bibliotecas en diferentes secciones de código. La tabla de direcciones 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 sobre un dispositivo sin cables. Los símbolos de esta biblioteca generarían, a su vez, números de teléfono, nombres, hora u otras características de pantalla. Cada una de las características es generada con rutinas, a las que se hará referencia en esta descripción como un símbolo. Por ejemplo, un símbolo en 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 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 de las secciones de código correspondiente. En muchas circunstancias, el inicio de la biblioteca símbolos es el inicio de una sección de código, pero ello no es cierto si una sección 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 símbolos son almacenadas en una tabla de direcciones de desplazamiento de símbolos (328) en la sección de código gestor de corrección
(ver figura 3).
La figura 7 es una tabla que representa la tabla (328) de direcciones de desplazamiento de símbolos de la figura 3. La tabla (328) de direcciones de desplazamiento de símbolos efectúa la referencia cruzada de identificadores de símbolos con correspondientes direcciones de desplazamiento, y con correspondientes identificadores de sección de código en la memoria. De este modo, cuando el sistema intenta ejecutar el símbolo "X" en la biblioteca de símbolos uno, la tabla (328) de direcciones de desplazamiento de símbolos es consultada 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 primera serie de bibliotecas de símbolos incluyen, de manera típica, datos de lectura-escritura que se deben consultar o determinar en la ejecución de estas bibliotecas de símbolos. Por ejemplo, una biblioteca de símbolos puede incluir una operación que depende de una declaración condicional. La sección de datos de lectura-escritura es consultada para determinar la situación requerida para completar la afirmación condicional. La presente invención agrupa los datos de lectura-escritura 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) son dispuestos en la sección (308) de código gestor de corrección. De manera alternativa (no mostrado), los datos de lectura-escritura pueden ser dispuestos en una distinta sección de código, por ejemplo, la sección de código
n (306).
La primera serie de bibliotecas de símbolos comprende también el código de acceso de símbolos dispuesto en una sección de código para calcular la dirección de un símbolo buscado. El código de acceso de símbolos 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 almacenado en una dirección de la sección de código (308) del gestor de corrección. El sistema (300) comprende además una primera localización para almacenamiento de la dirección de código de acceso de símbolos. La primera localización puede ser una 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 también ser dispuesta 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) del gestor de corrección con los datos (330) de lectura-escritura, la tabla (328) de desplazamiento de símbolos, la tabla de direcciones (326) de secciones de código y el código (332) de acceso de símbolos, así como la biblioteca de corrección (336) (biblioteca de símbolos de corrección).
El código de acceso de símbolos accede a la tabla de direcciones de secciones de código y las tablas de direcciones de desplazamiento de símbolos para calcular, o encontrar la dirección de un símbolo buscado en memoria. Es decir, el código de acceso a símbolos calcula la dirección de un símbolos buscado 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 número uno, el código de acceso de símbolos es consultado para buscar el identificador de símbolo (ID de símbolo) "X_1", correspondiente al símbolo "X" (ver figura 7). El código de acceso a símbolos consulta la tabla de direcciones de desplazamiento de símbolos para determinar si el identificador de símbolo "X_1" tiene un desplazamiento de (03) desde el inicio de la sección de código número uno (ver figura 6). El código de acceso a símbolos es consultado para buscar el identificador de sección de código "CS_1", correspondiente a la sección de código número uno. Dicho código de acceso a símbolos consulta la tabla de direcciones de sección de código para determinar la dirección de inicio asociada con el identificador de sección de código (ID de sección de código) "CS_1". De esta manera, el código de acceso a símbolos determina que el identificador de símbolo "X_1" está desplazado (03) de la dirección (00100), o que está localizado en la dirección (00103).
El símbolo "X" es un nombre reservado ya que es una parte del código corriente. En otras palabras, tiene datos absolutos asociados con el mismo. Los datos pueden ser una dirección o un valor. El identificador de símbolo es un alias creado para localizar dicho símbolo. La tabla de direcciones de desplazamiento de símbolos y la tabla de direcciones de secciones de código trabajan con identificadores para evitar confusiones con símbolos y nombres de sección de código reservados. También es posible que el mismo nombre de símbolo sea utilizado en varias bibliotecas de símbolos. La utilización de identificadores impide la confusión entre dichos símbolos.
Haciendo referencia nuevamente a la figura 1, el sistema (300) comprende además una memoria volátil de lectura-escritura (114), típicamente una memoria de acceso al azar (RAM). Los datos de lectura-escritura (330), la tabla de direcciones de secciones de código (326), la tabla de direcciones de desplazamiento de símbolos (328), el código de acceso a símbolos (332), y la dirección de código de acceso a 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 corrección para el acceso durante la ejecución del software de sistema. Tal como es conocido, los tiempos de acceso para código almacenado en RAM son significativamente menores que los tiempos de acceso a una memoria no volátil, tal como una memoria Flash.
Haciendo referencia nuevamente a la figura 3, puede observarse que las bibliotecas de símbolos no necesitan llenar las secciones de código en las que están dispuestas, a pesar de que los bloques de memoria tienen el tamaño exacto para alojar las secciones de código correspondientes almacenadas en su interior. De manera alternativa, cada una de la segunda serie de secciones de código tiene un tamaño medido en bytes que puede alojar las bibliotecas de símbolos correspondientes, y cada uno de los bloques de memoria con direcciones contiguas tienen un tamaño en bytes que permite alojar las secciones de código correspondientes. Por ejemplo, la sección de código número uno (302) puede ser una sección de 100 bytes que permita alojar una biblioteca de símbolos que tenga un tamaño de 100 bytes. El primer bloque de memoria sería de 100 bytes para ajustarse al tamaño en bytes de la sección de código número uno. Sin embargo, la biblioteca de símbolos cargada en la sección de código 1 puede tener un tamaño menor a 100 bytes. Tal como se muestra en la figura 3, la sección de código número uno (302) tiene una sección no utilizada (340), dado que la biblioteca de símbolos número uno (310) tiene un tamaño menor a 100 bytes. Por lo tanto, cada una de las secciones de código de la segunda serie puede tener un tamaño mayor que el necesario para alojar las bibliotecas de símbolos correspondientes. Mediante este "sobredimensionado" de las secciones de código, pueden alojarse bibliotecas de símbolos actualizadas de mayor tamaño.
Los bloques de memoria con direcciones contiguas se refieren a la partición del espacio de la memoria física en bloques lógicos de tamaño variable. Las secciones de código y los bloques de memoria son términos que esencialmente son 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 sea de mayor tamaño que la biblioteca de símbolos, o el juego de bibliotecas de símbolos en la sección de código cuando es movida y manipulada.
Tal como puede observarse en la figura 3, el sistema (300) incluye una biblioteca de símbolos de corrección, a la cual se hará referencia en el presente documento como biblioteca de corrección (336), para disponer nuevas secciones de código en la sección de almacenamiento de código con las secciones de código corriente. La disposición de las nuevas secciones de código con las secciones de código actual corriente en la sección de almacenamiento de código forma el software de sistema ejecutable actualizado. El gestor de corrección (336) no sólo dispone las nuevas secciones de código en las secciones de código corriente, sino que también reemplaza secciones de código con secciones de código actualizadas.
Haciendo referencia nuevamente a la figura 4, la sección de sistema de archivos (110) 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 de gestión de corrección actualizada (452). La sección de sistema de archivos recibe asimismo una primera instrucción de tiempo funcional de gestión de corrección (PMRTI) (454) que incluye instrucciones para disposición de las nuevas secciones de código con las secciones de código corrientes. Tal como puede observarse en la figura 1, un interfaz de enlace aéreo (150) recibe secciones de código nuevas o actualizadas, así como la primera PMRTI. A pesar de que el interfaz de enlace aéreo (150) es representado por una antena, debe entenderse que dicho interfaz de enlace aéreo incluye asimismo un transceptor de RF, circuitos de banda de base y circuitos de demodulación (no mostrados). La sección de sistema de archivos (110) almacena las nuevas secciones de código recibidas a través del interfaz de enlace aéreo (150). La biblioteca de corrección (336), ejecutando desde la memora volátil de lectura-escritura (114), reemplaza una primera sección de código en la sección de almacenamiento de código, por ejemplo, la sección de código n (306), con una 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 de gestión de corrección (308) es reemplazada con la sección de código de gestión de corrección actualizada (452). Cuando las secciones de código están siendo reemplazadas, la biblioteca de corrección (336) sobrescribe 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 de sistema de archivos (110). En el caso extremo, todas las secciones de código en la sección de almacenamiento de código (112) son reemplazadas con 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 de corrección (336) reemplaza dicha 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 tener un tamaño suficiente como para alojar la segunda serie de secciones de código actualizadas recibidas a través del interfaz de enlace aéreo.
Tal como se ha mencionado anteriormente, las secciones de código actualizadas que están siendo recibidas pueden incluir secciones de código de datos de lectura-escritura, secciones de código de tablas de direcciones de secciones 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 a símbolos, o una sección de código con una nueva biblioteca de corrección. Todas estas secciones de código, con sus bibliotecas de símbolos y símbolos asociados, pueden ser almacenadas como secciones de código distintas e independientes. Entonces, cada una de estas secciones de código podría ser reemplazada por una única sección de código actualizada. Es decir, una sección de código de lectura-escritura actualizada sería recibida y reemplazarí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 tabla de direcciones de secciones de código actualizada sería recibida y reemplazaría la sección de código de tabla de direcciones de secciones de código en la sección de almacenamiento de código. Se recibiría una sección de código de tabla de direcciones de desplazamiento de símbolos actualizada y reemplazaría la sección de código de tabla de direcciones de desplazamiento de símbolo en la sección de almacenamiento de código. Se recibiría una sección actualizada de código de acceso a símbolos y reemplazaría la sección de código de acceso a símbolos en la sección de almacenamiento de código. Del mismo modo, se recibiría una sección actualizada de código de gestión de corrección (con una biblioteca de corrección) y reemplazaría la sección de código de gestión de corrección en la sección de almacenamiento de código.
Sin embargo, las secciones de código anteriormente mencionadas están unidas típicamente formando un paquete en la sección de código de gestión de corrección. De este modo, la sección de código de lectura-escritura en la sección de almacenamiento de código es reemplazada con la sección de código de lectura-escritura actualizada de la sección del sistema de archivos (110) cuando la sección de código de gestión de corrección (308) es reemplazada con la sección de código de gestión de corrección actualizada (450). Del mismo modo, la tabla de direcciones de secciones de código, la tabla de direcciones de desplazamiento de símbolos, las secciones de código de acceso a símbolos, y también la biblioteca de corrección son reemplazadas cuando es instalada la sección de código de gestión de corrección actualizada (450). La disposición de los nuevos datos de lectura-escritura, la nueva tabla de direcciones de secciones de código, la nueva tabla de direcciones de desplazamiento de símbolos, el nuevo código de acceso a símbolos, y la nueva biblioteca de corrección así como la sección de código de gestión de corrección actualizada (450), junto con las secciones de código corrientes en la sección de almacenamiento de código, forman el software de sistema ejecutable actualizado.
Cuando la sección de sistema de archivos (110) recibe una dirección de código de acceso a símbolos actualizada, el gestor de corrección reemplaza la dirección de código de acceso a símbolos en la primera posición de memoria con la dirección de código de acceso a símbolos actualizada. Tal como se ha mencionado anteriormente, de manera típica la primera posición en memoria (334) está en la sección de código de gestión de corrección (ver figura 3).
Tal como puede verse en la figura 3, la biblioteca de corrección (308) incluye además un compactador o una biblioteca de símbolos de compactación (342). El compactador (342) también puede estar habilitado asimismo como una sección de código distinta e independiente, sin embargo, tal como se ha mencionado anteriormente, resulta útil y eficiente empaquetar de forma conjunta las funciones asociadas con las mejoras del software de sistema en una sola sección de código de gestión de corrección. Generalmente, el compactador (342) puede ser utilizado para modificar el tamaño de las secciones de código, de modo que pueden disponerse nuevas secciones con las secciones de código corriente en la sección de almacenamiento de código (112).
Con las características de organización, descarga, y compactación de la presente invención ahora establecidas, la siguiente descripción se centrará en el sistema (300) de ejecución de juegos de instrucciones dinámicas de un dispositivo de comunicaciones sin cables. El sistema (300) comprende un software de sistema ejecutable y datos de sistema diferenciados en secciones de código, tal como ha sido descrito en detalle. Además, dicho sistema (300) comprende juegos de instrucciones dinámicas para operar los datos de sistema y el software de sistema, y controlar la ejecución del software de sistema. Tal como puede observarse en la figura 4, un juego de instrucciones dinámicas (470) está organizado en la primera PMRTI (454). Tal como puede observarse en la figura 3, el sistema también comprende un dispositivo de tiempo funcional para el procesamiento de dichos juegos de instrucciones dinámicas, habilitado como biblioteca de tiempo funcional (370). Como en el caso de la biblioteca de compactación (342) y la biblioteca de corrección (336) mencionadas anteriormente, típicamente la biblioteca de tiempo funcional (370) está localizada en la sección de código de gestión de corrección (308). Sin embargo, la biblioteca de tiempo funcional (370) podría estar localizada de forma alternativa en otra sección de código, por ejemplo, la primera sección de código (304).
Los juegos de instrucciones dinámicas son un solo o múltiples juegos de instrucciones que incluyen código de operación condicional, y generalmente incluyen elementos de datos. El dispositivo de tiempo funcional lee el código de operación y determina las operaciones que deben ser realizadas. El código de operación puede ser condicional, matemático, de procedimiento o lógico. El dispositivo de tiempo funcional, o biblioteca de tiempo funcional (370) procesa los juegos de instrucciones dinámicas para llevar a cabo operaciones como pueden ser operaciones de tipo matemático o lógico. Es decir, el dispositivo de tiempo funcional lee el juego 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 el juego de instrucciones dinámicas no está limitado a ningún lenguaje particular, típicamente el código de operación es una forma de código de máquina, dado que la memoria del dispositivo sin cables es limitada y la velocidad funcional 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 funcional 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 juegos de instrucciones dinámicas a través de un interfaz, tal como el enlace de comunicaciones aéreo (150). Tal como se muestra en la figura 1, el interfaz también puede ser una línea fija (160) de radiofrecuencia (RF). Entonces, la PMRTI puede ser recibida por la 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 un 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 funcional (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 juego 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 funcional (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 funcional 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 funcional (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 funcional 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 funcional lo extrae. De manera alternativa, el símbolo "X" puede ser código de operación, y el dispositivo de tiempo funcional 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 funcional accede a los datos de sistema desde la sección de código (472) y analiza los datos de sistema. El dispositivo de tiempo funcional procesa el código de operación de los juegos 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 funcional 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 funcional, 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 funcional 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 la FSS (110). El dispositivo de tiempo funcional 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 es 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 funcional 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 juegos 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 funcional 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 juego 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 funcional 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 un 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 funcional de gestión de correcció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, tal 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 funcional añade la nueva sección de código (474) ((450)) a la sección de almacenamiento de código en 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 funcional 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)) en 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 el diagnóstico en servicio del software de sistema de un dispositivo de comunicaciones inalámbricas. Dicho sistema (900) comprende un interfaz de enlace aéreo (902), equivalente al 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 juegos de instrucciones dinámicas (910) para el diagnóstico en servicio del software de sistema son recibidos a través del interfaz de enlace aéreo (902). Los juegos de instrucciones dinámicas (910) así como las nuevas secciones de código (912), son parte de las instrucciones de tiempo funcional de gestión de corrección (914). De manera típica, los juegos de instrucciones dinámicas (910) son almacenados en la sección de sistema de archivos (906). Un dispositivo de tiempo funcional, o biblioteca de tiempo funcional (916), procesa los juegos de instrucciones dinámicas (910). Tal como ha sido mencionado anteriormente, de forma típica la biblioteca de tiempo funcional (916) es parte de la sección de código de gestión de corrección (918).
El software de sistema ejecutable y los datos de sistema (secciones de código en la memoria permanente (904)) son operados por los juegos de instrucciones dinámicas (910). El software de sistema es ejecutado siguiendo las operaciones sobre el software de sistema y datos de sistema, llevadas a cabo por los juegos 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) de la sección de almacenamiento de código. La sección de sistema de archivos (906) de la memoria no volátil recibe las instrucciones de tiempo funcional de gestión de corrección (PMRTI) (914), incluyendo los juegos de instrucciones dinámicas (910) y las nuevas secciones de código (se muestra la nueva sección de código (912)).
En algunos aspectos de la presente invención, el juego de instrucciones dinámicas (910) es un juego de instrucciones de diagnóstico, y la nueva sección de código (912) es una sección de código de diagnóstico. Después de ser recibida en la sección de sistema de archivos (906), la sección de código de diagnóstico (912) es almacenada en memoria no volátil (904), típicamente en la sección de almacenamiento de código (908) (ver flecha punteada etiquetada con una "l"). El juego de instrucciones de diagnóstico (910) ejecuta la sección de código de diagnóstico (912) con el software de sistema.
La figura 10 es un diagrama de bloques esquemático que muestra en mayor detalle el sistema de la figura 9. Una función del juego de instrucciones de diagnóstico (910) es recolectar datos de sistema como respuesta a la ejecución de la sección de código de diagnóstico (912) con el software de sistema. En un aspecto de la presente invención, los símbolos de software de sistema importantes y los datos de símbolos son recogidos en una sección de código de datos de recolección (1000), que típicamente está en la sección de sistema de archivos (906) (tal como se muestra), pero también puede estar en la sección de almacenamiento de código (no mostrado) o en la memoria volátil de lectura-escritura (1002).
En otro aspecto de la presente invención, el software de sistema almacena símbolos y elementos de datos, y actualiza dichos símbolos almacenados y elementos de datos para proporcionar un registro de la operación del software de sistema. Esta información de estado temporal puede conservarse en la memoria volátil (1002). Esto permite que los juegos de instrucciones dinámicas (910) recolecten de forma más sencilla las direcciones y valores de los símbolos almacenados en la memoria volátil de lectura-escritura para el almacenamiento en la sección de código de datos recogidos (1000).
Los datos recogidos en la sección de código de datos de recolección (1000) pueden ser analizados por el sistema de diagnóstico en servicio (900) para aplicar un arreglo temporal, ver la explicación de las figuras 13 y 14 a continuación, o pueden ser transmitidos a un fabricante de dispositivos sin cables para su análisis. El juego de instrucciones de diagnóstico (910) hace que los datos de sistema recogidos (1000) sean transmitidos por el interfaz de enlace aéreo (902), ver flecha punteada etiquetada con una "l". Entonces, una nueva instrucción de tiempo funcional de gestión de corrección (1004) es recibida a través del interfaz de enlace aéreo (902), ver la flecha punteada etiquetada con un "2". La nueva PMRTI (1004) tiene una nueva sección de código incluyendo datos actualizados. Los juegos de instrucciones de diagnóstico (910) reemplazan una primera sección de código en el almacenamiento permanente con la nueva sección de código (ver figura 9), y el software de sistema es ejecutado utilizado la nueva sección de
código.
La figura 11 es un diagrama esquemático que muestra el aspecto condicional lógico o matemático del juego de instrucciones de diagnóstico (912) de la figura 10. En este aspecto de la invención, los juegos de instrucciones de diagnóstico (912) utilizan juegos de instrucciones de diagnóstico condicional para analizar los datos recogidos. La operación condicional puede ser una operación matemática simple, tal como la de añadir "3" al elemento de datos. De forma alternativa, la operación podría ser más compleja. Tal como se muestra, la operación es: si X<3, hacer X=5, de lo contrario dejar inalterado el valor de X. Dado que las operaciones condicionales están basadas en funciones de software estándar, la cantidad total, los tipos y variaciones de las operaciones lógicas condicionales son demasiado numerosas para ser mencionadas en el presente documento. Los datos de sistema son actualizados como respuesta al análisis de los datos recogidos, y el software de sistema es ejecutado utilizando los datos de sistema actualizados. Tal como se muestra, el software de sistema opera sobre X, siendo el valor de X igual a 5.
\newpage
La figura 12 es un diagrama de bloques esquemático que muestra el aspecto de actualización simple del sistema de diagnóstico en servicio (900) de la presente invención. La sección de código de diagnóstico (914) incluye juegos predeterminados de datos de sistema actualizados, mostrados como "Z_1" (1200), "Z_2" (1202) y "Z_3" (1204). Los juegos de instrucciones dinámicas de diagnóstico (912) seleccionan un juego de datos de sistema actualizado, por ejemplo, "Z_1" (1200). Entonces, el software de sistema, por ejemplo, la sección de código (1206), se ejecuta utilizando el juego de datos de sistema actualizados "Z_1" (1200). Debe notarse que el juego de datos "Z_1" (1200) reemplaza al juego de datos "R_1" (1208). Los juegos de instrucciones de diagnóstico (912) han determinado con anterioridad que el software de sistema es menos eficiente utilizando el juego de datos "R_1".
La figura 13 es un diagrama de bloques esquemático que muestra el aspecto interactivo de corrección de código iterativo del sistema de diagnóstico en servicio (900) de la presente invención. En este caso, la sección de código de diagnóstico (914) incluye una serie de bibliotecas de símbolos de código temporal, mostradas como "Y_1" (1300), "Y_2" (1302) e "Y_3" (1304) y las restricciones correspondientes "YC_1" (1306), "YC_2" (1308) e "YC_3" (1310). Esta sección de código de diagnóstico (914) también puede ser denominada como una sección de código de prueba. A pesar de que las bibliotecas y las secciones de restricción se muestran por separado, de forma alternativa las secciones de restricción (1306) a (1310) pueden ser parte de las librerías temporarias (1300) a (1304), o estar localizadas en otras secciones de código de diagnóstico (no mostrado).
Los juegos de instrucciones de diagnóstico (912) ejecutan un primer código temporal, por ejemplo, "Y_1" (1300). Es decir, los juegos de instrucciones de diagnóstico (912) hacen que el software de sistema, por ejemplo, la sección de código (1312), se ejecute utilizando el primer código temporal "Y_1" (1300). Los datos de sistema son recogidos en respuesta a la ejecución del primer código temporal "Y_1" (1200), en la sección de código de datos recogidos (1000), por ejemplo (ver la flecha punteada etiquetada con una "l"). Los juegos de instrucciones de diagnóstico (912) comparan los datos de sistema recogidos con las restricciones "YC_1" (1306) correspondientes. El análisis puede basarse en operaciones condicionales, lógicas o matemáticas simples o complejas, tal como ha sido mencionado anteriormente, que son generadas `por los juegos de instrucciones de diagnóstico. De manera simplista, la sección de código de diagnóstico (914) incluye restricciones organizadas como valores disparadores de datos de sistema, y los juegos de instrucciones de diagnóstico (912) analizan los datos recogidos comparando los datos de sistema (1000), recogidos como respuesta a la ejecución del primer código temporal "Y_1" (1300), con los valores disparadores de datos de sistema "YC_1" (1306).
Si los datos de sistema recogidos (1000) pasan el análisis, entonces el primer código temporal "Y_1" (1200) se asume como operativo, y los datos de sistema son actualizados de forma temporaria mediante las primeras restricciones de código temporal "YC_1" (1306). Dado que la sección de código (1312) debe ser operada con una sección de código temporaria en lugar de código instalado, por ejemplo, "R_1" (1314), el software de sistema redirige de forma temporaria los símbolos de software de sistema seleccionados hacia símbolos antagonistas en la primera biblioteca de símbolos de código temporal "Y_1" (1300) de la sección de código de diagnóstico (914), ver flecha punteada etiquetada con un "2". Tal como ha sido explicado en detalle anteriormente, las tablas de direcciones de secciones de código y las tablas de direcciones de desplazamiento de símbolos son utilizadas para localizar secciones de código y símbolos dentro de las secciones de código. Cuando una sección de código temporal es corregida en el software de sistema, los juegos de instrucciones de diagnóstico (912) también actualizan las tablas de direcciones de desplazamiento de símbolos y las tablas de direcciones de sección de código con las direcciones en la sección de código de diagnóstico. Tal como se muestra, la sección de código (1312) sería actualizada con símbolos en la sección de código temporal "Y_1" (1300) para reemplazar los símbolos antagonistas en la sección de código "R_1" (1314).
Sin embargo, es posible que los datos recogidos (1000) no se comparen de forma favorable con las restricciones. Esta comparación desfavorable es una indicación de que el código temporal no es un arreglo satisfactorio para el problema del software de sistema. Entonces, los juegos de instrucciones de diagnóstico (912) ejecutan bibliotecas de símbolos de código temporal alternativas, en el caso de que los datos de sistema recogidos no pasen dicho análisis. El proceso comprueba de forma iterativa las secciones de código temporal hasta que se encuentra una sección de código "buena". Si no se encuentra un código "bueno", el software de sistema continúa funcionando con el código instalado originalmente. Nótese que el arreglo temporal anteriormente mencionado es una herramienta de diagnóstico, sin embargo, el arreglo temporal puede dejarse corregido en el sistema de forma indefinida.
La figura 14 es un diagrama de bloques esquemático, que muestra una solución permanente para los arreglos temporarios establecidos por el sistema de diagnóstico en servicio (900) de la figura 13. Para instrumentar una solución permanente al problema diagnosticado, los juegos de instrucciones de diagnóstico (912) hacen que la colección de actualizaciones de datos de software temporarias y los símbolos de software de sistema redireccionados de forma temporaria sean transmitidos mediante el interfaz de enlace aéreo (902), ver flecha punteada etiquetada con una "l". Tal como se muestra, la información de actualización temporaria es almacenada en la sección de código (1400). La transmisión de los arreglos temporarios permite que el fabricante realice un análisis de la información, de manera que pueda generar una solución global y eficiente. Entonces, se recibe una sección de código actualizado y permanente (1402) con una tabla de direcciones de secciones de código actualizada y una tabla de direcciones de desplazamiento de símbolos actualizada como una nueva PMRTI en la sección de sistema de archivos (906), a través del interfaz de enlace aéreo (902), ver flecha punteada etiquetada con un "2". Los juegos de instrucciones de diagnóstico (912) almacenan la sección de código actualizado (1402) con la tabla de direcciones de sección de código y la tabla de desplazamiento de símbolos actualizadas en almacenamiento permanente. Tal como se muestra, la sección de código actualizado
es almacenada en la sección de almacenamiento de código (908), ver flecha punteada etiquetada con un "3".
Las figuras 15a y 15b son diagramas de flujo de la presente invención, que muestran un método para la ejecución de juegos 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 inferirse 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 funcional. De forma típica, el lanzamiento de un dispositivo de tiempo funcional incluye la invocación a una biblioteca de tiempo funcional de una primera sección de código. El dispositivo de tiempo funcional 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 juegos de instrucciones dinámicas. La recepción de dichos juegos de instrucciones dinámicas en la etapa (1504) incluye la recepción de juegos de instrucciones dinámicas a través de un interfaz seleccionado 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 juego de instrucciones dinámicas en la etapa (1504) incluye la recepción de una instrucción de tiempo funcional de gestión de corrección (PMRTI) en una memoria no volátil de la sección del sistema de archivos.
La etapa (1506) procesa los juegos de instrucciones dinámicas. El procesamiento de dichos juegos 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 juegos de instrucciones dinámicas, elimina dichos juegos 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 funcional de gestión de correcció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 juegos de instrucciones dinámicas en la etapa (1506) incluye subetapas. La etapa (1506a1) utiliza el dispositivo de tiempo funcional para leer el código de operación de la instrucción de tiempo funcional de gestión de correcció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 inicio 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 funcional de gestión de correcció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 en 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 juegos de instrucciones dinámicas en la etapa (1506b1) incluye subetapas adicionales. La etapa (1506b1a) utiliza el dispositivo de tiempo funcional para capturar la longitud de la instrucción de tiempo funcional de gestión de corrección. La etapa (1506b1b) extrae los elementos de datos de la instrucción de tiempo funcional de gestión de corrección, en 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 juego 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 juegos 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 funcional 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 juego 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 juegos 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 juego 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 volátil. El procesamiento de juegos de instrucciones dinámicas en la etapa (1806) incluye subetapas. La etapa (1806a) accede a los datos de lectura-escritura de la memoria 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 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 juego 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 juegos 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 un 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 juego 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 funcional de gestión de correcció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 el diagnóstico en servicio del software de sistema en un dispositivo de comunicaciones sin cables. El método se inicia en la etapa (2100). La etapa (2102) ejecuta el software de sistema. La etapa (2104) lanza un dispositivo de tiempo funcional. La etapa (2106) recibe instrucciones de tiempo funcional de gestión de corrección (PMRTI), incluyendo juegos de instrucciones dinámicas y nuevas secciones de código, en una memoria no volátil de la sección de sistema de archivos. La etapa (2108) procesa los juegos de instrucciones dinámicas para realizar el diagnóstico en servicio del software de sistema. La etapa (2110), en respuesta al diagnóstico en servicio del software de sistema en la etapa (2108), opera sobre los datos de sistema y el software de sistema. A continuación de dicha operación sobre el software de sistema y los datos de sistema en la etapa (2110), la etapa (2112) ejecuta el software de sistema.
Tal como se ha descrito anteriormente, pero no se ha mostrado de forma específica en la figura, la etapa (2101a) dispone el software de sistema en bibliotecas de símbolos, comprendiendo cada biblioteca de símbolos símbolos con funcionalidad relacionada y la etapa (2101b) dispone las bibliotecas de símbolos en secciones de código en la memoria no volátil de la sección de almacenamiento de código.
En algunos aspectos de la invención, la recepción de juegos de instrucciones dinámicas en la etapa (2106) incluye la recepción de juegos de instrucciones de diagnóstico. Además, la recepción de una nueva sección de código incluye la recepción de una sección de código de diagnóstico. Entonces, la etapa (2107) almacena las secciones de código de diagnóstico en un almacenamiento permanente de memoria no volátil, y el procesamiento de los juegos de instrucciones dinámicas en la etapa (2108) incluye el procesamiento del juego de instrucciones de diagnóstico para ejecutar la sección de código de diagnóstico con el software de sistema.
En algunos aspectos de la presente invención, el procesamiento de los juegos de instrucciones de diagnóstico de la etapa (2108) incluye subetapas. La etapa (2108a) recoge datos de sistema. De forma típica, los datos de sistema son recogidos como respuesta a la ejecución de la sección de código de diagnóstico con el software de sistema. En algunos aspectos, la recogida de datos de sistema en la etapa (2108a) incluye la recogida de direcciones y valores de símbolos en la memoria volátil de lectura-escritura. La etapa (2108b) almacena los datos de sistema recogidos en una primera sección de código en la sección de sistema de archivos. La etapa (2108c) utiliza código de operación condicional para analizar los datos recogidos. Entonces, la operación sobre los datos de sistema y software de sistema en la etapa (2110) incluye la actualización de los datos de sistema en respuesta al análisis de los datos recogidos. La ejecución del software de sistema en la etapa (2112) incluye la utilización de datos de sistema actualizados. Debe entenderse que la secuencia de recogida, almacenamiento y análisis de los datos en las etapas (2108a) a (2108c) no se produce necesariamente en el orden descrito. Algunos procesos son iterativos, comportan ciclos de recogida, almacenamiento y análisis. Otro proceso podría analizar los datos y luego almacenarlos. Existen otras variantes de recogida, almacenamiento y análisis, tal como apreciarán las personas especializadas en la técnica.
En algunos aspectos de la presente invención, la recepción de una sección de código de diagnóstico en la etapa (2106) incluye la recepción de juegos predeterminados de datos de sistema actualizados. El procesamiento de los juegos de instrucciones de diagnóstico en la etapa (2108) incluye la selección de un juego de datos de sistema actualizados, y la operación sobre los datos de sistema y el software de sistema en la etapa (2110) incluye la utilización del juego de datos de sistema actualizado y seleccionado para ejecutar el software de sistema.
La figura 22 es un diagrama de flujo que muestra características adicionales del método de la presente invención, mostrado en la figura 21. Por razones de brevedad debe notarse que la mayoría de las etapas descritas en la figura 21 son las mismas que las de la figura 22, y su descripción no será repetida a continuación. La recepción de una sección de código de diagnóstico en la etapa (2106) incluye la recepción de una sección de código de prueba que tenga una serie de bibliotecas de símbolos de código temporal y las restricciones correspondientes. El procesamiento de juegos de instrucciones de diagnóstico en la etapa (2108) incluye la ejecución de un primer código temporal. El análisis de los datos recogidos en la etapa (2108c) incluye la comparación de los datos de sistema, recogidos como respuesta a la ejecución del primer código temporal, con las restricciones correspondientes. La operación sobre los datos de sistema y el software de sistema en la etapa (2110) incluye subetapas. La etapa (2110a) actualiza de forma temporaria los datos de sistema a través de las primeras restricciones de código temporal en el caso de que los datos de sistema recogidos pasen dicho análisis. La etapa (2110b) redirige de forma temporaria los símbolos de software de sistema seleccionados hacia símbolos antagonistas en la primera biblioteca de símbolos de código temporal de la sección de código de diagnóstico. Si los datos de sistema recogidos no pasan el análisis, el procesamiento de los juegos de instrucciones
de diagnóstico en la etapa (2108) incluye la ejecución de bibliotecas de símbolos de código temporal alternativas.
La disposición de las bibliotecas de símbolos en secciones de código en la etapa (2101b) incluye el inicio de las bibliotecas de símbolos en el inicio de las secciones de código, y la disposición de los símbolos desplazados de sus respectivas direcciones de inicio de sección de código. Tal como ha sido mencionado anteriormente en detalle, y por lo tanto no mostrado, la etapa (2101c) almacena el inicio de las secciones de código en las correspondientes direcciones de inicio. La etapa (2101d) mantiene una tabla de direcciones de sección de código incluyendo referencias cruzadas entre los identificadores de sección de código y las direcciones de inicio correspondientes. La etapa (2101e) mantiene una tabla de direcciones de desplazamiento de símbolos que incluye referencias cruzadas entre identificadores de símbolos y las correspondientes direcciones de desplazamiento e identificadores de sección de código. Entonces, la ejecución de bibliotecas de símbolos de código temporal desde las secciones de código de prueba en la etapa (2112) incluye la actualización de la tabla de direcciones de desplazamiento de símbolos y la tabla de direcciones de sección de código con direcciones en la sección de código de diagnóstico.
En algunos aspectos, la recepción de una sección de código de diagnóstico en la etapa (2106) incluye la recepción de una sección de código de prueba con biblioteca de símbolos de código temporal y restricciones organizadas como valores disparadores de datos de sistema. Entonces, el análisis de los datos recogidos en la etapa (2108c) incluye la comparación de datos de sistema, recogidos como respuesta a la ejecución del primer código temporal, con los juegos de valores disparadores de datos de sistema.
La etapa (2114) transmite el juego de actualizaciones de datos de software temporal y redirige de forma temporaria los símbolos de software de sistema a través del interfaz de enlace aéreo. La etapa (2116) recibe una sección de código actualizado (una actualización permanente) con una tabla de direcciones de sección de código actualizada y una tabla de direcciones de desplazamiento de símbolos actualizada en la sección de sistema de archivos. Entonces, el procesamiento de juegos de instrucciones dinámicas en la etapa (2108) incluye el almacenamiento de la sección de código actualizada con la tabla de direcciones de sección de código y la tabla de direcciones de desplazamiento de símbolos actualizadas en almacenamiento permanente.
La figura 23 es un diagrama de flujo que muestra una característica de análisis externa del método de diagnóstico en servicio de la figura 21. Nuevamente, la mayor parte de las etapas de la figura 23 son las mismas que las de la figura 21, y no serán repetidas por razones de brevedad. El procesamiento de juegos de instrucciones de diagnóstico en la etapa (2108) incluye la transmisión de los datos de sistema recogidos mediante un interfaz de enlace aéreo. Después del análisis externo, la etapa (2108d) recibe una nueva instrucción de tiempo funcional de gestión de corrección con una nueva sección de código que incluye datos actualizados. La etapa (2108e) reemplaza una primera sección de código en almacenamiento permanente con la nueva sección de código. Entonces, la ejecución del software de sistema en la etapa (2112) incluye la utilización de la nueva sección de código. En algunos aspectos de la presente invención, la etapa (2118), a continuación del diagnóstico en servicio del software de sistema en la etapa (2108), elimina los juegos de instrucciones (de diagnóstico) dinámicas de la sección de sistema de archivos.
Se han dado a conocer un sistema y un método para la ejecución de juegos de instrucciones dinámicas en un dispositivo de comunicaciones sin cables, para asistir el diagnóstico y/o solución de problemas, como mínimo de forma temporaria, 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 las direcciones de desplazamiento de símbolos en las bibliotecas de símbolos. La utilización de juegos 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 juegos de instrucciones dinámicas.

Claims (34)

1. Método para diagnóstico en servicio de software de sistema en un dispositivo de comunicaciones sin cables, cuyo método comprende:
ejecutar el software del sistema (2102);
poner en servicio un instrumento de tiempo de funcionamiento, capaz de procesar instrucciones de tiempo de funcionamiento del gestor de corrección (2104);
recibir instrucciones de tiempo de funcionamiento del gestor de corrección (2106); y
diagnosticar en servicio el software del sistema procesando las instrucciones de tiempo de funcionamiento del gestor de corrección (2108).
2. Método, según la reivindicación 1, que comprende además:
en respuesta al diagnóstico en servicio del software del sistema, actualizar datos de sistema y software de sistema (2110); y
después de la actualización, ejecutar el software de sistema (2112).
3. Método, según la reivindicación 2, que comprende además:
formar el software de sistema en bibliotecas de símbolos, comprendiendo cada una de dichas bibliotecas símbolos que tienen funcionalidad relacionada;
disponer las bibliotecas de símbolos en secciones de código en una sección de almacenamiento de código de una memoria no volátil; y
de manera que las instrucciones de tiempo de funcionamiento del gestor de corrección (PMRTI) incluyen juegos de instrucciones dinámicas y nuevas secciones de código.
4. Método, según la reivindicación 3, en el que la recepción de conjuntos de instrucciones dinámicas incluye la recepción de conjuntos de instrucciones de diagnóstico, y en el que la recepción de una nueva sección de código comprende la recepción de una sección de código de diagnóstico;
comprendiendo el método además:
el almacenamiento de las secciones de código de diagnóstico en una memoria no volátil de almacenamiento permanente (2107); y
en el que los juegos de instrucciones dinámicas de proceso comprenden el proceso del juego de instrucciones de diagnóstico para ejecutar la sección de código de diagnóstico con el software del sistema (2108).
5. Método, según la reivindicación 4, en el que los juegos de instrucciones de diagnóstico de proceso comprenden la recogida de datos de sistema.
6. Método, según la reivindicación 5, en el que los juegos de instrucciones de diagnóstico de proceso comprenden, en respuesta a la ejecución de la sección de código de diagnóstico con el software del sistema, la recogida de datos del sistema.
7. Método, según la reivindicación 5, en el que la recogida de datos del sistema comprende la recogida de datos del sistema comprende la recogida de las direcciones y valores de símbolos en una memoria volátil de lectura-escritura (2108a).
8. Método, según la reivindicación 5, en el que los juegos de instrucciones de diagnóstico de proceso comprenden el almacenamiento de los datos de sistema recogidos en una primera sección de código en la sección de sistema de archivo (2108b).
9. Método, según la reivindicación 5, en el que los juegos de instrucciones de diagnóstico de proceso comprenden la utilización de código operativo condicional para analizar los datos recogidos (2108c).
10. Método, según la reivindicación 9, en el que la operativa en los datos del sistema y software del sistema comprende la actualización de los datos del sistema en respuesta al análisis de los datos recogidos; y
en el que la ejecución del software del sistema incluye la utilización de los datos del sistema actualizados.
11. Método, según la reivindicación 6, en el que la recepción de una sección de código de diagnóstico incluye la recepción de juegos predeterminados de datos de sistema actualizados;
en el que los juegos de instrucciones de diagnóstico de proceso incluyen la selección de una juego de datos de sistema actualizados; y
en el que la operativa con los datos de sistema y software de sistema comprende la utilización del juego de datos de sistema actualizados seleccionados para ejecutar el software del sistema.
12. Método, según la reivindicación 11, en el que la recepción de una sección de código de diagnóstico incluye la recepción de una sección de código de prueba que tiene una serie de bibliotecas de símbolo de código temporal y limitaciones correspondientes;
en el que los juegos de instrucciones de diagnóstico de proceso incluyen la ejecución de un primer código temporal;
en el que el análisis de los datos recogidos incluye la comparación de datos de sistema, recogidos en respuesta a la ejecución del primer código temporal, a las limitaciones correspondientes;
en el que la operativa con los datos de sistema y el software de sistema incluye:
actualización temporal de los datos de software por las primeras limitaciones de código temporal si los datos del sistema recogidos pasan el análisis (2110a); y
redirección temporal de símbolos de software de sistema seleccionados a símbolos antagonistas en la primera biblioteca de símbolos de código temporal de la sección de código de diagnóstico (2110b); y
en el que los juegos de instrucciones de diagnóstico de proceso incluyen la ejecución de bibliotecas de símbolos de código temporal alternativos si los datos de sistema recogidos no pasan el análisis.
13. Método, según la reivindicación 12, en el que la disposición de las bibliotecas de símbolos en secciones de código comprende poner en marcha las bibliotecas de símbolos de inicio en el inicio de las secciones de código y disponer símbolos para su desplazamiento con respecto a sus direcciones correspondientes de inicio de la sección de código;
comprendiendo además el método:
el almacenamiento del inicio de las secciones de código en correspondientes direcciones de inicio;
mantener una tabla de direcciones de sección de código que efectúa el referenciado cruzado de identificadores de sección de código con las correspondientes direcciones de inicio;
mantener una tabla de direcciones de desplazamiento de símbolos que efectúa la referencia cruzada de identificadores de símbolos con correspondientes direcciones de desplazamiento y correspondientes identificadores de sección de código; y
en el que la ejecución de bibliotecas de símbolos de código temporales a partir de secciones de código de prueba incluye la actualización de la tabla de direcciones de desplazamiento de símbolos y la tabla de direcciones de la sección de código con direcciones en la sección de código de diagnóstico.
14. Método, según la reivindicación 13, en el que la recepción de una sección de código de diagnóstico incluye la recepción de una sección de código de prueba con biblioteca de símbolos de código temporales y limitaciones organizadas como valores de puesta en marcha de datos del sistema; y
en el que el análisis de los datos recogidos comprende la comparación de datos de sistema, recogidos como respuesta a la ejecución del primer código temporal, a los juegos de valores de inicio de los datos del sistema.
15. Método, según la reivindicación 13, que comprende además:
la transmisión de la recogida de actualizaciones de datos de software temporales y símbolos de software de sistema redireccionados temporalmente con intermedio de un interfaz inalámbrico (2114);
recibir una sección de código actualizada con una tabla de direcciones de sección de código actualizada y una tabla de direcciones de desplazamiento de símbolos actualizada en la sección de sistema de archivo (2116); y
en el que el proceso de los juegos de instrucciones de diagnóstico incluye el almacenamiento de la sección de código actualizada con la tabla de direcciones de sección de código actualizadas y tablas de direcciones de desplazamiento de símbolos en almacenamiento permanente.
16. Método, según la reivindicación 8, en el que los juegos de instrucciones de diagnóstico de proceso incluyen la transmisión de los datos de sistema recogidos con intermedio de un interfaz sin cables;
comprendiendo además el método:
la recepción de una nueva instrucción de tiempo de ejecución de gestor de corrección con una nueva sección de código incluyendo datos actualizados (2108d);
sustituir una primera sección de código en almacenamiento permanente con la nueva sección de código (2108e); y
ejecutar el software de sistema utilizando la nueva sección de código (2112).
17. Método, según la reivindicación 3, que comprende además:
seguir el diagnóstico en servicio del software de sistema, eliminando los juegos de instrucciones dinámicas de la sección de sistema de archivo (2118).
18. Método, según la reivindicación 1, en el que la recepción comprende la recepción de instrucciones de tiempo de ejecución del gestor de corrección (PMRTI), incluyendo juegos de instrucciones dinámicas y nuevas secciones de código, en una memoria no volátil de la sección de sistema de archivo; y
en el que el proceso de las instrucciones de tiempo de ejecución del gestor de corrección comprende el proceso de juegos de instrucciones dinámicas para diagnosticar en servicio el software de sistema del modo siguiente:
ejecutar los juegos de instrucciones de diagnóstico con el software de sistema para recoger datos;
analizar los datos recogidos;
como respuesta al análisis de los datos recogidos, operar en datos de sistema y software de sistema; y
después de operar con el software de sistema y datos de sistema, ejecutar el software de sistema.
19. Sistema para diagnóstico en servicio del software de sistema en un dispositivo de comunicaciones sin cables, cuyo sistema comprende:
software de sistema ejecutable y datos de sistema diferenciados en secciones de código almacenadas en una memoria no volátil (904);
juegos de instrucciones de tiempo de ejecución de gestor de corrección (914) para diagnosticar el software de sistema en servicio; y
un instrumento de tiempo de ejecución (916) capaz de procesar juegos de instrucciones de tiempo de ejecución del gestor de corrección.
20. Sistema, según la reivindicación 19, en el que los juegos de instrucciones (914) de tiempo de ejecución del gestor de corrección comprenden juegos de instrucciones dinámicas (910) de diagnóstico en servicio configurados para operar en base a datos del sistema y software del sistema; y
en el que el software del sistema es ejecutado siguiendo las operaciones en el software del sistema y datos del sistema por los juegos de instrucciones dinámicas (910).
21. Sistema, según la reivindicación 20, en el que el software del sistema está formado en bibliotecas de símbolos, comprendiendo cada biblioteca de símbolos, símbolos que tienen una funcionalidad relacionada, dispuestos en secciones de código en una memoria no volátil de sección de almacenamiento de código, comprendiendo además el sistema:
una sección de sistema de archivo (906) de una memoria no volátil (918) que recibe instrucciones de tiempo de ejecución del gestor de corrección (PMRTI) (914), en el que el PMRTI incluye juegos de instrucciones dinámicas (910) y nuevas secciones de código (912).
22. Sistema, según la reivindicación 21, en el que la sección de sistema de archivo (906) recibe un juego de instrucciones de diagnóstico (910) y una sección de código de diagnóstico (912);
en el que la sección (912) de código de diagnóstico es almacenada en la memoria no volátil (918); y
en el que el juego de instrucciones de diagnóstico (910) ejecuta la sección (912) de código de diagnóstico con el software de sistema.
23. Sistema, según la reivindicación 22, en el que los juegos (910) de instrucciones de diagnóstico recogen datos de sistema.
24. Sistema, según la reivindicación 23, en el que los juegos (910) de instrucciones de diagnóstico recogen datos de sistema como respuesta a la ejecución de la sección de código de diagnóstico (912) con el software de siste-
ma.
25. Sistema, según la reivindicación 23, que comprende además:
una memoria volátil de lectura-escritura (1002); y
en el que los juegos (910) de instrucciones de diagnóstico recogen las direcciones y valores de símbolos almacenados en la memoria volátil de lectura-escritura (1002).
26. Sistema, según la reivindicación 23, en el que los juegos de instrucciones de diagnóstico (910) almacenan los datos de sistema recogidos en una primera sección de código (1000) en la sección de sistema de archivo (906).
27. Sistema, según la reivindicación 23, en el que los juegos (910) de instrucciones de diagnóstico utilizan juegos de instrucciones de diagnóstico condicional para analizar los datos recogidos.
28. Sistema, según la reivindicación 27, en el que los datos de sistema son actualizados como respuesta al análisis de los datos recogidos, y el software de sistema es ejecutado utilizado los datos de sistema actualizados.
29. Sistema, según la reivindicación 24, en el que la sección de código de diagnóstico (912) comprende juegos predeterminados de datos de sistema actualizados (1200, 1202, 1204);
en el que los juegos de instrucciones dinámicas de diagnóstico (910) seleccionan un juego de datos de sistema actualizado (1200, 1202, 1204); y
en el que el software de sistema ejecuta utilizando el juego de datos actualizados de sistema, que se han seleccionado (1200, 1202, 1204).
30. Sistema, según la reivindicación 29, en el que la sección de código de diagnóstico (912) comprende una serie de bibliotecas de símbolo de código temporal (1300, 1302, 1304) y limitaciones correspondientes (1306, 1308, 1310);
en el que los juegos (910) de instrucciones de diagnóstico ejecutan un primer código temporal y comparan datos de sistema, recogidos como respuesta a la ejecución del primer código temporal, a las correspondientes limita-
ciones;
en el que los datos de sistema son actualizados temporalmente por las primeras limitaciones de código temporal si los datos de sistema recogidos pasan el análisis, y en el que el software de sistema redirige temporalmente símbolos de software de sistema seleccionados a símbolos antagonistas en la primera biblioteca de símbolos de código temporal de la sección de código de diagnóstico; y
en el que los juegos de instrucciones de diagnóstico ejecutan bibliotecas de símbolos de código temporal alternativo si los datos de sistema recogidos no pasan el análisis.
31. Sistema, según la reivindicación 30, en el que el software de sistema comprende bibliotecas de símbolos que se inician en el inicio de las secciones de código, símbolos dispuestos para su desplazamiento de sus respectivas direcciones de inicio de la sección de código, y siendo almacenado el inicio de las secciones de código en correspondientes direcciones de inicio;
comprendiendo además el sistema:
una tabla de direcciones de la sección de código (326) que efectúa la referencia cruzada de identificadores de la sección de código con correspondientes direcciones de inicio;
una tabla de direcciones de desplazamiento de símbolos (328) que efectúa la referencia cruzada de identificadores de la sección de código con las correspondientes direcciones de desplazamiento e identificadores de direcciones de desplazamiento y correspondientes identificadores de sección de código; y
en el que los juegos (910) de instrucciones de diagnóstico actualizan la tabla (328) de direcciones de desplazamiento de símbolos y la tabla (326) de direcciones de sección de código con direcciones en la sección de código de diagnóstico (912).
32. Sistema, según la reivindicación 31, en el que la sección (912) de código de diagnóstico incluye limitaciones organizadas como valores de inicio de datos del sistema;
en el que los juegos de instrucciones de diagnóstico (910) analizan los datos recogidos por comparación de datos del sistema, recogidos como respuesta a la ejecución del primer código temporal, a los juegos de valores de inicio de datos del sistema.
33. Sistema, según la reivindicación 31, que comprende además:
un interfaz inalámbrico (902);
en el que los juegos de instrucciones de diagnóstico (910) transmiten la recogida de actualizaciones de datos de software temporal y símbolos de software de sistema redireccionados temporalmente, con intermedio del interfaz inalámbrico (902), y recibe una sección de código actualizada con una tabla de direcciones de sección de código actualizada y una tabla de direcciones de desplazamiento de símbolos actualizada en la sección de sistema de archivo con intermedio del interfaz inalámbrico (902); y
en el que los juegos de instrucciones de diagnóstico (910) almacenan la sección de código actualizada con una tabla de direcciones de sección de código actualizada y una tabla de desplazamiento de símbolos en almacenamiento permanente.
34. Sistema, según la reivindicación 26, que comprende además:
un interfaz inalámbrico (902) para transmitir los datos de sistema recogidos por los juegos de instrucciones de diagnóstico (910); y
una nueva instrucción de tiempo de ejecución del gestor de corrección con una nueva sección de código (912) que comprende datos actualizados recibidos con intermedio del interfaz inalámbrico (902);
en el que los juegos de instrucciones de diagnóstico sustituyen una primera sección de código en almacenamiento permanente con la nueva sección de código; y
en el que el software de sistema es ejecutado utilizando la nueva sección de código.
ES02749163T 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. Expired - Lifetime ES2263796T3 (es)

Applications Claiming Priority (11)

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

Publications (1)

Publication Number Publication Date
ES2263796T3 true ES2263796T3 (es) 2006-12-16

Family

ID=27542295

Family Applications (9)

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

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES02749158T Expired - Lifetime ES2300454T3 (es) 2001-07-26 2002-07-22 Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno.
ES02749167T Expired - Lifetime ES2249602T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
ES02749166T Expired - Lifetime ES2299587T3 (es) 2001-07-26 2002-07-23 Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno.

Family Applications After (5)

Application Number Title Priority Date Filing Date
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.
ES02762622T Expired - Lifetime ES2253553T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas.
ES02751472T Expired - Lifetime ES2263799T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para comunicacion telefonica punto por punto.
ES05018919T Expired - Lifetime ES2284112T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.
ES02741113T Expired - Lifetime ES2248568T3 (es) 2001-07-26 2002-07-25 Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles.

Country Status (9)

Country Link
EP (12) EP1410189B1 (es)
JP (11) JP2005505813A (es)
KR (10) KR100940180B1 (es)
CN (10) CN1288553C (es)
AT (9) ATE387658T1 (es)
AU (9) AU2002319568A1 (es)
DE (7) DE60205755T2 (es)
ES (9) ES2300454T3 (es)
WO (10) WO2003010663A2 (es)

Families Citing this family (40)

* 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 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
US7644404B2 (en) 2003-06-04 2010-01-05 Hewlett-Packard Development Company, L.P. Network having customizable generators and electronic device 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 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법
CA2565317C (en) * 2004-05-18 2011-08-30 Kyocera Wireless Corp. Modular data components for wireless communication devices
GB2416876B (en) * 2004-08-03 2007-01-10 Nec Technologies Export file processing within a mobile radio communications device
US7512939B2 (en) * 2004-10-05 2009-03-31 Neopost Technologies System and method of secure updating of remote device software
EP1659810B1 (en) * 2004-11-17 2013-04-10 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Updating configuration parameters in a mobile terminal
US12149618B2 (en) 2005-01-27 2024-11-19 The Chamberlain Group Llc Method and apparatus to facilitate transmission of an encrypted rolling code
USRE48433E1 (en) 2005-01-27 2021-02-09 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
US9148409B2 (en) 2005-06-30 2015-09-29 The Chamberlain Group, Inc. Method and apparatus to facilitate message transmission and reception using different transmission characteristics
US8422667B2 (en) 2005-01-27 2013-04-16 The Chamberlain Group, Inc. Method and apparatus to facilitate transmission of an encrypted rolling code
EP1803313A4 (en) * 2005-04-18 2007-10-31 Research In Motion Ltd METHOD AND SYSTEM FOR ORDERING 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 中兴通讯股份有限公司 一种通信系统软件版本的平滑升级方法
JP5018768B2 (ja) * 2006-03-10 2012-09-05 富士通株式会社 適用パッチ選別装置及び適用パッチ選別方法
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 주식회사 케이티 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템
KR20110135989A (ko) 2009-04-07 2011-12-20 센션트 컬러스 엘엘씨 자가-분산 입자 및 그의 제조 및 사용 방법
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
CN104871140B (zh) * 2012-11-09 2018-06-19 相干逻辑公司 对于多处理器系统的实时分析和控制
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株式会社 情報処理装置、プログラム更新システム、及びプログラム更新方法
US11588924B2 (en) * 2020-10-29 2023-02-21 Hewlett Packard Enterprise Development Lp Storage interface command packets over fibre channel with transport and network headers as payloads

Family Cites Families (33)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2249602T3 (es) Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables.
US6918108B2 (en) System and method for field diagnosis of wireless communications device system software
JP5323187B2 (ja) 安全なモバイル環境におけるアプリケーションアクセス方法
ES2743045T3 (es) Sistema para acceder a un terminal de PDV, método para descargar y actualizar aplicaciones y método para llevar a cabo una operación electrónica usando un sistema de ese tipo
JP4855495B2 (ja) 無線パラメータデータ及び無線規制データへの構内接続及び遠隔接続、並びにその方法。
US8712407B1 (en) Multiple secure elements in mobile electronic device with near field communication capability
US8630747B2 (en) Alternative authorization for telematics
CN101965597B (zh) 用于安装和取回已链接的mifare应用的方法和设备
US20030033525A1 (en) System and method for improved security in handset reprovisioning and reprogramming
CN110851163B (zh) 一种基于can通信的兼容多设备平台的软件更新方法
KR20080098551A (ko) 통신 단말, 사용자 데이터 이동 시스템 및 사용자 데이터 이동 방법
KR20060044228A (ko) 스마트폰을 이용한 전자제품 펌웨어 업그레이드 시스템 및방법
EP2174481B1 (en) Method, server and mobile communication device for managing unique memory device identifications
KR100653280B1 (ko) 어플리케이션의 업데이트 가능한 휴대전화 및 업데이트 방법
US8844827B2 (en) Chip card, and method for the software-based modification of a chip card
US20100179980A1 (en) Cache system for mobile communications devices
US9554268B2 (en) System and method for updating persistent data in a wireless communications device
JP4253021B2 (ja) 携帯端末
CN101197959B (zh) 一种终端的控制方法、系统和设备
US20060080655A1 (en) System and method for post-issuance code update employing embedded native code
CN115499820A (zh) 一种eSIM空中写号系统及方法
KR100608286B1 (ko) 휴대폰을 통한 무선인터넷 접속 방법
JP2017021443A (ja) 電子情報記憶媒体、情報処理方法及び代表アプリケーション
CN121143843A (zh) 智能卡操作系统升级方法、装置、设备、存储介质及产品
KR100429628B1 (ko) 가전기기 제어데이터 업그레이드 시스템 및 그 방법