ES2299587T3 - Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. - Google Patents
Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. Download PDFInfo
- Publication number
- ES2299587T3 ES2299587T3 ES02749166T ES02749166T ES2299587T3 ES 2299587 T3 ES2299587 T3 ES 2299587T3 ES 02749166 T ES02749166 T ES 02749166T ES 02749166 T ES02749166 T ES 02749166T ES 2299587 T3 ES2299587 T3 ES 2299587T3
- Authority
- ES
- Spain
- Prior art keywords
- section
- code
- new
- sections
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004891 communication Methods 0.000 title claims abstract description 32
- 230000015654 memory Effects 0.000 claims abstract description 164
- 238000004458 analytical method Methods 0.000 claims abstract description 3
- 239000000725 suspension Substances 0.000 claims description 2
- 230000006837 decompression Effects 0.000 claims 1
- 239000007858 starting material Substances 0.000 claims 1
- 238000005056 compaction Methods 0.000 description 36
- 230000004044 response Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004513 sizing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
- Sub-Exchange Stations And Push- Button Telephones (AREA)
- Information Transfer Between Computers (AREA)
- Circuits Of Receivers In General (AREA)
- Selective Calling Equipment (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un método para reorganizar una nueva sección de códigos (450, 452, 474) en al menos una sección de códigos actual (302, 304, 306, 308, 344) almacenada en bloques diferenciados (400, 402, 404, 406, 460) de una memoria permanente (108) ejecutados en un dispositivo inalámbrico de comunicación (104), comprendiendo dicho método: la recepción de una actualización de software (102) mediante una red de comunicación inalámbrica; el análisis sintáctico de la actualización del software (102) para obtener una nueva sección de códigos (450, 452, 474); la determinación de un tamaño de la nueva sección de códigos (450, 452, 474); la identificación de un bloque (400, 402, 404, 406, 460) de memoria permanente (108) para almacenar la nueva sección de códigos (450, 452, 474), en el que el bloque (400, 402, 404, 406, 460) de memoria permanente (108) tiene una primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414), en el que el paso identificador también comprende la adjudicación de un nuevo bloque (400, 402, 404, 406, 460) de memoria permanente (108), en el que el paso adjudicador también comprende la identificación de una o más secciones de códigos actuales (302, 304, 306, 308, 344) que comprenden una biblioteca de símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) y una porción sin utilizar (340, 346), en el que la sección de códigos actual (302, 304, 306, 308, 344) comienza en una segunda dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) de un segundo bloque (400, 402, 404, 406, 460) de memoria permanente (108) y la porción sin utilizar (340, 346) finaliza en la dirección final del segundo bloque (400, 402, 404, 406, 460) de memoria permanente (108); la determinación de una tercera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) para la porción sin utilizar (340, 346), en el que la determinación de la tercera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) comprende la lectura de un símbolo procedente de la biblioteca de símbolos (310, 312, 314, 316, 326, 323, 330, 332, 334, 336, 342) y, utilizando dicho símbolo, la determinación de una segunda dirección final para la biblioteca de símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) de la sección de códigos actual (302, 304, 306, 308, 344); y la adjudicación de una porción designada de la memoria permanente (108) entre la tercera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) para la porción sin utilizar (340, 346) y la dirección final del segundo bloque de memoria al nuevo bloque de memoria (400, 402, 404, 406, 460); la escritura de la nueva sección de códigos (450, 452, 474) en el nuevo bloque de memoria (400, 402, 404, 406, 460), en el que la nueva sección de códigos (450, 452, 474) empieza en la primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) del nuevo bloque de memoria; y la actualización de una tabla de direcciones de secciones de códigos (326) para añadir una anotación que comprende un identificador de la nueva sección de códigos (450, 452, 474) y la primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414), en el que el identificador y la primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) están relacionados.
Description
Sistema y método para compactar secciones de
códigos en el software de un dispositivo de comunicación inalámbrico
actualizable sobre el terreno.
Este invento se relaciona con los dispositivos
inalámbricos de comunicaciones en general, y más particularmente
con un sistema y un método para compactar secciones de códigos en el
software del sistema de un dispositivo inalámbrico de comunicación
sobre el terreno, actualizado mediante una interfaz de enlace
aéreo.
No es inusual la distribución de actualizaciones
de software para teléfonos que ya están en funcionamiento. Estas
actualizaciones pueden estar relacionadas con problemas de software
detectados cuando los teléfonos ya se han fabricado y distribuido
al público. Algunas actualizaciones pueden incluir la incorporación
de nuevas características al teléfono, o bien funciones facilitadas
por el proveedor de servicios. Otras, en cambio, pueden afectar a
problemas de índole regional o a dificultades asociadas a ciertos
portadores de la señal telefónica. Así, por ejemplo, en
determinadas regiones, la estructuración de los portadores de la
señal puede imponer condiciones de interfaz en los enlaces aéreos
que ocasionan comportamientos imprevistos del microteléfono, como
fallos en la búsqueda de canales, fallos en la conclusión de las
llamadas, fallos del sonido, etc.
Tradicionalmente, estas actualizaciones se han
abordado recogiendo el dispositivo inalámbrico de comunicación, que
en este documento también se denomina dispositivo inalámbrico,
teléfono o microteléfono, y entregándolo en el establecimiento de
venta/servicio más próximo del portador de la señal, o del
fabricante, para incorporarle los cambios. Los costes inherentes a
estas actualizaciones son altos y perjudiciales para la rentabilidad
de las empresas. Además, es probable que las molestias ocasionadas
desagraden a los clientes. Muy a menudo, la solución más práctica
consiste en entregar teléfonos nuevos a los usuarios.
Sería ventajoso que el software del dispositivo
inalámbrico de comunicación pudiera actualizarse con poco dispendio
y sin causar molestias al cliente.
Sería ventajoso que el software del dispositivo
inalámbrico de comunicación pudiera actualizarse sin que el cliente
tuviera que renunciar al uso de su teléfono durante un tiempo
considerable.
Sería ventajoso que el software del dispositivo
inalámbrico de comunicación pudiera actualizarse con mínima
intervención del personal técnico, o sin necesidad de enviar el
dispositivo a un centro de servicio. Sería ventajoso que el
software del dispositivo inalámbrico de comunicación pudiera
diferenciarse en diversas secciones de códigos, a fin de actualizar
el software del sistema reemplazando únicamente determinadas
secciones de códigos del mismo. Sería ventajoso que estas secciones
de códigos pudieran comunicarse al dispositivo inalámbrico a través
del enlace
aéreo.
aéreo.
La descarga de actualizaciones de software a
través de una interfaz aérea se describe en el documento
WO-00/74.412 (Telefonaktiebolaget LM Ericsson) del
19 de mayo de 2000 (19-05-2000). En
el documento WO-93/00633 (PURE SOFTWARE, INC.) del
5 de junio de 1992 (05-06-92) se
describe un programa de ampliación de un código objeto que inserta
nuevos datos e instrucciones entre datos e instrucciones
preexistentes de un código objeto.
Sería ventajoso que el software del sistema
pudiera actualizarse con secciones de códigos de mayor tamaño que
las secciones de códigos ya instaladas. También sería ventajoso que
el software del sistema pudiera reorganizarse para adaptarlo al
mayor tamaño de estas secciones de códigos actualizadas.
Las actualizaciones del software del dispositivo
inalámbrico de comunicación ofrecen al cliente mejoras en cuanto al
producto y a la experiencia de uso. Un componente costoso de la
explotación comercial es la recogida de los microteléfonos para
actualizar el software. Estas actualizaciones pueden ser necesarias
para ofrecer nuevos servicios al usuario o a fin de abordar
problemas descubiertos en el uso del teléfono ya fabricado. El
presente invento permite actualizar de manera práctica el software
del microteléfono en poder del usuario, a través de una interfaz de
enlace aéreo, cuando el tamaño de las secciones de códigos
actualizadas es superior al de las secciones de códigos que se
sustituyen.
Para tal fin, el presente invento aporta un
método para reorganizar una nueva sección de códigos,
transformándola en al menos una sección de códigos actuales y un
sistema correspondiente con las características descritas en las
reivindicaciones 1 y 11, respectivamente. Otras formas de
realización se describen en las reivindicaciones
depen-
dientes.
dientes.
Seguidamente se describen otros detalles del
método antes mencionado para reorganizar instrucciones de software
en el software del sistema de dispositivos inalámbricos, y de un
sistema de dispositivo inalámbrico para reorganizar las
instrucciones de software.
\vskip1.000000\baselineskip
La figura 1 es un diagrama esquemático de
bloques que abarca la totalidad del sistema de mantenimiento del
software incorporado a un dispositivo inalámbrico;
La figura 2 es un diagrama esquemático de
bloques, que abarca el sistema de mantenimiento del software y
destaca la instalación de juegos de instrucciones a través de la
interfaz de enlace aéreo;
La figura 3 es un diagrama esquemático de
bloques, que describe el sistema del presente invento para
reorganizar las instrucciones de software en un dispositivo
inalámbrico de comunicación;
La figura 4 es un diagrama esquemático de
bloques correspondiente a la memoria del dispositivo
inalámbrico;
La figura 5 es una tabla representativa de la
tabla de direcciones de secciones de códigos de la figura 3;
La figura 6 es una descripción detallada de la
biblioteca de símbolos Nº 1 que aparece en la figura 3, con
símbolos;
La figura 7 es una tabla representativa de la
tabla de direcciones de compensación de símbolos de la figura
3;
La figura 8 es un diagrama esquemático de
bloques que presenta los resultados del ejemplo de compactación;
Las figuras 9a a 9e presentan el funcionamiento
de un ejemplo de programa de compactación;
Las figuras 10a y 10b son un diagrama de flujo
que describe el método del presente invento para reorganizar
instrucciones de software almacenadas en una memoria de dispositivo
inalámbrico de comunicación;
La figura 11 es un diagrama de flujo que
describe otro aspecto del método presentado en las figuras 10a y
10b.
\vskip1.000000\baselineskip
Algunas partes de las siguientes descripciones
detalladas se presentan como procedimientos, pasos, bloques
lógicos, códigos, tratamiento y demás representaciones simbólicas de
operaciones en bits de datos, dentro de un microprocesador o
memoria de dispositivo inalámbrico. Estas descripciones y
representaciones son el medio utilizado por los expertos en
tecnologías de tratamiento de datos para transmitir con la máxima
eficacia la esencia de su trabajo a otros expertos. En este
documento, y en general, se considera que un procedimiento, un paso
ejecutado por un microprocesador, una aplicación, un bloque lógico,
un proceso, etc., es una secuencia autocoherente de pasos o
instrucciones conducentes a un resultado deseado. Son "pasos"
los que requieren la manipulación física de cantidades físicas.
Habitualmente, aunque no sea necesario, estas cantidades adoptan la
forma de señales eléctricas o magnéticas almacenables,
transferibles, combinables, comparables y en general manipulables
en un dispositivo inalámbrico basado en un microprocesador. En
ocasiones, principalmente debido a su uso común, se ha demostrado
la conveniencia de referirse a estas señales como bits, valores,
elementos, símbolos, caracteres, números y otras denominaciones
similares. Los dispositivos físicos mencionados, por ejemplo una
memoria, se acoplan a otros dispositivos físicos a través de un bus
u otras conexiones eléctricas. Puede considerarse que estos
dispositivos físicos interactúan con aplicaciones o procesos lógicos
y que, por tanto, están "conectados" a operaciones lógicas.
Así, por ejemplo, una memoria puede almacenar un código o acceder a
él para promover una operación lógica, o una aplicación puede
recuperar de la memoria una sección de códigos con el fin de
ejecutarla.
No obstante, deberá tenerse presente que todos
estos términos y otros similares han de asociarse a las cantidades
físicas apropiadas y que sólo son denominaciones convenientes
aplicadas a dichas cantidades. Salvo indicación distinta en las
discusiones siguientes, se entiende que, en toda la descripción del
presente invento, las discusiones que utilicen los términos
"tratamiento", "conexión", "traducción/traslado",
"visualización/presentación", "inducción",
"determinación", "reconocimiento" o similares se refieren
a la acción y a los procesos de un sistema de microprocesador de
dispositivo inalámbrico que manipula datos representados como
cantidades físicas (electrónicas) dentro de los registros y memorias
del sistema informático, transformándolos en otros datos
similarmente representados como cantidades físicas en el interior de
las memorias, los registros u otros dispositivos semejantes que
almacenan, transmiten o visualizan información.
La figura 1 es un diagrama esquemático de
bloques que abarca la totalidad del sistema de mantenimiento del
software de dispositivo inalámbrico 100. La organización del
software del sistema del presente invento se explica detalladamente
a continuación, tras una consideración general del sistema de
mantenimiento de software 100. El sistema general 100 describe un
procedimiento para transmitir actualizaciones del software del
sistema y juegos de instrucciones (programas), e instalar el
software transmitido en un dispositivo inalámbrico. Las
actualizaciones del software del sistema o las instrucciones en
tiempo de ejecución del gestor de parches (instrucciones PMRTI),
más generalmente conocidas como juegos de instrucciones, están
producidos por el fabricante de los microteléfonos. El software del
sistema se organiza en bibliotecas de símbolos. A su vez, las
bibliotecas de símbolos se disponen en secciones de códigos. Cuando
hay que actualizar bibliotecas de símbolos, la actualización de
software 102 se transporta en forma de una o más secciones de
códigos. La actualización del software se transmite a los
dispositivos inalámbricos que tienen los usuarios, de los cuales el
dispositivo inalámbrico de comunicaciones 104 es un ejemplo
representativo, o mediante comunicaciones separadas procedentes de
una estación base 106 que utiliza versiones muy conocidas de
protocolos para transporte de mensajes o datos por medios aéreos
convencionales. El presente invento no se limita a ningún formato de
transporte en particular, ya que el dispositivo inalámbrico de
comunicación puede modificarse fácilmente para trabajar con
cualquier protocolo de transmisión aérea disponible a efectos de
recepción de las actualizaciones del software del sistema y de las
instrucciones PMRTI.
El software del sistema puede considerarse que
es una agrupación de diferentes subsistemas. Los códigos objeto
pueden acoplarse perfectamente a uno de estos subsistemas
abstractos, dando origen a una agrupación definible como biblioteca
de símbolos. Así se obtiene un desglose lógico del código base,
pudiendo asociarse los parches y arreglos del software a una de
estas bibliotecas de símbolos. En la mayoría de los casos, cada
actualización se asocia a una sola biblioteca de símbolos, o como
mucho a dos. En el resto del código base y en las demás bibliotecas
de símbolos, no hay cambios. El concepto de las bibliotecas de
símbolos aporta un mecanismo para tratar con los códigos y las
constantes. Los datos de lectura-escritura (RW), por
otra parte, encajan en una biblioteca exclusiva de
lectura-escritura individual que contiene datos para
todas las bibliotecas, basados en una memoria de acceso aleatorio
(RAM).
Una vez recibida por el dispositivo inalámbrico
104, la sección de código transportada debe procesarse. Este
dispositivo inalámbrico sobrescribe una sección de código
determinada de la memoria permanente 108. La memoria permanente 108
comprende una sección de sistema de archivos 110 y una sección de
almacenamiento de códigos 112. La sección de códigos suele
comprimirse antes del transporte, para minimizar la ocupación de la
sección de sistema de archivos 110. Es frecuente que la sección de
códigos actualizados vaya acompañada de sus datos de
lectura-escritura, otro tipo de biblioteca de
símbolos que contiene todos los datos de
lectura-escritura para cada biblioteca de símbolos.
Aunque los datos de lectura-escritura se cargan en
la memoria de lectura-escritura volátil de acceso
aleatorio 114 al ejecutarse el software del sistema, siempre
necesitan almacenarse en la memoria permanente 108, para poder
cargarlos en la memoria de lectura-escritura volátil
de acceso aleatorio 114 cada vez que se restablezca el dispositivo
inalámbrico. Esto incluye la primera vez que los datos de
lectura-escritura se cargan en la memoria de
lectura-escritura volátil de acceso aleatorio. Como
se explicará con amplitud más adelante, normalmente los datos de
lectura-escritura se disponen con ayuda de una
sección de códigos de gestor de parches.
El sistema 100 comprende el concepto de las
tablas virtuales. Utilizando estas tablas, las bibliotecas de
símbolos de una sección de códigos pueden parchearse (reemplazarse)
sin romper (reemplazar) otras partes del software del sistema
(aparte de las secciones de códigos). Para una mayor eficacia, las
tablas virtuales se ejecutan a partir de la memoria de
lectura-escritura volátil de acceso aleatorio 114.
Una tabla de direcciones de secciones de códigos y una tabla de
direcciones de compensación de símbolos son tablas virtuales.
Las secciones de códigos actualizados llegan al
dispositivo inalámbrico 104 y se almacenan en la sección de sistema
de archivos 110. Normalmente, una interfaz de usuario del
dispositivo inalámbrico comunica al usuario la llegada del nuevo
software. En respuesta a las indicaciones de la interfaz, el usuario
acusa recibo de la notificación y señaliza la operación de parcheo
o actualización. Otra posibilidad es que la actualización se
realice automáticamente. El dispositivo inalámbrico puede no ser
apto para realizar tareas de comunicación normales mientras tiene
lugar la actualización. La sección de códigos de gestor de parches
comprende una biblioteca de símbolos de controlador de
lectura-escritura permanente que también se carga en
la memoria de lectura-escritura volátil de acceso
aleatorio 114. La biblioteca de símbolos de controlador de
lectura-escritura permanente sobrescribe las
secciones de códigos con secciones de códigos actualizadas. La
sección de códigos de gestor de parches comprende los datos de
lectura-escritura, la tabla de direcciones de
secciones de códigos y la tabla de direcciones de compensación de
símbolos, así como un código descriptor de acceso de símbolos y la
dirección del código descriptor de acceso de símbolos (que se
describen más adelante). Ciertas porciones de estos datos quedan
invalidadas al introducirse secciones de códigos actualizadas,
comprendiendo una sección de códigos de gestor de parches
actualizada datos de lectura-escritura, una tabla de
direcciones de secciones de códigos y una tabla de direcciones de
compensación de símbolos con validez para las secciones de códigos
actualizadas. Una vez completada la carga de las secciones de
códigos actualizadas en la sección de almacenamiento de códigos
112, el dispositivo inalámbrico queda restablecido. Tras el
restablecimiento, el dispositivo inalámbrico puede ejecutar el
software del sistema actualizado. También conviene tener presente
que la sección de códigos de gestor de parches puede comprender
otras bibliotecas de símbolos que hasta ahora no se han comentado.
Estas otras bibliotecas de símbolos no necesitan cargarse en la
memoria volátil de lectura-escritura 114.
La figura 2 es un diagrama esquemático de
bloques del sistema de mantenimiento del software 100, que destaca
la instalación de juegos de instrucciones a través de la interfaz de
enlace aéreo. Además de las secciones de códigos del software del
sistema, el sistema de mantenimiento 100 puede descargar e instalar
juegos de instrucciones, programas, o juegos de instrucciones del
gestor de parches (PMIS), que aquí se denominan instrucciones en
tiempo de ejecución del gestor de parches (PMRTI). La sección de
códigos de instrucciones PMRTI 200 se transporta al dispositivo
inalámbrico 104 del modo ya descrito para las secciones de códigos
del software del sistema. Las secciones de códigos de instrucciones
PMRTI se almacenan inicialmente en la sección de sistema de
archivos 110. Normalmente, una sección de códigos de instrucciones
PMRTI es un archivo binario visualizable como instrucciones
compiladas al microteléfono. Una sección de códigos de instrucciones
PMRTI tiene amplitud suficiente para permitir la realización de
operaciones matemáticas básicas y de operaciones de ejecución
condicional. Así, por ejemplo, unas instrucciones PMRTI para
calibraciones de radiofrecuencia (RF) podrían realizar las
operaciones siguientes:
SI EL ELEMENTO CALIBRADOR DE RF ES INFERIOR A
X
EJECUTAR LA INSTRUCCIÓN
SI NO LO ES
EJECUTAR LA INSTRUCCIÓN
\vskip1.000000\baselineskip
Las instrucciones PMRTI admiten operaciones
matemáticas básicas como sumar, restar, multiplicar y dividir. Al
igual que las secciones de códigos del software del sistema, la
sección de códigos de instrucciones PMRTI puede cargarse en
respuesta a peticiones de la interfaz de usuario, debiendo
restablecerse el dispositivo inalámbrico una vez cargadas las
instrucciones PMRTI en la sección de almacenamiento de códigos 112.
Hecho esto, ya puede ejecutarse la sección de las instrucciones
PMRTI. Si la sección de códigos de instrucciones PMRTI está
asociada a tablas virtuales o datos de
lectura-escritura, se transportará una sección
actualizada de códigos del gestor de parches con las instrucciones
PMRTI para instalarse en la sección de almacenamiento de códigos
112. Otra posibilidad es mantener y procesar las instrucciones PMRTI
desde la sección de sistema de archivos 110. Cuando el
microteléfono 104 ha ejecutado todas las instrucciones de la sección
PMRTI, ésta puede suprimirse de la sección de sistema de archivos
110.
Las instrucciones PMRTI constituyen un motor de
instrucciones en tiempo de ejecución muy potente. El microteléfono
es capaz de ejecutar cualquier instrucción recibida a través del
entorno PMRTI. Este mecanismo puede utilizarse para calibraciones
de RF y actualizaciones de accesos primarios. De manera más general,
las instrucciones PMRTI pueden utilizarse para depurar a distancia
el software del dispositivo inalámbrico cuando el fabricante o el
proveedor de servicios identifican problemas de software,
normalmente debido a las quejas de los usuarios. Con las
instrucciones PMRTI también es posible registrar datos necesarios
para diagnosticar problemas de software. Las instrucciones PMRTI
pueden lanzar aplicaciones de sistemas recién descargadas para
realizar análisis de datos, depuraciones y arreglos. Las
instrucciones PMRTI pueden aportar actualizaciones en bases de datos
de lectura-escritura para análisis y posible
arreglo inmediato de un problema, en lugar de una sección de códigos
del software del sistema actualizados. Las instrucciones PMRTI
pueden aportar algoritmos de compactación de memoria utilizables
por el dispositivo inalámbrico.
En algunos aspectos del presente invento, la
organización del software del sistema en bibliotecas de símbolos
puede repercutir en el tamaño de la memoria volátil 114 y de la
memoria permanente 108 requeridas para la ejecución. Esto se debe a
que, normalmente, las secciones de códigos son mayores que las
bibliotecas de símbolos dispuestas en las secciones de códigos.
Estas secciones de códigos mayores existen para recibir secciones
de códigos actualizadas. La organización del software del sistema
como agrupación de bibliotecas repercute en el tamaño requerido de
la memoria permanente. Para códigos del mismo tamaño, la cantidad de
memoria permanente utilizada será más alta porque las secciones de
códigos pueden hacerse mayores que las bibliotecas de símbolos
dispuestas en su interior.
Cuando el dispositivo inalámbrico ha recibido
las actualizaciones del software, el sistema de mantenimiento del
software 100 admite la compactación de la memoria. La compactación
de la memoria es una operación similar a la desfragmentación del
disco duro en los ordenadores de sobremesa. El mecanismo de
compactación asegura que la memoria se utilice de modo óptimo y que
quede equilibrada para futuras actualizaciones de secciones de
códigos, dada la imprevisibilidad del tamaño de las actualizaciones.
El sistema 100 analiza la sección de almacenamiento de códigos en
el momento de su parcheo (actualización). El sistema 100 trata de
encajar secciones de códigos actualizadas en el espacio de memoria
ocupado por la sección de códigos que se está reemplazando. Si el
tamaño de la sección de códigos actualizada es superior al de la que
se está reemplazando, el sistema 100 compacta las secciones de
códigos presentes en la memoria 112.
Otra posibilidad es que el fabricante o el
proveedor del servicio calcule la compactación y transmita las
instrucciones de compactación al dispositivo inalámbrico 104.
La compactación puede consumir mucho tiempo,
debido a la complejidad del algoritmo y al enorme volumen del
movimiento de datos. El algoritmo de compactación predice la
viabilidad antes de iniciarse cualquier proceso. Pueden utilizarse
indicaciones en la interfaz de usuario para obtener el permiso del
usuario antes de intentar la compactación.
En ciertos aspectos del presente invento es
posible actualizar simultáneamente todas las secciones de códigos
del software del sistema. No obstante, una actualización completa
del software del sistema requeriría una sección de sistema de
archivos 110 más grande. La figura 3 es un diagrama esquemático de
bloques, que describe el sistema del presente invento para
reorganizar las instrucciones de software en un dispositivo
inalámbrico de comunicación. El sistema 300 comprende una sección
de almacenamiento de códigos 112 en la memoria 108, que incluye
software del sistema ejecutable del dispositivo inalámbrico
diferenciado en varias secciones de códigos actuales. La figura
presenta las secciones de códigos uno 302, dos 304 y n 306, más una
sección de códigos de gestor de parches 308. Sin embargo, el
presente invento no se limita a ningún número determinado de
secciones de códigos. Además, el sistema 300 también comprende un
primer grupo de bibliotecas de símbolos dispuestas en un segundo
grupo de secciones de códigos. Se muestran la biblioteca de símbolos
uno 310 dispuesta en la sección de códigos uno 302, las bibliotecas
de símbolos dos 312 y tres 314 dispuestas en la sección de códigos
dos 304, y la biblioteca de símbolos m 316 dispuesta en la sección
de códigos n 306. Cada biblioteca comprende símbolos que tienen
funcionalidad relacionada. Así, por ejemplo, puede suceder que la
biblioteca de símbolos uno 310 participe en el funcionamiento de la
pantalla de cristal líquido (LCD) del dispositivo inalámbrico. En
este caso, los símbolos estarían asociados a las funciones de
visualización. Como se explica con mayor detalle más adelante, en
la sección de códigos de gestor de parches 308 se disponen otras
bibliotecas de símbolos.
La figura 4 es un diagrama esquemático de
bloques correspondiente a la memoria del dispositivo inalámbrico.
Como puede apreciarse, la memoria es la sección de almacenamiento de
códigos 112 de la figura 1. Se trata de una memoria tipo Flash, de
escritura y permanente. Debe quedar claro que no es imprescindible
almacenar las secciones de códigos en la misma memoria que la
sección de sistema de archivos 110. Igualmente debe entenderse que
la estructura del software del sistema del presente invento también
podría activarse con secciones de códigos almacenadas en diversas
memorias cooperantes. La sección de almacenamiento de códigos 112
comprende un segundo grupo de bloques de memoria direccionados
contiguamente, almacenando cada bloque de memoria su
correspondiente sección de códigos procedentes del segundo grupo de
secciones de códigos. En consecuencia, la sección de códigos uno
302 está almacenada en un primer bloque de memoria 400, la sección
de códigos dos 304 en el segundo bloque de memoria 402, la sección
de códigos n 306 en el bloque de memoria n 404, y la sección de
códigos de gestor de parches 308 en el bloque de memoria p 406.
Comparando las figuras 3 y 4 se comprueba que el
inicio de cada sección de códigos se almacena en sus
correspondientes direcciones de inicio en la memoria, y las
bibliotecas de símbolos se disponen para que comiencen en el inicio
de las secciones de códigos. Es decir, cada biblioteca de símbolos
comienza en una primera dirección y recorre una serie de
direcciones en secuencia desde la primera dirección. Así, por
ejemplo, la sección de códigos uno 302 comienza en la primera
dirección de inicio 408 (señalada con una "S") de la memoria de
secciones de almacenamiento de códigos 112. En la figura 3, la
biblioteca de símbolos uno 310 comienza en el inicio 318 de la
primera sección de códigos. Igualmente, la sección de códigos dos
304 comienza en una segunda dirección de inicio 410 (figura 4),
mientras que la biblioteca de símbolos dos comienza en el inicio 320
de la sección de códigos dos (figura 3). La sección de códigos n
306 comienza en una tercera dirección de inicio 412 de la memoria
de secciones de almacenamiento de códigos 112 (figura 4), mientras
que la biblioteca de símbolos m 316 comienza en el inicio de la
sección de códigos n 322 (figura 3). La sección de códigos de gestor
de parches comienza en la dirección de inicio p 414 de la memoria
de secciones de almacenamiento de códigos 112, en tanto que la
primera biblioteca de símbolos de la sección de códigos de gestor de
parches 308 comienza en el inicio 324 de la sección de códigos de
gestor de parches. En consecuencia, la biblioteca de símbolos uno
310 queda finalmente almacenada en el primer bloque de memoria 400.
Si una sección de códigos comprende varias bibliotecas de símbolos,
como sucede con la sección de códigos dos 304, las diversas
bibliotecas de símbolos se almacenan en el bloque de memoria
correspondiente, en este caso el segundo bloque de memoria 402.
En la figura 3, la estructura del software del
sistema 300 también comprende una tabla de direcciones de secciones
de códigos 326 como tipo de símbolo incluido en una biblioteca de
símbolos dispuesta en la sección de códigos de gestor de parches
308. La tabla de direcciones de secciones de códigos establece
referencias cruzadas entre los identificadores de secciones de
códigos y sus correspondientes direcciones de inicio de secciones de
códigos en la memoria.
La figura 5 es una tabla representativa de la
tabla de direcciones de secciones de códigos 326 de la figura 3. La
tabla de direcciones de secciones de códigos 326 se consulta para
localizar la dirección de inicio de secciones de códigos
correspondiente a una biblioteca de símbolos. Así, por ejemplo, el
sistema 300 busca la sección de códigos uno cuando se necesita
ejecutar un símbolo de la biblioteca de símbolos uno. Para encontrar
la dirección de inicio de la sección de códigos uno, y en
consecuencia para localizar el símbolo en la biblioteca de símbolos
uno, se consulta la tabla de direcciones de secciones de código 326.
La disposición de las bibliotecas de símbolos en secciones de
códigos, y el seguimiento de las secciones de códigos con una tabla,
permite desplazar o expandir las secciones de códigos. Las
operaciones de expansión o desplazamiento pueden necesitarse para
instalar secciones de códigos actualizadas (con bibliotecas de
símbolos actualizadas).
Volviendo a la figura 3, debe tenerse presente
que no todas las bibliotecas de símbolos comienzan en el inicio de
una sección de códigos. Como puede observarse en la figura, la
biblioteca de símbolos tres 314 está dispuesta en la sección de
códigos dos 304, pero no comienza en el inicio de la dirección de
inicio de la sección de códigos 320. En consecuencia, si hace falta
ejecutar un símbolo de la biblioteca de símbolos tres 314, el
sistema 300 busca en la tabla de direcciones de secciones de códigos
326 la dirección de inicio de la sección de códigos dos 304. Como
se explica más adelante, una tabla de direcciones de compensación de
símbolos permite localizar los de la biblioteca de símbolos tres
314. No importa que los símbolos estén repartidos entre varias
bibliotecas, siempre que se mantengan con la misma sección de
códigos.
Como se ha indicado, cada biblioteca de símbolos
comprende símbolos funcionalmente relacionados. Un símbolo es un
nombre definido por el programador para localizar y utilizar un
cuerpo de rutinas, una variable o una estructura de datos. En
consecuencia, 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ódigos actual.
Más concretamente, no son objeto de búsqueda por otras bibliotecas
de símbolos, en otras secciones de códigos. Los símbolos externos
se utilizan e invocan en diversas secciones de códigos y las
bibliotecas los buscan en diferentes secciones de códigos. La tabla
de direcciones de compensación de símbolos suele comprender una
lista de todos los símbolos externos.
Así, por ejemplo, la biblioteca de símbolos 310
puede generar caracteres en una pantalla de dispositivo inalámbrico.
A su vez, los símbolos de esta biblioteca generarían números
telefónicos, nombres, la hora u otras funciones de visualización.
Cada función se genera con rutinas, que aquí reciben el nombre de
símbolos. Así, por ejemplo, un símbolo de la biblioteca de símbolos
uno 310 genera números telefónicos en la pantalla. Este símbolo,
representado con una "X", es externo. Cuando el dispositivo
inalámbrico recibe una llamada telefónica y se activa el servicio
de identificación del comunicante, el sistema debe ejecutar el
símbolo "X" para generar el número en la pantalla. Por
consiguiente, el sistema debe localizar el símbolo "X".
La figura 6 es una descripción detallada de la
biblioteca de símbolos uno 310 de la figura 3, con símbolos. Los
símbolos se disponen para su compensación desde sus respectivas
direcciones de inicio de secciones de códigos. En muchas
circunstancias, el inicio de la biblioteca de símbolos es el inicio
de una sección de códigos, aunque esto no es válido si una sección
de códigos comprende más de una biblioteca de símbolos. La
biblioteca de símbolos uno 310 comienza en el inicio de la sección
de códigos uno (véase la figura 3). Como se aprecia en la figura 6,
el símbolo "X" se encuentra en una compensación de 03 desde el
inicio de la biblioteca de símbolos y el "Y" se halla en una
compensación de 15. Las direcciones de compensación de símbolos se
almacenan en una tabla de direcciones de compensación de símbolos
328, de la sección de códigos de gestor de parches (véase la figura
3).
La figura 7 es una tabla representativa de la
tabla de direcciones de compensación de símbolos 328 de la figura
3. La tabla de direcciones de compensación de símbolos 328 establece
referencias cruzadas entre los identificadores de símbolos y sus
correspondientes direcciones de compensación, y con sus
correspondientes identificadores de secciones de códigos en la
memoria. En consecuencia, cuando el sistema busca la ejecución del
símbolo "X" en la biblioteca de símbolos uno, se consulta la
tabla de direcciones de compensación de símbolos 328 para localizar
la dirección exacta del símbolo, respecto a la sección de códigos en
que se haya dispuesto.
Volviendo a la figura 3, es normal que todas las
bibliotecas de símbolos del primer grupo comprendan datos de
lectura-escritura que deben consultarse o
configurarse en la ejecución de estas bibliotecas de símbolos. Así,
por ejemplo, una biblioteca de símbolos puede comprender una
operación dependiente de la finalización de una declaración
condicional. Se consulta la sección de datos de
lectura-escritura, a fin de determinar el estado
requerido para completar la declaración condicional. El presente
invento agrupa los datos de lectura-escritura
procedentes de todas las bibliotecas de símbolos en una sección de
lectura-escritura compartida. En algunos aspectos
del presente invento, los datos de lectura-escritura
330 se disponen en la sección de códigos de gestor de parches 308.
Otra posibilidad (que no se ilustra) es la disposición de los datos
de lectura-escritura en una sección de códigos
diferente, por ejemplo en la sección de códigos n 306.
El primer grupo de bibliotecas de símbolos
también comprende un código de descriptor de acceso de símbolos, en
una sección de códigos, para calcular la dirección de un símbolo
buscado. El código de descriptor de acceso de símbolos puede
disponerse y almacenarse en una dirección de una sección de códigos
separada, por ejemplo en la sección de códigos 304. Sin embargo,
como se aprecia en la figura, el código de descriptor de acceso de
símbolos 332 se ha dispuesto y almacenado en una dirección de la
sección de códigos de gestor de parches 308. La estructura del
software del sistema 300 también comprende una primera ubicación
para almacenar la dirección del código del descriptor de acceso de
símbolos. La primera ubicación puede ser una sección de códigos en
la sección de almacenamiento de códigos 112, o en una sección de
memoria separada perteneciente al dispositivo inalámbrico (que no
se ilustra). La primera ubicación también puede disponerse en la
misma sección de códigos que los datos de
lectura-escritura. Como se aprecia en la figura, la
primera ubicación 334 se almacena en la sección de códigos de
gestor de parches 308 con los datos de
lectura-escritura 330, la tabla de direcciones de
compensación de símbolos 328, la tabla de direcciones de secciones
de códigos 326 y el código de descriptor de acceso de símbolos 332,
más la biblioteca de parches (biblioteca de símbolos de parches)
336.
El código de descriptor de acceso de símbolos
accede a la tabla de direcciones de secciones de códigos y a las
tablas de direcciones de compensación de símbolos para calcular o
hallar en la memoria la dirección de un símbolo buscado. Es decir,
el código del descriptor de acceso de símbolos calcula la dirección
del símbolo buscado, utilizando el correspondiente identificador de
símbolos y el correspondiente identificador de secciones de
códigos. Así, por ejemplo, si se busca el símbolo "X" de la
biblioteca de símbolos uno, se invoca el descriptor de acceso de
símbolos para localizar el identificador de símbolos (ID de
símbolos) X_1, correspondiente al símbolo "X" (véase la figura
7). El código del descriptor de acceso de símbolos consulta la tabla
de direcciones de compensación de símbolos para determinar que el
identificador de símbolos X_1 tiene una compensación de 03 desde el
inicio de la sección de códigos uno (véase la figura 6). El código
del descriptor de acceso de símbolos se invoca para buscar el
identificador de secciones de códigos CS_1, correspondiente a la
sección de códigos uno. El código del descriptor de acceso de
símbolos consulta la tabla de direcciones de secciones de códigos
para determinar la dirección de inicio asociada al identificador de
secciones de códigos (ID de secciones de códigos) CS_1. De esta
manera, el código del descriptor de acceso de símbolos determina que
el identificador de símbolos X_1 está compensado 03 desde la
dirección de 00100, o está ubicado en la dirección 00103.
El símbolo "X" es un nombre reservado, por
formar parte del código real. Es decir, está asociado a datos
absolutos. Estos datos pueden ser una dirección o un valor. El
identificador de símbolos es un alias creado para el seguimiento
del símbolo. Tanto la tabla de direcciones de compensación de
símbolos como la tabla de direcciones de secciones de códigos
funcionan con identificadores, para evitar confusiones con nombres
de secciones de códigos y símbolos reservados. También es posible
utilizar el mismo nombre de símbolo en muchas bibliotecas de
símbolos. El uso de identificadores impide las confusiones entre
estos símbolos.
Volviendo a la figura 1, la estructura del
software del sistema 300 también comprende una memoria volátil de
lectura-escritura 114, que suele ser una memoria de
acceso aleatorio (RAM). Los datos de
lectura-escritura 330, la tabla de direcciones de
secciones de códigos 326, la tabla de direcciones de compensación de
símbolos 328, el código del descriptor de acceso de símbolos 332 y
la dirección de códigos de descriptor de acceso de símbolos 334 se
cargan en la memoria volátil de lectura-escritura
114 desde la sección de códigos de gestor de parches, para su
acceso durante la ejecución del software del sistema. Como es bien
sabido, el tiempo de acceso para códigos almacenados en memorias
RAM es sustancialmente inferior al requerido para acceder a una
memoria permanente, por ejemplo a una memoria Flash.
Volviendo a la figura 3, cabe señalar que las
bibliotecas de símbolos no necesitan llenar las secciones de
códigos en las que se han dispuesto, si bien los bloques de memoria
están dimensionados para albergar exactamente las correspondientes
secciones de códigos almacenadas en su interior. Dicho de otro modo,
cada componente del segundo grupo de secciones de datos tiene un
tamaño en bytes suficiente para las bibliotecas de símbolos
dispuestas, y cada bloque de memoria contiguamente direccionado
tiene un tamaño en bytes suficiente para las correspondientes
secciones de códigos. Así, por ejemplo, la sección de códigos uno
(302) puede ser una sección de 100 bytes para contener una
biblioteca de símbolos cuya longitud es de 100 bytes. El primer
bloque de memoria tendría 100 bytes, para igualar el tamaño en
bytes de la sección de códigos uno. Sin embargo, la biblioteca de
símbolos cargada en la sección de códigos uno puede ser inferior a
100 bytes. Como se aprecia en la figura 3, la sección de códigos
uno 302 tiene una sección sin utilizar 340, porque la biblioteca de
símbolos uno 310 no llega a 100 bytes. En consecuencia, cada
sección de códigos del segundo grupo puede tener un tamaño mayor
que el necesario para acoger las bibliotecas de símbolos dispuestas.
El "sobredimensionado" de las secciones de códigos permite
acoger bibliotecas de símbolos actualizadas más extensas.
El concepto de los bloques de memoria
contiguamente direccionados hace referencia a la división del
espacio físico de las memorias en bloques lógicos de diversos
tamaños. "Secciones de códigos" y "bloques de memoria"
son términos esencialmente intercambiables cuando la sección de
códigos se almacena en una memoria. El concepto de la sección de
códigos se utiliza para identificar una sección de códigos quizá
mayor que la biblioteca de símbolos, o la agrupación de bibliotecas
de símbolos presente en la sección de códigos cuando se desplaza y
manipula.
Como se aprecia en la figura 3, el sistema 300
comprende una biblioteca de símbolos de parches, que aquí recibirá
la denominación de biblioteca de parches 336, para disponer nuevas
secciones de códigos en la sección de almacenamiento de códigos
junto con las secciones de códigos ya existentes. La disposición de
nuevas secciones de códigos junto con las ya existentes en la
sección de almacenamiento de códigos forma el software del sistema
ejecutable actualizado. El gestor de parches 336 no sólo dispone
nuevas secciones de códigos junto con las ya existentes, sino que
cambia secciones de códigos por otras actualizadas.
Volviendo a la figura 4, la sección de sistema
de archivos 110 de la memoria 108 recibe nuevas secciones de
códigos, por ejemplo la nueva sección de códigos 450 y la sección de
códigos de gestor de parches actualizada 452. La sección de sistema
de archivos también recibe una primera instrucción en tiempo de
ejecución del gestor de parches (PMRTI) 454 que incluye
instrucciones para disponer las nuevas secciones de códigos con las
ya existentes. Como se aprecia en la figura 1, una interfaz de
enlace aéreo 150 recibe secciones de códigos nuevas o actualizadas,
además de la primera instrucción PMRTI. Aunque se represente la
interfaz de enlace aéreo 150 mediante una antena, debe entenderse
que la interfaz de enlace aéreo también incluiría un transceptor de
RF, un juego de circuitos de banda base y un juego de circuitos de
desmodulación (que no se ilustran). La sección de sistema de
archivos 110 almacena las nuevas secciones de códigos recibidas a
través de la interfaz de enlace aéreo 150. La biblioteca de parches
336, ejecutándose desde la memoria volátil de
lectura-escritura 114, sustituye una primera
sección de códigos de la sección de almacenamiento de códigos, por
ejemplo la sección de códigos n 306, por la nueva (o actualizada)
sección de códigos 450, en respuesta a la primera instrucción PMRTI
454. Normalmente, la sección de códigos de gestor de parches 308 se
sustituye por la sección de códigos de gestor de parches
actualizada 452. Cuando se están sustituyendo secciones de códigos,
la biblioteca de parches 336 sobrescribe en la primera sección de
códigos, por ejemplo la sección de códigos n 306 de la sección de
almacenamiento de códigos 112, las secciones de códigos
actualizadas, por ejemplo la sección de códigos 450 de la sección
de sistema de archivos 110. En el caso extremo, todas las secciones
de códigos de la sección de almacenamiento de códigos 112 se
sustituyen por secciones de códigos actualizadas. Es decir, la
sección de sistema de archivos 110 recibe un segundo grupo de
secciones de códigos actualizadas (que no se ilustran) y la
biblioteca de parches 336 sustituye el segundo grupo de secciones
de códigos de la sección de almacenamiento de códigos 112 por el
segundo grupo de secciones de códigos actualizadas. Naturalmente, el
tamaño de la sección de sistema de archivos 110 debe ser suficiente
para acoger el segundo grupo de secciones de códigos actualizadas
que se reciba a través de la interfaz de enlace aéreo.
Como ya se ha indicado, las secciones de códigos
actualizadas que se reciban pueden comprender secciones de códigos
de datos de lectura-escritura, secciones de códigos
para tablas de direcciones de secciones de códigos, bibliotecas de
símbolos, secciones de códigos para tablas de direcciones de
compensación de símbolos, secciones de códigos de descriptor de
acceso de símbolos, o una sección de códigos con una nueva
biblioteca de parches. Todas estas secciones de códigos, con sus
bibliotecas de símbolos y sus símbolos asociados, pueden almacenarse
como secciones de códigos distintas e independientes. Seguidamente,
cada una de estas secciones de códigos se sustituiría por una
sección de códigos actualizada singular. Es decir, se recibiría una
sección de códigos de lectura-escritura que
sustituiría a la sección de códigos de
lectura-escritura presente en la sección de
almacenamiento de códigos. Se recibiría una sección de códigos para
tablas de direcciones de secciones de códigos que sustituiría a la
sección de códigos para tablas de direcciones de secciones de
códigos presente en la sección de almacenamiento de códigos. Se
recibiría una sección actualizada de códigos para tablas de
direcciones de compensación de símbolos que sustituiría a la sección
de códigos para tablas de direcciones de compensación de símbolos
presente en la sección de almacenamiento de códigos. Se recibiría
una sección de códigos de descriptor de acceso de símbolos que
sustituiría a la sección de códigos de descriptor de acceso de
símbolos presente en la sección de almacenamiento de códigos.
Igualmente, se recibiría una sección actualizada de códigos de
gestor de parches (con una biblioteca de parches) que sustituiría a
la sección de códigos de gestor de parches presente en la sección
de almacenamiento de códigos.
Sin embargo, normalmente las secciones de
códigos mencionadas se agrupan en la sección de códigos de gestor
de parches. En consecuencia, la sección de códigos de
lectura-escritura presente en la sección de
almacenamiento de códigos se sustituye por la sección actualizada
de códigos de lectura-escritura procedente de la
sección de sistema de archivos 110, cuando la sección de códigos de
gestor de parches 308 se sustituye por la sección actualizada de
códigos de gestor de parches 450. Igualmente, la tabla de
direcciones de secciones de códigos, la tabla de direcciones de
compensación de símbolos, las secciones de códigos de descriptor de
acceso de símbolos y la biblioteca de parches se sustituyen al
instalarse la sección actualizada de códigos de gestor de parches
450. La disposición de los nuevos datos de
lectura-escritura, la nueva tabla de direcciones de
secciones de códigos, la nueva tabla de direcciones de compensación
de símbolos, el nuevo código descriptor de acceso de símbolos, la
nueva biblioteca de símbolos y la sección actualizada de códigos de
gestor de parches 450, junto con las secciones de códigos ya
presentes en la sección de almacenamiento de códigos, forma el
software del sistema ejecutable actualizado.
Cuando la sección de sistema de archivos 110
recibe una dirección actualizada de código de descriptor de acceso
de símbolos, el gestor de parches sustituye la dirección de código
de descriptor de acceso de símbolos presente en la primera
ubicación de la memoria por la dirección actualizada de código de
descriptor de acceso de símbolos. Como ya se ha indicado,
normalmente la primera ubicación de la memoria 334 está en la
sección de códigos de gestor de parches (véase la figura 3).
Según se aprecia en la figura 3, la biblioteca
de parches 308 también comprende un compactador, o una biblioteca
de símbolos de compactador 342. El compactador 342 también puede
activarse como sección de códigos distinta e independiente, aunque,
según ya se ha indicado, es útil y eficaz agrupar las funciones
asociadas a las actualizaciones del software del sistema en una
sola sección de códigos de gestor de parches. En general, puede
decirse que el compactador 342 redimensiona las secciones de
códigos, para poder disponer las nuevas secciones junto a las
secciones de códigos ya existentes en la sección de almacenamiento
de códigos 112.
Comparando las figuras 3 y 4, la sección de
sistema de archivos 110 recibe un juego de instrucciones de
compactación que comprende instrucciones de identificación de una
sección de códigos actualizable a través de la interfaz de enlace
aéreo 150 (véase la figura 1). Así, por ejemplo, el juego de
instrucciones de compactación puede ser la primera instrucción
PMRTI 454, aunque no es imprescindible que las instrucciones de
compactación se agrupen con las demás instrucciones de
actualización. El compactador 342 sustituye la sección de códigos
actual identificada, presente en la sección de almacenamiento de
códigos, por la nueva sección de códigos. Deberá tenerse presente
que el compactador 342 funciona en colaboración con la biblioteca de
parches 336 explicada anteriormente. Dicho de otro modo, se
solicita al compactador 342 que preste ayuda a la biblioteca de
parches 336 cuando haga falta redimensionar la sección de códigos
para actualizar el software del sistema.
El compactador redimensiona los bloques de
memoria (figura 4), almacenándose las correspondientes secciones de
códigos redimensionadas en la sección de almacenamiento de códigos.
Así, por ejemplo, la sección de sistema de archivos 110 recibe una
nueva sección de códigos 450 que tiene un primer tamaño. Al mismo
tiempo, o en otros mensajes, el dispositivo inalámbrico recibe un
juego de instrucciones de compactación, por ejemplo una primera
instrucción PMRTI 454, y una sección actualizada de códigos de
gestor de parches 452. El juego de instrucciones de compactación
454 identifica una sección de códigos actual que tiene un segundo
tamaño, por ejemplo la sección de códigos dos 304, inferior al
primer tamaño. Como la sección de códigos actualizada 450 es mayor
que la sección de códigos a sustituir, debe realizarse una operación
de compactación. El compactador 342 aumenta, por lo menos hasta el
primer tamaño, el tamaño del segundo bloque de memoria 402 asociado
a la sección de códigos actual identificada 304. El compactador (en
colaboración con la biblioteca de parches 336) sustituye la sección
de códigos actual identificada 304, almacenada en el correspondiente
bloque de memoria 402, por la nueva sección de códigos 450.
Como ya se ha indicado, es normal que las
secciones de códigos estén sobredimensionadas respecto a la
biblioteca de símbolos, o a las bibliotecas de símbolos dispuestas
en su interior. El compactador 342 determina el tamaño de las
bibliotecas de símbolos dispuestas en las secciones de códigos
correspondientes y redimensiona las secciones de códigos para
aproximarlas a los tamaños de las bibliotecas de símbolos dispuestas
en su interior. Normalmente, el compactador 342 redimensiona de
manera óptima las secciones de códigos para promover posteriores
operaciones de redimensionado y actualización de las mismas.
Siguiendo con el ejemplo ya iniciado, el
compactador 342 podría conferir un tamaño óptimo a las secciones de
códigos, aprovechando para ello las zonas sin utilizar de las
secciones de códigos contiguas al segundo bloque de memoria 402.
Como se ilustra en la figura, la sección de códigos uno 302 y la
sección de códigos tres 344 tienen las zonas sin utilizar 340 y
346, respectivamente. El compactador puede optar por redimensionar
el primer bloque de memoria 302 y el tercer bloque de memoria 460,
creando con las zonas sin utilizar 340 y 346 un segundo bloque de
memoria 402 de tamaño suficiente para la nueva sección de códigos
450.
La figura 8 es un diagrama esquemático de
bloques que presenta los resultados del ejemplo de compactación. La
sección de códigos 2 se ha sustituido por la nueva (actualizada) y
ampliada sección de códigos 450. La sección sin utilizar 340 de la
sección de códigos uno 302 se ha reducido, al igual que la zona 360
de la sección de códigos tres 344. Dejar algunas zonas sin utilizar
en cada sección de códigos refuerza la eficacia de las futuras
operaciones de expansión y compactación. Así, por ejemplo, si toda
la zona sin utilizar 360 se aprovechara para acoger la sección de
códigos actualizada 450 en la presente operación de actualización,
cualquier futura expansión de la sección de códigos tres 344
necesitaría operaciones de compactación en secciones de códigos
contiguas. Igualmente debe tenerse presente que, aunque el ejemplo
sólo muestra el redimensionado de dos bloques de memoria adjuntos,
algunas operaciones de compactación pueden requerir el
redimensionado de varias secciones de códigos, o incluso de todas,
para acoger nuevas (mayores) actualizaciones de secciones de
códigos.
El compactador 342 accede a direcciones de
inicio tomadas de la tabla de direcciones de secciones de códigos,
para medir los tamaños de las secciones de códigos, y a direcciones
de compensación de símbolos tomadas de la tabla de direcciones de
compensación de símbolos, para medir el tamaño de las bibliotecas de
símbolos dispuestas en el interior de las correspondientes
secciones de códigos. Una vez más, deberá tenerse en cuenta que, en
ciertos aspectos del presente invento y para realizar sus tareas, el
compactador depende de (y colabora con) otras bibliotecas de
símbolos, que no siempre residen en la sección de códigos de gestor
de parches 308. No obstante, es preferible que el compactador
colabore con el código de descriptor de acceso de símbolos ya
descrito, para acceder a la tabla de direcciones de secciones de
códigos y a la tabla de direcciones de compensación de
símbolos.
Como la tabla de direcciones de secciones de
códigos comprende la dirección de inicio de cada sección de códigos,
una sencilla operación aritmética que utilice las direcciones de
inicio de secciones de códigos contiguas puede determinar el tamaño
de la sección de códigos. Igualmente, puede utilizarse la dirección
del último símbolo de una biblioteca de símbolos, con las
direcciones de inicio de secciones de códigos, para determinar el
tamaño aproximado de las bibliotecas de símbolos dispuestas en el
interior de sus secciones de códigos correspondientes y, por tanto,
la cantidad de espacio sin utilizar. Así, por ejemplo, si la
dirección de inicio de la sección de códigos uno 302 es 0100, y si
la dirección de inicio de la sección de códigos dos 304 es 0200, y
si la dirección del último símbolo de la biblioteca de símbolos uno
310 es 0170, el tamaño de la zona sin utilizar 340 será
aproximadamente 0200-0170.
Ahora bien, muchos símbolos están distribuidos
por varias direcciones contiguas, y la dirección de compensación
del último símbolo no es necesariamente la misma que la dirección
donde termina la biblioteca de símbolos. Continuando con el ejemplo
anterior, si el último símbolo comienza en la dirección 0170 y
termina en 0173, el tamaño del espacio sin utilizar es
0200-0173. En algunos aspectos del presente invento,
la sección de almacenamiento de códigos 112 comprende bibliotecas
de símbolos con símbolos finales que representan el final de las
bibliotecas de símbolos. Así, por ejemplo, volviendo momentáneamente
a la figura 6, el símbolo "Z" es un símbolo final cuyo tamaño
es un byte. Es decir, la dirección del símbolo "Z" representa
el final de la biblioteca de símbolos uno. El compactador 342
utiliza las direcciones de compensación de símbolos finales,
mediante el código de descriptor de acceso de símbolos, para medir
el tamaño de las bibliotecas de símbolos dispuestas en el interior
de las correspondientes secciones de códigos.
Otra posibilidad es que la sección de
almacenamiento de códigos 112 comprenda bibliotecas de símbolos con
símbolos de tamaño que representen el tamaño de las bibliotecas de
símbolos. Así, por ejemplo, el símbolo "Y" (figura 6) puede
ser un número 0073 que represente el tamaño de la biblioteca de
símbolos uno. El compactador 342 accede a los símbolos de tamaño
para medir el tamaño de las bibliotecas de símbolos dispuestas en el
interior de las correspondientes secciones de códigos. En otros
aspectos del presente invento, los símbolos de tamaño
correspondientes a todas las bibliotecas de símbolos se almacenan en
una tabla situada en una sección de códigos distinta (que no se
ilustra) de la sección de códigos de gestor de parches.
El compactador 342 mide el tamaño de la nueva
sección de códigos 450 presente en la sección de sistema de
archivos 110 y determina primeramente si la nueva sección de códigos
puede disponerse con las actuales secciones de códigos presentes en
la sección de almacenamiento de códigos 112. El compactador 342
efectúa esta determinación en respuesta a la medición del tamaño de
las bibliotecas de símbolos dispuestas en el interior de las
correspondientes secciones de códigos, y a la medición del tamaño
de la nueva sección de códigos. Si la compactación no permite
instalar de manera satisfactoria la nueva sección de códigos, el
compactador 342 aborta automáticamente la operación. Otra
posibilidad es que el compactador calcule una probabilidad de éxito,
la presente al usuario en la pantalla del dispositivo inalámbrico,
y deje que sea el usuario quien determine si procede continuar con
la compactación. Con independencia de la probabilidad de éxito, el
teléfono inalámbrico brinda al usuario la opción de iniciar la
compactación, por cuanto el compactador 342 debe suspender la
ejecución del software del sistema durante la compactación y la
actualización.
Para determinar el tamaño de la sección de
códigos actualizada, el compactador 342 suele basarse en los datos
del juego de instrucciones de compactación. La sección de sistema de
archivos 110 recibe un juego de instrucciones de compactación 454
que comprende el tamaño de la nueva sección de códigos 450. El
compactador 342 accede al juego de instrucciones de compactación
454 para determinar el tamaño de la nueva sección de códigos 450
presente en la sección de sistema de archivos 110 y determina si la
nueva sección de códigos puede disponerse con las actuales
secciones de códigos presentes en la sección de almacenamiento de
códigos 112, en respuesta a la medición del tamaño de las
bibliotecas de símbolos dispuestas en el interior de las
correspondientes secciones de códigos y a la determinación del
tamaño de la nueva sección de códigos.
La operación de compactación puede evitarse, si
la sección de almacenamiento de códigos comprende grandes secciones
de bloques de memoria sin utilizar. El compactador 342 determina el
tamaño de los bloques de memoria sin utilizar presentes en la
sección de almacenamiento de códigos y almacena la nueva sección de
códigos en el bloque de memoria sin utilizar, si el tamaño del
bloque de memoria sin utilizar es superior o igual al de la nueva
sección de códigos.
Una vez redimensionadas las secciones de códigos
y sustituidas las secciones de códigos identificadas por las
secciones de códigos actualizadas, el compactador 342 cambia las
direcciones de inicio de las secciones de códigos almacenadas en la
sección de almacenamiento de códigos. Continuando con el ejemplo
anterior, si el redimensionado se realiza iniciando la nueva
sección de códigos 450 (que ahora es la sección de códigos dos) en
la dirección de inicio de 0175, en lugar de 0200, la tabla de
direcciones de secciones de códigos debe cambiarse para que refleje
la nueva dirección de inicio.
Las figuras 9a hasta 9e presentan el
funcionamiento de un ejemplo de programa de compactación. Cuando el
compactador 342, trabajando a partir de la memoria volátil 114, ha
calculado la probabilidad de éxito de la compactación y los tamaños
de las secciones de códigos, genera un programa de compactación. El
programa de compactación comprende el orden en que se realiza el
desplazamiento de las secciones de códigos y sus emplazamientos
temporales en la sección de sistema de archivos 110. En respuesta
al programa de compactación, la sección de sistema de archivos 110
almacena temporalmente secciones de códigos procedentes de la
sección de almacenamiento de códigos 112, y el compactador 342
almacena las secciones de códigos procedentes de la sección de
sistema de archivos 110 en los bloques de memoria de la sección de
almacenamiento de códigos 112 para mantener el direccionamiento
contiguo.
Continuando con el ejemplo ya iniciado, en la
figura 9a el compactador 342 consulta el juego de instrucciones de
compactación (primera instrucción PMRTI) 454, para determinar qué
sección de códigos se va a actualizar y el tamaño de la nueva
sección de códigos 450. En la figura 9b, después de calcular la
probabilidad de éxito y el tamaño de las secciones de códigos, el
compactador 342 comienza el proceso desplazando la sección de
códigos tres 344 a la sección de sistema de archivos 110 desde el
tercer bloque de memoria 460.
En la figura 9c, la nueva sección de códigos 450
se desplaza desde la sección de sistema de archivos 110 al segundo
bloque de memoria 402. Si la sección de códigos uno 302 se ha
redimensionado, el compactador 342 hace que la dirección de inicio
de la nueva sección de códigos comience en la zona sin utilizar 340
(véase la figura 3). Como ya se ha indicado, el inicio del segundo
bloque de memoria cambia de 0200 a 0175. Es decir, la sección de
códigos uno 302 se ha compactado.
En la figura 9d, la sección de códigos tres 344
se devuelve desde la sección de sistema de archivos 110 al tercer
bloque de memoria 460. Este desplazamiento se realiza para iniciar
la sección de códigos tres 344 en una nueva dirección de inicio.
Iniciar la sección de códigos en una nueva dirección de inicio puede
suponer la compactación de la sección de códigos. Es decir, es
posible que se aproveche parte de la zona sin utilizar 346.
En la figura 9e, la sección de códigos de gestor
de parches (PM) 308 se sustituye por la nueva (actualizada) sección
de códigos de gestor de parches 452. Normalmente, el gestor de
parches comprende la biblioteca de símbolos de códigos para tablas
de direcciones de secciones de código (véase la figura 3). Sin
embargo, la tabla actualizada de direcciones de secciones de
códigos no es necesariamente correcta, porque los resultados de la
compactación no siempre se conocen de antemano. Entonces, el
compactador 342 genera una tabla actualizada de direcciones de
secciones de códigos, en respuesta al cambio de las direcciones de
inicio de las secciones de códigos almacenadas en los bloques de
memoria. El compactador 342 sobrescribe la tabla actualizada de
direcciones de secciones de códigos que ha generado, en la tabla
actualizada de direcciones de secciones de códigos presente en la
sección de almacenamiento de códigos 112. Seguidamente, el software
del sistema actualizado accede a la tabla actualizada de
direcciones de secciones de códigos, después de disponerse la nueva
sección de códigos con las secciones de códigos actuales.
Ahora bien, la tabla de direcciones de
compensación de símbolos se trata de otra manera, porque las
direcciones de compensación de símbolos para secciones de códigos
actualizadas y actuales pueden calcularse de antemano. La sección
de sistema de archivos (FSS) 110 recibe una nueva sección de
códigos, normalmente la sección de códigos de gestor de parches
452, con una tabla actualizada de direcciones de compensación de
símbolos, y el software del sistema actualizado accede a la tabla
actualizada de direcciones de compensación de símbolos, una vez la
nueva sección de códigos 452 se ha dispuesto con las secciones de
códigos actuales.
Gran parte de la descripción precedente del
invento se ha dedicado al funcionamiento del compactador en el
cálculo de los tamaños de las secciones de códigos y de un programa
de compactación. Sin embargo, en algunos aspectos del presente
invento el compactador 342 queda liberado de la responsabilidad de
estos cálculos. En este aspecto del presente invento, la sección de
sistema de archivos 110 recibe un juego de instrucciones de
compactación 454 que comprende instrucciones para redimensionar
secciones de códigos y un programa de compactación. Seguidamente,
el compactador 342 redimensiona las secciones de códigos en
respuesta a las instrucciones de redimensionamiento de las
secciones de códigos. Como antes, en respuesta al programa de
compactación, la sección de sistema de archivos 110 almacena
temporalmente secciones de códigos procedentes de la sección de
almacenamiento de códigos 112, y el compactador 342 almacena las
secciones de códigos procedentes de la sección de sistema de
archivos 110 en los bloques de memoria de la sección de
almacenamiento de códigos 112 para mantener el direccionamiento
contiguo.
La sección de sistema de archivos 110 también
recibe una nueva sección de códigos, por ejemplo la sección
actualizada de códigos de gestor de parches 452, con una tabla
actualizada de direcciones de secciones de códigos y una tabla
actualizada de direcciones de compensación de símbolos. Como el
redimensionamiento de las secciones de códigos y el programa de
compactación se calcularon de antemano (no los calculó el
dispositivo inalámbrico), estas tablas actualizadas reflejan
exactamente las nuevas direcciones de inicio de secciones de
códigos. El software del sistema actualizado accede a la tabla
actualizada de direcciones de compensación de símbolos y a la tabla
actualizada de direcciones de secciones de códigos, después de
disponerse la nueva sección de códigos con las secciones de códigos
actuales.
Como refleja con máxima fidelidad la figura 1,
la memoria volátil 114 comprende las secciones de códigos de tablas
primera y segunda (la tabla de direcciones de secciones de códigos y
la tabla de direcciones de compensación de símbolos) cargadas desde
la sección de almacenamiento de códigos 112 para ejecutar el
software del sistema. Otras bibliotecas críticas procedentes de la
sección de códigos de gestor de parches 308 también se cargan en la
memoria volátil 114. Las nuevas secciones de códigos se disponen con
las secciones de códigos actuales en la sección de almacenamiento
de códigos 112 para formar el software del sistema actualizado,
después de un restablecimiento del dispositivo inalámbrico de
comunicaciones 104. Una vez efectuado el restablecimiento, la tabla
actualizada de direcciones de secciones de códigos y la tabla
actualizada de direcciones de compensación de símbolos se cargan en
la memoria volátil 114, y seguidamente el software del sistema puede
ejecutarse con las tablas actualizadas.
Las figuras 10a y 10b son un diagrama de flujo
que describe el método del presente invento para reorganizar
instrucciones de software almacenadas en una memoria de dispositivo
inalámbrico de comunicación. Aunque la descripción presente una
secuencia de pasos numerados para mayor claridad, salvo indicación
expresa, no debe deducirse de esta numeración la existencia de un
orden determinado. El método comienza en el paso 1000. El paso
1001a forma el software del sistema en un primer grupo de
bibliotecas de símbolos, comprendiendo cada biblioteca de símbolos
al menos un símbolo. El paso 1001b dispone el primer grupo de
bibliotecas de símbolos en un segundo grupo de secciones de
códigos. El paso 1002 almacena el software del sistema del
dispositivo inalámbrico en un grupo de secciones de códigos
actuales. El paso 1004 recibe una nueva sección de códigos. La
recepción de una nueva sección de códigos en el paso 1004 comprende
la recepción de la nueva sección de códigos mediante una interfaz
aérea del dispositivo inalámbrico de comunicaciones.
El paso 1006 redimensiona las secciones de
códigos actuales. Normalmente, el redimensionamiento de las
secciones de códigos actuales comprende la suspensión del
funcionamiento del software del sistema. El paso 1008 dispone la
nueva sección de código con las secciones de códigos actuales y
forma el software del sistema actualizados para el dispositivo
inalámbrico. El paso 1010 ejecuta el software del sistema
actualizado. Normalmente, el paso 1005a identifica una sección de
códigos actual para actualizarla, y la disposición de la nueva
sección de códigos con las secciones de códigos actuales para
formar el software del sistema actualizado durante el paso 1008
comprende sustituir la sección de códigos actuales identificada por
la nueva sección de códigos.
La disposición del primer grupo de bibliotecas
de símbolos en un segundo grupo de secciones de códigos durante el
paso 1001b comprende el comienzo de las bibliotecas de símbolos en
el inicio de las secciones de códigos. El almacenamiento del
software del sistema del dispositivo inalámbrico en un grupo de
secciones de códigos actuales durante el paso 1002 comprende el
almacenamiento del comienzo de las secciones de códigos en sus
direcciones de inicio correspondientes. A continuación, el método
comprende un paso más. El paso 1003a mantiene una tabla de
direcciones de secciones de códigos, estableciendo referencias
cruzadas entre los identificadores de secciones de códigos y las
direcciones de inicio correspondientes. La disposición del primer
grupo de bibliotecas de símbolos en un segundo grupo de secciones
de códigos durante el paso 1001b comprende la disposición de los
símbolos a compensar partiendo de sus respectivas direcciones de
inicio de secciones de códigos. Seguidamente, el paso 1003b
mantiene una tabla de direcciones de compensación de símbolos
estableciendo referencias cruzadas entre los identificadores de
símbolos y las correspondientes direcciones de compensación, y a los
correspondientes identificadores de secciones de códigos.
El almacenamiento del inicio de las secciones de
códigos en sus correspondientes direcciones de inicio comprende
subpasos. El paso 1002a crea un segundo grupo de bloques de memoria
contiguamente direccionados. El paso 1002b identifica cada bloque
de memoria con su correspondiente sección de códigos. El paso 1002c
almacena secciones de códigos en los bloques de memoria
identificados.
La disposición del primer grupo de bibliotecas
de símbolos en un segundo grupo de secciones de códigos durante el
paso 1002 comprende el dimensionamiento de las secciones de códigos
para acoger las bibliotecas de símbolos dispuestas. La creación de
un segundo grupo de bloques de memoria contiguamente direccionados
durante el paso 1002a comprende el dimensionamiento de bloques de
memoria para acoger a las correspondientes secciones de códigos.
Normalmente, el dimensionamiento de bloques de memoria para acoger a
las correspondientes secciones de códigos comprende el
dimensionamiento de las secciones de códigos para acoger tamaños
superiores a las bibliotecas de símbolos dispuestas. El
redimensionamiento de las secciones de códigos actuales durante el
paso 1006 comprende el redimensionamiento de los bloques de memoria
en los que se hayan almacenado las correspondientes secciones de
códigos redimensionadas.
Así, por ejemplo, la recepción de una nueva
sección de códigos durante el paso 1004 comprende la recepción de
una nueva sección de códigos que tenga un primer tamaño. La
identificación de una sección de códigos actual para su
actualización durante el paso 1005a comprende la identificación de
una sección de código actual que tenga un segundo tamaño, inferior
al primero. Seguidamente, el redimensionamiento de los bloques de
memoria en los que se hayan almacenado las correspondientes
secciones de códigos redimensionadas durante el paso 1006 comprende
subpasos. El paso 1006a (que no se ilustra) aumenta por lo menos
hasta el primer tamaño el de un bloque de memoria asociado a la
sección de códigos actual identificada, sustituyendo el paso 1006b
(que no se ilustra) la sección de códigos actual identificada,
almacenada en el correspondiente bloque de memoria, por la nueva
sección de códigos.
El redimensionamiento de los bloques de memoria
en los que se hayan almacenado las correspondientes secciones de
códigos redimensionadas durante el paso 1006 comprende, en respuesta
a la medición del tamaño de las bibliotecas de símbolos dispuestas
en el interior de las correspondientes secciones de códigos (véase
más adelante el paso 1005c), el redimensionamiento de las secciones
de códigos para aproximarlas a los tamaños de las bibliotecas de
símbolos dispuestas en su interior. El redimensionamiento de las
secciones de códigos para aproximarlas a los tamaños de las
bibliotecas de símbolos dispuestas en su interior durante el paso
1006 comprende el redimensionamiento óptimo de las secciones de
códigos para promover nuevas operaciones de redimensionamiento y
actualización de secciones de códigos.
El paso 1005b, que utiliza las direcciones de
inicio procedentes de la tabla de direcciones de secciones de
códigos, mide los tamaños actuales de las secciones de códigos. El
paso 1005c, que utiliza las direcciones de compensación de símbolos
procedentes de la tabla de direcciones de compensación de símbolos,
mide el tamaño de las bibliotecas de símbolos dispuestas en el
interior de las correspondientes secciones de códigos. Es decir, se
miden los tamaños de las secciones de códigos y los de las
bibliotecas de símbolos. Esta información permite calcular la
cantidad de espacio sin utilizar que hay en cada sección de
códigos.
En algunos aspectos, la formación del software
del sistema en un primer grupo de bibliotecas de símbolos durante
el paso 1001a comprende la formación de símbolos finales que
representan el final de las bibliotecas de símbolos. Seguidamente,
la medición del tamaño de las bibliotecas de símbolos dispuestas en
el interior de las correspondientes secciones de códigos durante el
paso 1005c comprende el uso de direcciones de compensación de los
símbolos finales para medir el tamaño de las bibliotecas de
símbolos. Otra posibilidad es que la formación del software del
sistema en un primer grupo de bibliotecas de símbolos durante el
paso 1001a comprenda la formación de símbolos de tamaño que
representen el tamaño de las bibliotecas de símbolos. Seguidamente,
la medición del tamaño de las bibliotecas de símbolos dispuestas en
el interior de las correspondientes secciones de códigos durante el
paso 1005c comprende el acceso a los símbolos de tamaño para medir
el tamaño de las bibliotecas de símbolos.
El paso 1005d mide el tamaño de la nueva sección
de códigos. El paso 1005e, en respuesta a la medición del tamaño de
las bibliotecas de símbolos dispuestas en el interior de las
correspondientes secciones de códigos durante el paso 1005c, y la
medición del tamaño de la nueva sección de códigos durante el paso
1005d, determina si la nueva sección de códigos puede disponerse
con las secciones de códigos actuales.
En algunos aspectos, la determinación de si la
nueva sección de códigos puede disponerse con la sección de códigos
actual durante el paso 1005e comprende la determinación del tamaño
de los bloques de memoria sin utilizar. Seguidamente, la
disposición de la nueva sección de códigos con las secciones de
códigos actuales para formar el software del sistema actualizado
del dispositivo inalámbrico durante el paso 1008 comprende el
almacenamiento de la nueva sección de códigos en el bloque de
memoria sin utilizar, si el tamaño del bloque de memoria sin
utilizar es superior o igual al de la nueva sección de códigos.
El paso 1005f calcula los tamaños de la sección
de códigos. Es decir, se determinan los tamaños de las nuevas
secciones de códigos que permitan disponer la nueva sección de
códigos con las secciones de códigos actuales. El paso 1007a, en
respuesta al cálculo de los tamaños de las secciones de códigos,
genera un programa de compactación. El paso 1007b desplaza
temporalmente secciones de códigos a una sección de sistema de
archivos. Seguidamente, la disposición de la nueva sección de
códigos con las secciones de códigos actuales para formar el
software del sistema actualizado del dispositivo inalámbrico
durante el paso 1008 comprende el almacenamiento de las secciones
de códigos procedentes de la sección de sistema de archivos en los
bloques de memoria para mantener el direccionamiento contiguo, en
respuesta al programa de compactación.
Tras el redimensionamiento de las secciones de
códigos durante el paso 1006, el paso 1009a cambia las direcciones
de inicio de las secciones de códigos. El paso 1009b genera una
tabla actualizada de direcciones de secciones de códigos, en
respuesta al cambio de las direcciones de inicio de las secciones de
códigos almacenadas en los bloques de memoria. Seguidamente, la
ejecución del software del sistema actualizado durante el paso 1010
comprende el uso de la tabla actualizada de direcciones de secciones
de códigos, después de disponerse la nueva sección de códigos con
las secciones de códigos actuales.
En algunos aspectos del presente invento, la
recepción de una nueva sección de códigos en el paso 1004 comprende
la recepción de una nueva sección de códigos con una tabla
actualizada de direcciones de compensación de símbolos.
Seguidamente, la ejecución del software del sistema actualizado
durante el paso 1010 comprende el uso de la tabla actualizada de
direcciones de compensación de símbolos, después de disponerse la
nueva sección de códigos con las secciones de códigos actuales.
El paso 1003c carga en una memoria volátil la
tabla de direcciones de secciones de códigos y la tabla de
direcciones de compensación de símbolos. El paso 1003d (que no se
ilustra) ejecuta el software del sistema, en respuesta a la carga
de la tabla de direcciones de secciones de códigos y de la tabla de
direcciones de compensación de símbolos en la memoria volátil. El
paso 1009c restablece el dispositivo inalámbrico de comunicaciones.
El paso 1009d, en respuesta al restablecimiento, carga la tabla
actualizada de direcciones de secciones de códigos y la tabla
actualizada de direcciones de compensación de símbolos en una
memoria volátil. El paso 1010 ejecuta el software del sistema
actualizado, en respuesta a la carga de la tabla actualizada de
direcciones de secciones de códigos y de la tabla actualizada de
direcciones de compensación de símbolos en la memoria.
La figura 11 es un diagrama de flujo que
describe otro aspecto del método presentado en las figuras 10a y
10b. La figura 11 comparte varios pasos con las figuras 10a y 10b,
que en aras de la brevedad no se repiten aquí. La recepción de una
nueva sección de códigos durante el paso 1104 comprende la recepción
de un juego de instrucciones de compactación, con instrucciones
para redimensionar las secciones de códigos, y un programa de
compactación. El redimensionamiento de las secciones de códigos
actuales durante el paso 1106 comprende el redimensionamiento en
respuesta a las instrucciones para redimensionar las secciones de
códigos.
El paso 1107 desplaza temporalmente secciones de
códigos a una sección de sistema de archivos. Seguidamente, la
disposición de la nueva sección de códigos con las secciones de
códigos actuales para formar el software del sistema actualizado
del dispositivo inalámbrico durante el paso 1008 comprende el
almacenamiento de las secciones de códigos procedentes de la
sección de sistema de archivos en los bloques de memoria para
mantener el direccionamiento contiguo, en respuesta al programa de
compactación.
La recepción de una nueva sección de códigos
durante el paso 1104 comprende la recepción de una nueva sección de
códigos con una tabla actualizada de direcciones de secciones de
códigos y una tabla actualizada de direcciones de compensación de
símbolos. Seguidamente, la ejecución del software del sistema
actualizado durante el paso 1110 comprende el uso de la tabla
actualizada de direcciones de secciones de códigos y de la tabla
actualizada de direcciones de compensación de símbolos, después de
disponerse la nueva sección de códigos con las secciones de códigos
actuales. Se aportan un sistema y un método de reorganización de la
estructura del software del sistema en un dispositivo inalámbrico
de comunicaciones para facilitar la actualización del software. El
sistema es fácilmente actualizable debido a la disposición de las
bibliotecas de símbolos en secciones de códigos, con tablas para
acceder a las direcciones de inicio de las secciones de códigos en
la memoria y a las direcciones de compensación de símbolos en las
bibliotecas de símbolos. Aunque se han facilitado unos cuantos
ejemplos de estas disposiciones de bibliotecas y tablas de remisión
para una función visualizadora en pantalla, el presente invento no
se limita únicamente a dichos ejemplos. Los expertos sabrán
encontrar otras variaciones y formas de realización del presente
invento.
Claims (19)
1. Un método para reorganizar una nueva sección
de códigos (450, 452, 474) en al menos una sección de códigos
actual (302, 304, 306, 308, 344) almacenada en bloques diferenciados
(400, 402, 404, 406, 460) de una memoria permanente (108)
ejecutados en un dispositivo inalámbrico de comunicación (104),
comprendiendo dicho método: la recepción de una actualización de
software (102) mediante una red de comunicación inalámbrica; el
análisis sintáctico de la actualización del software (102) para
obtener una nueva sección de códigos (450, 452, 474); la
determinación de un tamaño de la nueva sección de códigos (450, 452,
474); la identificación de un bloque (400, 402, 404, 406, 460) de
memoria permanente (108) para almacenar la nueva sección de códigos
(450, 452, 474), en el que el bloque (400, 402, 404, 406, 460) de
memoria permanente (108) tiene una primera dirección de inicio
(318, 320, 322, 324, 408, 410, 412, 414), en el que el paso
identificador también comprende la adjudicación de un nuevo bloque
(400, 402, 404, 406, 460) de memoria permanente (108), en el que el
paso adjudicador también comprende la identificación de una o más
secciones de códigos actuales (302, 304, 306, 308, 344) que
comprenden una biblioteca de símbolos (310, 312, 314, 316, 326,
328, 330, 332, 334, 336, 342) y una porción sin utilizar (340,
346), en el que la sección de códigos actual (302, 304, 306, 308,
344) comienza en una segunda dirección de inicio (318, 320, 322,
324, 408, 410, 412, 414) de un segundo bloque (400, 402, 404, 406,
460) de memoria permanente (108) y la porción sin utilizar (340,
346) finaliza en la dirección final del segundo bloque (400, 402,
404, 406, 460) de memoria permanente (108); la determinación de una
tercera dirección de inicio (318, 320, 322, 324, 408, 410, 412,
414) para la porción sin utilizar (340, 346), en el que la
determinación de la tercera dirección de inicio (318, 320, 322,
324, 408, 410, 412, 414) comprende la lectura de un símbolo
procedente de la biblioteca de símbolos (310, 312, 314, 316, 326,
323, 330, 332, 334, 336, 342) y, utilizando dicho símbolo, la
determinación de una segunda dirección final para la biblioteca de
símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342) de
la sección de códigos actual (302, 304, 306, 308, 344); y la
adjudicación de una porción designada de la memoria permanente
(108) entre la tercera dirección de inicio (318, 320, 322, 324,
408, 410, 412, 414) para la porción sin utilizar (340, 346) y la
dirección final del segundo bloque de memoria al nuevo bloque de
memoria (400, 402, 404, 406, 460); la escritura de la nueva sección
de códigos (450, 452, 474) en el nuevo bloque de memoria (400, 402,
404, 406, 460), en el que la nueva sección de códigos (450, 452,
474) empieza en la primera dirección de inicio (318, 320, 322, 324,
408, 410, 412, 414) del nuevo bloque de memoria; y la actualización
de una tabla de direcciones de secciones de códigos (326) para
añadir una anotación que comprende un identificador de la nueva
sección de códigos (450, 452, 474) y la primera dirección de inicio
(318, 320, 322, 324, 408, 410, 412, 414), en el que el identificador
y la primera dirección de inicio (318, 320, 322, 324, 408, 410,
412, 414) están
relacionados.
relacionados.
2. El método de la reivindicación 1, en el que
la nueva sección de códigos (450, 452, 474) comprende una biblioteca
de símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336,
342).
3. El método de la reivindicación 1, en el que
la determinación del tamaño de la nueva sección de códigos (450,
452, 474) también comprende la descompresión de la nueva sección de
códigos (450, 452, 474).
4. El método de la reivindicación 1, en el que
el símbolo comprende la dirección final correspondiente a la
biblioteca de símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334,
336, 342) de la sección de códigos actual (302, 304, 306, 308,
344).
5. El método de la reivindicación 1, en el que
el símbolo comprende un tamaño de la biblioteca de símbolos (310,
312, 314, 316, 326, 328, 330, 332, 334, 336, 342) de la sección de
códigos actual (302, 304, 306, 308, 344).
6. El método de la reivindicación 1, en el que
el paso de la escritura también comprende la sustitución de una
sección de códigos actual (302, 304, 306, 308, 344) por la nueva
sección de códigos (450, 452, 474).
7. El método de la reivindicación 1, que también
comprende los pasos de obtener los tamaños respectivos de una o más
bibliotecas de símbolos (310, 312, 314, 316, 326, 328, 330, 332,
334, 336, 342) y de una o más secciones de códigos actuales (302,
304, 306, 308, 344); la creación de un programa de compactación que
comprende un orden de reubicación del grupo de secciones utilizadas
en los bloques contiguos (340, 346, 400, 402, 404, 406, 460) de
memoria permanente (108); y la ejecución del programa de
compactación para reubicar una o más porciones sin utilizar en
bloques contiguos (340, 346, 400, 402, 404, 406, 460) de memoria
permanente (108) y combinar una o más porciones sin utilizar (340,
346) en una porción sin utilizar contigua.
8. El método de la reivindicación 7, en el que
el paso de la ejecución también comprende la copia de un grupo de
porciones sin utilizar procedentes de un grupo de secciones de
códigos actuales (302, 304, 306, 308, 344) en una sección de
sistema de archivos (110) de memoria permanente (108); la
adjudicación de un grupo de bloques de memoria contiguos (340, 346,
400, 402, 404, 406, 460) en una memoria permanente (108)
correspondientes al grupo de porciones utilizadas, en el que el
tamaño de cada bloque de memoria adjudicado (340, 346, 400, 402,
404, 406, 460) en el grupo de bloques de memoria contiguos (340,
346, 400, 402, 404, 406, 460) es sustancialmente igual al tamaño de
la correspondiente sección utilizada; y la escritura del grupo de
secciones de códigos actuales (302, 304, 306, 308, 344) en el grupo
de bloques de memoria contiguos (340, 346, 400, 402, 404, 406, 460)
de una memoria permanente (108).
\newpage
9. El método de la reivindicación 1, que también
comprende la actualización de la tabla de direcciones de secciones
de códigos (326) a fin de reflejar una nueva dirección de inicio
(318, 320, 322, 324, 408, 410, 412, 414) para un grupo semejante de
secciones de códigos actuales reubicados (302, 304, 306, 308,
344).
10. El método de la reivindicación 9, que
también comprende la suspensión del funcionamiento del dispositivo
inalámbrico de comunicación (104) antes de ejecutarse el programa de
compactación; y el restablecimiento del dispositivo inalámbrico de
comunicación (104) después de actualizarse la tabla de direcciones
de secciones de códigos (326).
11. Un sistema para reorganizar una nueva
sección de códigos (450, 452, 474) en al menos una sección de
códigos actual (302, 304, 306, 308, 344) de un dispositivo
inalámbrico de comunicación (104), que comprende una memoria
permanente (108) constituida por un grupo de bloques de memoria
contiguamente direccionados (400, 402, 404, 406, 460), teniendo
cada bloque de memoria (400, 402, 404, 406, 460) una dirección de
inicio (318, 320, 322, 324, 408, 410, 412, 414) y una dirección
final; un grupo de secciones de códigos actuales (302, 304, 306,
308, 344) dispuestas en los bloques de memoria (400, 402, 404, 406,
460), en el que cada sección de código comienza en la dirección de
inicio (318, 320, 322, 324, 408, 410, 412, 414) y termina en la
dirección final del bloque de memoria (400, 402, 404, 406, 460) al
que la sección de códigos esté asociada; un grupo de bibliotecas de
símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342)
dispuestas en las secciones de códigos actuales (302, 304, 306,
308, 344), en el que una o más bibliotecas de símbolos (310, 312,
314, 316, 326, 328, 330, 332, 334, 336, 342) se almacenan en cada
sección de códigos (302, 304, 306, 308, 344); una interfaz de
enlace aéreo (150) configurada para recibir una actualización de
software (102) mediante una red de comunicación inalámbrica; y un
compactador de secciones de códigos (342) configurado para
identificar un primer bloque (340, 346, 400, 402, 404, 406, 460) de
memoria permanente (108) y almacenar la nueva sección de códigos
(450, 452, 474) en el primer bloque (340, 346, 400, 402, 404, 406,
460), en el que la identificación comprende la adjudicación de un
nuevo bloque (400, 402, 404, 406, 460) basada en el bloque de
memoria permanente utilizado (108), en el que la adjudicación
también comprende la identificación de una o más secciones de
códigos actuales (302, 304, 306, 308, 344) que comprenden una
biblioteca de símbolos (310, 312, 314, 316, 326, 328, 330, 332,
334, 336, 342) y una porción sin utilizar (340, 346), en el que la
sección de códigos actual (302, 304, 306, 308, 344) comienza en una
primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414)
de un segundo bloque (340, 346, 400, 402, 404, 406, 460) de memoria
permanente (108) y la porción sin utilizar (340, 346) finaliza en
la dirección final del segundo bloque (340, 346, 400, 402, 404, 406,
460) de memoria permanente (108); la determinación de una segunda
dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) para la
porción sin utilizar (340, 346), en el que la determinación de la
segunda dirección de inicio (318, 320, 322, 324, 408, 410, 412,
414) comprende la lectura de un símbolo procedente de la biblioteca
de símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336, 342)
y, utilizando dicho símbolo, la determinación de la segunda
dirección final para la biblioteca de símbolos (310, 312, 314, 316,
326, 328, 330, 332, 334, 336, 342) de la sección de códigos actual
(302, 304, 306, 308, 344); la adjudicación de al menos una porción
designada de la memoria permanente (108) entre la segunda dirección
de inicio (318, 320, 322, 324, 408, 410, 412, 414) para la porción
sin utilizar (340, 346) y la dirección final del segundo bloque de
memoria al nuevo bloque de memoria (400, 402, 404, 406, 460), y la
actualización de una tabla de direcciones de secciones de códigos
(326) para añadir una anotación consistente en un identificador
correspondiente a la nueva sección de códigos (450, 452, 474) y la
primera dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414)
del nuevo bloque de memoria, en el que el identificador y la
primera dirección de inicio (318, 320, 322, 324, 408, 410, 412,
414) están relacionados; y la escritura de la nueva sección de
códigos (450, 452, 474) en el nuevo bloque de memoria (400, 402,
404, 406, 460), en el que la nueva sección de códigos (450, 452,
474) empieza en la primera dirección de inicio (318, 320, 322, 324,
408, 410, 412, 414).
12. El sistema de la reivindicación 11, en el
que la actualización del software comprende una nueva sección de
códigos (450, 452, 474) y un juego de instrucciones.
13. El sistema de la reivindicación 12, en el
que la nueva sección de códigos comprende una biblioteca de
símbolos (310, 312, 314, 316, 326, 328, 330, 332, 334, 336,
342).
14. El sistema de la reivindicación 11, que
también comprende una tabla de direcciones de secciones de códigos
(326) constituida por un grupo de identificadores de secciones de
códigos y sus correspondientes direcciones de inicio (318, 320,
322, 324, 408, 410, 412, 414) en la memoria permanente (108), en el
que el compactador de secciones de códigos (342) se configura para
actualizar la tabla de direcciones de secciones de códigos
(326).
15. El sistema de la reivindicación 14, que
también comprende una tabla de direcciones de compensación de
símbolos (328) constituida por un grupo de identificadores de
símbolos de códigos y sus correspondientes identificadores de
secciones de códigos y direcciones de compensación de memoria, en el
que el compactador de secciones de códigos (342) se configura para
actualizar la tabla de direcciones de compensación de símbolos
(328).
16. El sistema de la reivindicación 11, que
también comprende una sección de sistema de archivos (110)
configurada para almacenar temporalmente secciones de códigos
actuales (302, 304, 306, 308, 344) y en el que el compactador (342)
también se configura para reubicar una sección de códigos actual
(302, 304, 306, 308, 344) en memoria permanente (108) y crear una
sección contigua de memoria permanente sin utilizar (108), adjudicar
un nuevo bloque de memoria (340, 346, 400, 402, 404, 406, 460) en
la sección contigua sin utilizar, y escribir la nueva sección de
códigos (450, 452, 474) en el nuevo bloque de memoria (340, 346,
400, 402, 404, 406, 460).
17. El sistema de la reivindicación 16, en el
que el compactador (342) también se configura para actualizar la
tabla de direcciones de secciones de códigos (326) con una nueva
dirección de inicio (318, 320, 322, 324, 408, 410, 412, 414) para
la sección de códigos actual reubicada (302, 304, 306, 308,
344).
18. El sistema de la reivindicación 17, en el
que el compactador (342) también se configura para suspender el
funcionamiento del dispositivo inalámbrico de comunicación (104)
antes de reubicarse una sección de códigos actual (302, 304, 306,
308, 344) y para restablecer el dispositivo inalámbrico de
comunicación (104) después de actualizarse la tabla de direcciones
de secciones de códigos (326).
19. El sistema de la reivindicación 11, en el
que el primer bloque (340, 346, 400, 402, 404, 406, 460) de memoria
permanente (108) comprende una primera sección de códigos actual
(302, 304, 306, 308, 344) y el compactador (342) también está
configurado para sustituir la primera sección de códigos actual
(302, 304, 306, 308, 344) por la nueva sección de códigos (450,
452, 474).
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US917026 | 2001-07-26 | ||
US09/917,026 US7328007B2 (en) | 2001-07-26 | 2001-07-26 | System and method for organizing wireless communication device system software |
US916900 | 2001-07-26 | ||
US09/916,460 US7159214B2 (en) | 2001-07-26 | 2001-07-26 | System and method for compacting field upgradeable wireless communication device software code sections |
US916460 | 2001-07-26 | ||
US09/916,900 US7027806B2 (en) | 2001-07-26 | 2001-07-26 | System and method for field downloading a wireless communications device software code section |
US09/927,131 US7143407B2 (en) | 2001-07-26 | 2001-08-10 | System and method for executing wireless communications device dynamic instruction sets |
US927131 | 2001-08-10 | ||
US09/969,305 US7386846B2 (en) | 2001-07-26 | 2001-10-02 | System and method for the management of wireless communications device system software downloads in the field |
US969305 | 2001-10-02 | ||
PCT/IB2002/002889 WO2003012639A2 (en) | 2001-07-26 | 2002-07-23 | System and method for compacting field upgradeable wireless communication device software code sections |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2299587T3 true ES2299587T3 (es) | 2008-06-01 |
Family
ID=27542295
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02749158T Expired - Lifetime ES2300454T3 (es) | 2001-07-26 | 2002-07-22 | Sistema y metodo para organizar un software para un dispositivo de comunicacion inalambrica actualizable sobre el terreno. |
ES02749167T Expired - Lifetime ES2249602T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para actualizar datos persistentes en un dispositivo de comunicaciones sin cables. |
ES02749166T Expired - Lifetime ES2299587T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. |
ES02749163T Expired - Lifetime ES2263796T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables. |
ES02749159T Expired - Lifetime ES2247355T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
ES05018919T Expired - Lifetime ES2284112T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
ES02741113T Expired - Lifetime ES2248568T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
Family Applications Before (2)
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. |
Family Applications After (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02749163T Expired - Lifetime ES2263796T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y metodo para el diagnostico en servicio del software de un sistema de dispositivo de comunicaciones sin cables. |
ES02749159T Expired - Lifetime ES2247355T3 (es) | 2001-07-26 | 2002-07-23 | Sistema y procedimiento para la descarga sobre el terreno de una seccion de codigos de software de un dispositivo de comunicacion sin hilos. |
ES02751472T Expired - Lifetime ES2263799T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion telefonica punto por punto. |
ES05018919T Expired - Lifetime ES2284112T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
ES02762622T Expired - Lifetime ES2253553T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para comunicacion bidireccional y ejecucion de conjuntos de instrucciones dinamicas. |
ES02741113T Expired - Lifetime ES2248568T3 (es) | 2001-07-26 | 2002-07-25 | Sistema y metodo para mejorar la seguridad en el reacondicionamiento y reprogramacion de aparatos telefonicos moviles. |
Country Status (9)
Country | Link |
---|---|
EP (12) | EP1410188A2 (es) |
JP (11) | JP4104546B2 (es) |
KR (10) | KR100940178B1 (es) |
CN (10) | CN1288553C (es) |
AT (9) | ATE387658T1 (es) |
AU (9) | AU2002319568A1 (es) |
DE (7) | DE60205755T2 (es) |
ES (9) | ES2300454T3 (es) |
WO (10) | WO2003010656A2 (es) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143407B2 (en) * | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
JP4417123B2 (ja) | 2003-02-19 | 2010-02-17 | パナソニック株式会社 | ソフトウェア更新方法及び無線通信装置 |
EP1654640B1 (en) | 2003-06-04 | 2018-08-01 | Qualcomm Incorporated | Network having customizable generators of sofware updates and mobile electronic devices having customizable updating software |
US7873956B2 (en) | 2003-09-25 | 2011-01-18 | Pantech & Curitel Communications, Inc. | Communication terminal and communication network for partially updating software, software update method, and software creation device and method therefor |
US7257583B2 (en) | 2004-01-09 | 2007-08-14 | Microsoft Corporation | System and method for updating an on-device application catalog in a mobile device receiving a push message from a catalog server indicating availability of an application for download |
KR100620729B1 (ko) * | 2004-03-31 | 2006-09-13 | 주식회사 팬택앤큐리텔 | 소프트웨어 이미지 생성 방법 |
EP1757132B1 (en) * | 2004-05-18 | 2013-07-17 | Kyocera Corporation | Modular data components for wireless communication devices |
GB2416876B (en) * | 2004-08-03 | 2007-01-10 | Nec Technologies | Export file processing within a mobile radio communications device |
US7512939B2 (en) * | 2004-10-05 | 2009-03-31 | Neopost Technologies | System and method of secure updating of remote device software |
EP1659810B1 (en) * | 2004-11-17 | 2013-04-10 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Updating configuration parameters in a mobile terminal |
US9148409B2 (en) | 2005-06-30 | 2015-09-29 | The Chamberlain Group, Inc. | Method and apparatus to facilitate message transmission and reception using different transmission characteristics |
US8422667B2 (en) | 2005-01-27 | 2013-04-16 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
USRE48433E1 (en) | 2005-01-27 | 2021-02-09 | The Chamberlain Group, Inc. | Method and apparatus to facilitate transmission of an encrypted rolling code |
CN101040552B (zh) * | 2005-04-18 | 2010-12-01 | 捷讯研究有限公司 | 控制软件版本更新的方法和*** |
CN100442708C (zh) * | 2005-06-17 | 2008-12-10 | 上海华为技术有限公司 | 一种主备备份的方法及*** |
CN100476728C (zh) * | 2005-08-19 | 2009-04-08 | 光宝科技股份有限公司 | 应用程序更新方法及使用上述方法的移动通讯装置 |
CN100410893C (zh) * | 2005-09-28 | 2008-08-13 | 联想(北京)有限公司 | 自行修复嵌入式设备的主控应用程序的方法及设备 |
CN1980447B (zh) * | 2005-12-06 | 2010-06-16 | 中兴通讯股份有限公司 | 一种通信***软件版本的平滑升级方法 |
CN101401072B (zh) * | 2006-03-10 | 2010-12-15 | 富士通株式会社 | 应用补丁筛选装置以及应用补丁筛选方法 |
EP2025095A2 (en) | 2006-06-08 | 2009-02-18 | Hewlett-Packard Development Company, L.P. | Device management in a network |
EP2047420A4 (en) | 2006-07-27 | 2009-11-18 | Hewlett Packard Development Co | USER EXPERIENCE AND DEPENDENCE MANAGEMENT IN A MOBILE DEVICE |
CN100403263C (zh) * | 2006-08-16 | 2008-07-16 | 华为技术有限公司 | 按配置下载设备软件的方法 |
KR100924647B1 (ko) * | 2008-08-07 | 2009-11-02 | 주식회사 케이티 | 모바일 플랫폼 런타임 다이나믹 링킹 라이브러리 관리 방법및 시스템 |
JP2012523479A (ja) | 2009-04-07 | 2012-10-04 | センシエント カラーズ エルエルシー | 自己分散性粒子並びにその製造方法及び使用方法 |
CN101539885B (zh) * | 2009-04-23 | 2011-06-08 | 大唐微电子技术有限公司 | 一种无线通信模块软件自主空中升级的方法、装置及*** |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN102253847A (zh) * | 2010-05-19 | 2011-11-23 | 宏碁股份有限公司 | 制作***软件的***及***软件的部署方法 |
US8756256B2 (en) * | 2010-05-26 | 2014-06-17 | Qualcomm Incorporated | Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts |
JP6290913B2 (ja) * | 2012-11-09 | 2018-03-07 | コーヒレント・ロジックス・インコーポレーテッド | 多重プロセッサシステムのためのリアルタイム分析及び制御 |
US10064251B2 (en) * | 2013-03-15 | 2018-08-28 | Cree, Inc. | Updatable lighting fixtures and related components |
CN103345412B (zh) * | 2013-07-10 | 2016-08-24 | 华为技术有限公司 | 打补丁的方法及装置 |
US10652743B2 (en) | 2017-12-21 | 2020-05-12 | The Chamberlain Group, Inc. | Security system for a moveable barrier operator |
WO2019213672A1 (en) * | 2018-05-04 | 2019-11-07 | Herdx, Inc. | Food supply tracking, verification, and feedback system |
US11074773B1 (en) | 2018-06-27 | 2021-07-27 | The Chamberlain Group, Inc. | Network-based control of movable barrier operators for autonomous vehicles |
US11423717B2 (en) | 2018-08-01 | 2022-08-23 | The Chamberlain Group Llc | Movable barrier operator and transmitter pairing over a network |
KR102176204B1 (ko) | 2018-10-15 | 2020-11-09 | 김용대 | 유명인 사용물품 기부 중개 서비스 방법 |
US10997810B2 (en) | 2019-05-16 | 2021-05-04 | The Chamberlain Group, Inc. | In-vehicle transmitter training |
JP7461755B2 (ja) * | 2020-02-21 | 2024-04-04 | 日立Astemo株式会社 | 情報処理装置、プログラム更新システム、及びプログラム更新方法 |
Family Cites Families (33)
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 JP JP2003515966A patent/JP4104546B2/ja not_active Expired - Fee Related
- 2002-07-22 CN CNB028148320A patent/CN1288553C/zh not_active Expired - Fee Related
- 2002-07-22 AT AT02749158T patent/ATE387658T1/de not_active IP Right Cessation
- 2002-07-22 EP EP02749157A patent/EP1410188A2/en not_active Withdrawn
- 2002-07-22 ES ES02749158T patent/ES2300454T3/es not_active Expired - Lifetime
- 2002-07-22 AU AU2002319568A patent/AU2002319568A1/en not_active Abandoned
- 2002-07-22 KR KR1020047000719A patent/KR100940178B1/ko not_active IP Right Cessation
- 2002-07-22 KR KR1020047000721A patent/KR100940180B1/ko not_active IP Right Cessation
- 2002-07-22 EP EP02749158A patent/EP1410189B1/en not_active Expired - Lifetime
- 2002-07-22 WO PCT/IB2002/002866 patent/WO2003010656A2/en active Application Filing
- 2002-07-22 WO PCT/IB2002/002867 patent/WO2003010658A2/en active IP Right Grant
- 2002-07-22 EP EP02749161A patent/EP1410191A2/en not_active Withdrawn
- 2002-07-22 CN CNB028148312A patent/CN1275149C/zh not_active Expired - Fee Related
- 2002-07-22 AU AU2002319569A patent/AU2002319569A1/en not_active Abandoned
- 2002-07-22 KR KR1020047000723A patent/KR100911604B1/ko not_active IP Right Cessation
- 2002-07-22 AU AU2002319572A patent/AU2002319572A1/en not_active Abandoned
- 2002-07-22 JP JP2003515964A patent/JP2004537120A/ja not_active Withdrawn
- 2002-07-22 CN CNB028148339A patent/CN1275150C/zh not_active Expired - Fee Related
- 2002-07-22 WO PCT/IB2002/002875 patent/WO2003010663A2/en not_active Application Discontinuation
- 2002-07-22 JP JP2003515971A patent/JP2005505813A/ja not_active Withdrawn
- 2002-07-23 CN CNB028148347A patent/CN1235137C/zh not_active Expired - Fee Related
- 2002-07-23 ES ES02749167T patent/ES2249602T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP05021081A patent/EP1610222B1/en not_active Expired - Fee Related
- 2002-07-23 WO PCT/IB2002/002890 patent/WO2003010664A2/en active IP Right Grant
- 2002-07-23 AT AT02749167T patent/ATE305632T1/de not_active IP Right Cessation
- 2002-07-23 KR KR1020047000726A patent/KR100913659B1/ko not_active IP Right Cessation
- 2002-07-23 EP EP02749167A patent/EP1410193B1/en not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002869 patent/WO2003010662A2/en active IP Right Grant
- 2002-07-23 DE DE60205755T patent/DE60205755T2/de not_active Expired - Lifetime
- 2002-07-23 JP JP2003515972A patent/JP4278513B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000716A patent/KR100940179B1/ko not_active IP Right Cessation
- 2002-07-23 AU AU2002319577A patent/AU2002319577A1/en not_active Abandoned
- 2002-07-23 CN CNB028148371A patent/CN1279447C/zh not_active Expired - Fee Related
- 2002-07-23 AU AU2002319573A patent/AU2002319573A1/en not_active Abandoned
- 2002-07-23 ES ES02749166T patent/ES2299587T3/es not_active Expired - Lifetime
- 2002-07-23 EP EP02749163A patent/EP1410209B1/en not_active Expired - Lifetime
- 2002-07-23 EP EP02749159A patent/EP1410190B1/en not_active Expired - Lifetime
- 2002-07-23 JP JP2003515976A patent/JP4176634B2/ja not_active Expired - Fee Related
- 2002-07-23 CN CNB028148355A patent/CN1235138C/zh not_active Expired - Fee Related
- 2002-07-23 AT AT02749159T patent/ATE302972T1/de not_active IP Right Cessation
- 2002-07-23 AT AT02749166T patent/ATE382159T1/de not_active IP Right Cessation
- 2002-07-23 JP JP2003517749A patent/JP4310186B2/ja not_active Expired - Fee Related
- 2002-07-23 AU AU2002319576A patent/AU2002319576A1/en not_active Abandoned
- 2002-07-23 ES ES02749163T patent/ES2263796T3/es not_active Expired - Lifetime
- 2002-07-23 KR KR1020047000725A patent/KR100918162B1/ko not_active IP Right Cessation
- 2002-07-23 DE DE60211704T patent/DE60211704T2/de not_active Expired - Lifetime
- 2002-07-23 WO PCT/IB2002/002889 patent/WO2003012639A2/en active IP Right Grant
- 2002-07-23 JP JP2003515970A patent/JP4073399B2/ja not_active Expired - Fee Related
- 2002-07-23 KR KR1020047000718A patent/KR100913658B1/ko not_active IP Right Cessation
- 2002-07-23 ES ES02749159T patent/ES2247355T3/es not_active Expired - Lifetime
- 2002-07-23 CN CNB02814838XA patent/CN1288554C/zh not_active Expired - Fee Related
- 2002-07-23 EP EP02749166A patent/EP1410192B1/en not_active Expired - Lifetime
- 2002-07-23 AU AU2002319570A patent/AU2002319570A1/en not_active Abandoned
- 2002-07-23 WO PCT/IB2002/002877 patent/WO2003010668A2/en active IP Right Grant
- 2002-07-23 AT AT02749163T patent/ATE327536T1/de not_active IP Right Cessation
- 2002-07-23 DE DE60206389T patent/DE60206389T2/de not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002912 patent/WO2003013103A2/en active IP Right Grant
- 2002-07-25 AT AT02751472T patent/ATE327628T1/de not_active IP Right Cessation
- 2002-07-25 ES ES02751472T patent/ES2263799T3/es not_active Expired - Lifetime
- 2002-07-25 WO PCT/IB2002/002905 patent/WO2003010932A2/en active IP Right Grant
- 2002-07-25 AU AU2002355308A patent/AU2002355308A1/en not_active Abandoned
- 2002-07-25 JP JP2003516197A patent/JP4106020B2/ja not_active Expired - Fee Related
- 2002-07-25 JP JP2003516189A patent/JP4077408B2/ja not_active Expired - Fee Related
- 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 WO PCT/IB2002/002906 patent/WO2003010942A2/en active IP Right Grant
- 2002-07-25 DE DE60207429T patent/DE60207429T2/de not_active Expired - Lifetime
- 2002-07-25 ES ES05018919T patent/ES2284112T3/es not_active Expired - Lifetime
- 2002-07-25 AT AT05018919T patent/ATE359681T1/de not_active IP Right Cessation
- 2002-07-25 DE DE60211719T patent/DE60211719T2/de not_active Expired - Lifetime
- 2002-07-25 CN CNB028148398A patent/CN100378661C/zh not_active Expired - Fee Related
- 2002-07-25 AT AT02741113T patent/ATE304272T1/de not_active IP Right Cessation
- 2002-07-25 EP EP02751472A patent/EP1423959B1/en not_active Expired - Lifetime
- 2002-07-25 EP EP05018919A patent/EP1601217B1/en not_active Expired - Lifetime
- 2002-07-25 AT AT02762622T patent/ATE310354T1/de not_active IP Right Cessation
- 2002-07-25 KR KR1020047001087A patent/KR100932058B1/ko not_active IP Right Cessation
- 2002-07-25 JP JP2003518153A patent/JP4101752B2/ja not_active Expired - Fee Related
- 2002-07-25 DE DE60206055T patent/DE60206055T2/de not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001088A patent/KR100984895B1/ko not_active IP Right Cessation
- 2002-07-25 ES ES02762622T patent/ES2253553T3/es not_active Expired - Lifetime
- 2002-07-25 DE DE60219536T patent/DE60219536T2/de not_active Expired - Lifetime
- 2002-07-25 ES ES02741113T patent/ES2248568T3/es not_active Expired - Lifetime
- 2002-07-25 KR KR1020047001086A patent/KR100817387B1/ko not_active IP Right Cessation
- 2002-07-25 CN CNB028148401A patent/CN1310488C/zh not_active Expired - Fee Related
- 2002-07-25 AU AU2002328167A patent/AU2002328167A1/en not_active Abandoned
- 2002-07-25 EP EP02741113A patent/EP1410665B1/en not_active Expired - Lifetime
-
2007
- 2007-11-22 JP JP2007303740A patent/JP2008108268A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2299587T3 (es) | Sistema y metodo para compactar secciones de codigos en el software de un dispositivo de comunicacion inalambrico actualizable sobre el terreno. | |
US7644406B2 (en) | Update system capable of updating software across multiple FLASH chips | |
US7159214B2 (en) | System and method for compacting field upgradeable wireless communication device software code sections | |
US7542758B2 (en) | Field downloading of wireless device software | |
US7747997B1 (en) | Firmware update in electronic devices employing SIM card for saving metadata information | |
US7657884B2 (en) | Electronic device supporting multiple update agents | |
JP2009213144A (ja) | 無線パラメータデータ及び無線規制データへの構内接続及び遠隔接続、並びにその方法。 | |
US20040203625A1 (en) | Apparatus and method for managing memory in mobile communication terminal | |
EA001598B1 (ru) | Переносимая защищенная система осуществления транзакций для программируемых устройств с микропроцессорами | |
US20070156976A1 (en) | Resource efficient content management and delivery without using a file system | |
US7328007B2 (en) | System and method for organizing wireless communication device system software | |
US8112070B2 (en) | Electronic device and method for searching a merchandise location | |
KR20060134397A (ko) | 모바일 단말기용 어플리케이션 갱신 시스템 | |
JP2004519025A (ja) | 集積回路におけるファイル共有装置 | |
KR20010011952A (ko) | 모듈별 업데이트 장치 및 그 방법 | |
JP3670162B2 (ja) | 再配置可能なアドインソフト管理システム | |
WO2000023885A1 (en) | Storage of static data for efficient access and field upgrade | |
KR20000040307A (ko) | 대용량 전화번호부 저장방법 | |
US20020065811A1 (en) | Ensured access to static objects inside a dynamic token memory |