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
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.
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.
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.
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.
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
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).
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).
(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).
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.
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".
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.
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.
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;
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.
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)
| 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)
| 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 |
-
2002
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active Expired - Fee Related
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Ceased
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en not_active Ceased
- 2002-07-22 EP EP02749158A patent/EP1410189B1/en not_active Expired - Lifetime
- 2002-07-22 AU AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 CN CNB028148312A patent/CN1275149C/zh not_active Expired - Fee Related
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active Expired - Fee Related
- 2002-07-22 EP EP02749157A patent/EP1410188A2/en not_active Withdrawn
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en not_active Ceased
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-22 EP EP02749161A patent/EP1410191A2/en not_active Withdrawn
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active Expired - Fee Related
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 KR KR1020047000726A patent/KR100913659B1/ko not_active Expired - Fee Related
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en not_active Ceased
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749167A patent/EP1410193B1/en not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en not_active Ceased
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 EP EP02749159A patent/EP1410190B1/en not_active Expired - Lifetime
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 KR KR1020047000718A patent/KR100913658B1/ko not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active Expired - Fee Related
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 EP EP05021081A patent/EP1610222B1/en not_active Expired - Lifetime
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active Expired - Fee Related
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP02749166A patent/EP1410192B1/en not_active Expired - Lifetime
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en not_active Ceased
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP02749163A patent/EP1410209B1/en not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/en not_active Ceased
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 JP JP2003515970A patent/JP4073399B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 JP JP2003518153A patent/JP4101752B2/ja not_active Expired - Fee Related
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active Expired - Fee Related
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en not_active Ceased
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 2002-07-25 EP EP05018919A patent/EP1601217B1/en not_active Expired - Lifetime
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en not_active Ceased
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 EP EP02751472A patent/EP1423959B1/en not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active Expired - Fee Related
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002906 patent/WO2003010942A2/en not_active Ceased
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 KR KR1020047001087A patent/KR100932058B1/ko not_active Expired - Fee Related
- 2002-07-25 EP EP02741113A patent/EP1410665B1/en not_active Expired - Lifetime
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
- 2002-07-25 EP EP02762622A patent/EP1425894B1/en not_active Expired - Lifetime
- 2002-07-25 CN CNB02814841XA patent/CN1250035C/zh not_active Expired - Fee Related
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
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) | 가전기기 제어데이터 업그레이드 시스템 및 그 방법 |