-
Hintergrund
-
Die
vorliegende offenbarte Erfindung bezieht sich im Allgemeinen auf
Boot-Systeme und Verfahren und insbesondere auf Systeme und Verfahren
mit konfigurierbaren Bootprozeduren und entsprechende Geräte.
-
Heutzutage
stellen Embedded-Systeme, wie zum Beispiel Mobiltelefone, Smart-Telefone
und PDAs eine Vielzahl von Funktionalität zur Verfügung, diese umfassen z.B. Telekommunikation,
Musikabspieler, Kameras, Spiele, Internet-Dienstleistungen und andere
Anwendungen, die weit verbreitet sind. Diese Dienste sind jedoch
nur dann funktionsfähig, wenn
das System gebootet ist. Eine Standard-Boot-Prozedur für ein System
ist im Allgemeinen vordefiniert und wird als sehr Zeit beanspruchend
angesehen, da die gesamte Software und Hardware des Systems aktiviert
werden muß.
Bei einem Mobilen Telefon zum Beispiel, umfasst die Standard-Boot-Prozedur
das Lesen von Daten von einer SIM (Subscriber Identity Module) Karte,
das Lesen der Daten von einem Flash-RAM (Random Access Memory) und
die Erkennen und Registrierung in einem mobilen Netzwerk, basierend
auf einem spezifischen Kommunikationsprotokoll. Diese Boot-Prozedur
kann als ineffizient und als nicht angenehm empfunden werden.
-
In
einigen Fällen
werden nur spezifische Anwendungen auf einem System benötigt, wie
zum Beispiel das Durchführen
eines Notrufes, Erlangen von Kontaktlisten oder das Wiedergeben
von Musik, ohne dass die Telekommunikationsdienste benötigt werden.
Im Allgemeinen ist es jedoch notwendig, das gesamte System zu booten,
auch wenn nur eine oder einige Funktionen ausgeführt werden sollen. Das Booten
des gesamten Systems umfasst das Initialisieren aller Anwendungsprogramme.
Es bringt jedoch einen großen
Zeitverlust mit sich, wenn das Booten aller Anwendungen abgewartet
werden muss, auch wenn fast keine von ihnen später benutzt wird. Zusätzlich ist
zu berücksichtigen,
dass Embedded-Systeme im Allgemeinen nur eine sehr beschränkte Leistungskapazität aufweisen,
so dass die Standard-Boot-Prozedur, die grundsätzlich alle Anwendungsprogramme
startet, zu einem verhältnismäßig großen Energieverbrauch
führt.
-
Konventionelle
Boot-Prozeduren für
Embedded-Systeme sind insbesondere dann ineffizient und unflexibel,
wenn nicht alle Dienste darauf benötigt werden.
-
Überblick
-
Durch
die Erfindung werden Boot-Systeme und Verfahren und entsprechende
Geräte
bereit gestellt.
-
Die
Erfindung umfasst ein Boot-System für die Benutzung in einem Gerät, umfassend
eine Vielzahl von Anwendungsmodulen, jedes von diesen umfasst eine
Boot-Prozedur für
eine Anwendung. Falls ein Bootsignal, das zumindest eines der Anwendungsmodule
bestimmt, empfangen wird, bootet das Gerät gemäß der Boot-Prozedur als Antwort
auf das Boot-Signal
das bestimmte Anwendungsmoduls, so dass die entsprechende Anwendung
ausgeführt
wird.
-
Ein
weiteres Boot-System für
die Benutzung in einem Gerät
umfasst eine Vielzahl von Anwendungsmodulen und eine Tabelle. Jedes
Anwendungsmodul umfasst eine Sub-Boot-Prozedur für eine Applikation bzw. Anwendung.
Die Tabelle zeichnet eine Vielzahl von Boot-Prozeduren auf, jede
umfasst zumindest eine der Anwendungsmodule. Falls ein Boot-Signal, das eine
der Boot-Prozedur in der Tabelle bestimmt, empfangen wird, bootet
das Gerät die
entsprechend bestimmten Boot-Prozeduren als Antwort auf das Boot-Signal,
so dass die Sub-Boot-Prozedur des entsprechenden Anwendungsmoduls
entsprechend ausgeführt
werden, und Anwendungen, die den jeweiligen Anwendungsmodule entsprechen,
ausgeführt
werden.
-
Ein
System die für
Benutzung in einem Gerät umfasst
eine Vielzahl von Anwendungsmodulen, eine Tabelle und ein Interface.
Jedes Anwendungsmodul umfasst eine Sub-Boot-Prozedur für eine Anwendung.
Das Interface erlaubt es zumindest eine der Boot-Prozeduren, die zumindest eines der
Anwendungsmodule umfasst, zu editieren und so geänderte Boot-Prozedur in der
Tabelle zu speichern. Falls ein Boot-Signal, das eine Boot-Prozedur in einer
Tabelle bestimmt, empfangen wird, bootet das Gerät entsprechend, so dass die
Sub-Boot-Prozedur des entsprechenden Applikationsmoduls entsprechend
ausgeführt
wird, wodurch Anwendungen, die zu dem entsprechenden jeweiligen
Applikationsmodul gehören,
ausgeführt
werden.
-
Durch
ein Boot-Verfahren für
die Benutzung in einem Gerät
werden eine Vielzahl von Anwendungen bereit gestellt. Jedes Anwendungsmodul
umfasst eine Sub-Boot-Prozedur für
eine Anwendung. Falls ein Boot-Signal, das zumindest eines der Anwendungsmodule
bestimmt, empfangen wird, bootet das Gerät entsprechend, so dass die
entsprechende Anwendung dadurch ausgeführt wird.
-
In
einem anderen Boot-Verfahren, das in einem Gerät verwendet wird, werden eine
Vielzahl von Anwendungsmodulen und eine Tabelle bereitgestellt. Jedes
Anwendungsmodul umfasst eine Sub-Boot-Prozedur für eine Anwendung. Die Tabelle zeichnet
eine Vielzahl von Boot-Prozeduren
auf, jede umfasst zumindest eine der Anwendungsmodule. Falls ein
Boot-Signal das zumindest eine der Boot-Prozeduren bestimmt innerhalb
der Tabelle empfangen wird, bootet das Gerät entsprechend, so dass die
Sub-Boot-Prozedur des entsprechenden Anwendungsmodules ausgeführt wird,
wodurch die Anwendungen korrespondierend zu den entsprechenden Anwendungsmodulen
ausgeführt
werden.
-
Bei
diesem Verfahren für
die Benutzung in einem Gerät
werden eine Vielzahl von Anwendungsmodulen und eine Tabelle bereit
gestellt. Jedes Anwendungsmodul umfasst eine Sub-Boot-Prozedur für eine Anwendung.
Zumindest eine Boot-Prozedur, die zumindest eine der Anwendungsmodule
umfasst, wird editiert und in der Tabelle gespeichert. Falls ein Bootsignal,
das eines der Boot-Prozeduren in der Tabelle bestimmt, empfangen
wird, bootet das Gerät entsprechend,
so dass die Sub-Boot-Prozedur des korrespondierenden Anwendungsmoduls
entsprechend ausgewertet wird, und die Anwendungen entsprechend
der Anwendungsmodule dadurch ausgeführt werden.
-
Die
Boot-Systeme und die Verfahren können die
Form von Programm-Code auf einem greifbaren Medium abgelegt sein.
Wenn der Programm-Code in die Maschine geladen wird, um dort ausgeführt zu werden,
wird die Maschine zu einer Vorrichtung, um das offenbarte Verfahren
auszuführen.
-
Beschreibung
der Zeichnungen
-
Die
Erfindung wird deutlicher unter Berücksichtigung der folgenden
detaillierten Beschreibung, die Bezug nimmt auf die beigefügten Zeichnungen, wobei:
-
1 ein
schematisches Diagramm, das eine Ausführungsform eines Boot-Systems
darstellt, zeigt;
-
2 ein
Flussdiagramm einer Ausführungsform
eines Verfahrens, um die Boot-Prozedur zu
editieren, zeigt;
-
3 ein
schematisches Diagramm, das eine Ausführungsform eines Interfaces
darstellt, das die Anwendungsmodule darstellt, zeigt;
-
4 ein
schematisches Diagramm, das eine Ausführungsform einer Tabelle der
Boot-Prozeduren
darstellt, zeigt;
-
5 ein
Flussdiagramm einer Ausführungsform
eines Boot-Verfahrens, zeigt;
-
6 ein
schematisches Diagramm, das ein Gerät darstellt, bei dem alle Dienste
geladen sind, zeigt; und
-
7 ein
schematisches Diagramm, das ein Gerät darstellt, das nur teilweise
geladene Dienste aufweist, zeigt.
-
Beschreibung
-
Konventionelle
Mobiltelefone sind so entworfen, dass der Benutzer alle Anwendungen
ausführen kann.
Da jedoch einige Nutzer niemals GPRS oder den Wi-Fi-Dienst mit ihren
mobilen Telefonen nutzen, wäre
es für
diese Benutzer vorteilhaft, selbst zu entscheiden, was sie benutzen,
so dass die Leistung und der Speicherplatz weniger stark durch einen nutzlosen
Boot-Detektions-Prozess. belastet werden. Wenn der Benutzer zum
Beispiel reist, so kann der Benutzer entscheiden, dass Anrufe nicht
beantwortet werden und dass lediglich Leistung für die Kamerafunktion des mobilen
Telefons bereitgestellt werden soll. Weiterhin kann durch Entfernen
von nicht notwendigen Anwendungen, wie zum Beispiel Video-Spielprogramme, während des
Re-Bootens dem Benutzer mehr Speicherbereich zur Verfügung gestellt
werden, um mehr Bilder aufzunehmen. Im Flugzeug beispielsweise,
in dem die Kommunikation mit Mobiltelefonen verboten ist, kann der
Benutzer zum Beispiel auswählen,
dass die Telekommunikations-Anwendungen des mobilen Gerätes nicht
gebootet und initiiert werden, so dass andere Anwendungen auf dem
Gerät nicht
gestoppt werden müssen.
-
So
werden ein Boot-System und Verfahren und entsprechende Geräte bereitgestellt. 1 zeigt ein
schematisches Diagramm, das eine Ausführungsform eines Boot-Systems 100 darstellt.
-
Das
System 100 kann ein Embedded-System sein, wie zum Beispiel
ein mobiles Telefon, ein Smart-Phone oder ein PDA. Das System 100 umfasst
eine Bearbeitungseinheit 110 und ein Speichergerät 120.
Die Bearbeitungseinheit 110 kann eine MCU (Micro Control
Unit) sein, wie zum Beispiel ein ARM (Advances RISC Machines) Prozessor,
der die entsprechenden Berechnungen und die Kontrolle über das
System 100 übernimmt.
-
Das
Speichersystem 120 kann NVRAM (Non-Volatile Random Access
Memory) oder eine Anzahl von Hardware-Komponenten, wie zum Beispiel
unterschiedliche ASIC (Application Specific Integrated Circuits)
mit entsprechender Firmware sein. Das Speichersystem 120 umfasst
ein Basis-Funktionsmodul 121, eine Vielzahl von Anwendungsmodulen 122 und
eine Tabelle 123. Das Basis-Funktionsmodul 121 umfasst
Funktionen, die notwendig sind, um das System zu booten. So wird
zum Beispiel, nachdem das System 100 angeschaltet wurde,
das Basis-Funktionsmodul 121 betrieben und kann so die Hardware,
die mit dem entsprechenden Anwendungsmodul 122 in Verbindung
steht, antriggern und sie mit Strom versorgen, damit diese nach
dem System-Boot aktiviert wird. Jedes Anwendungsmodul 122 korrespondiert
mit einem vorhandenen Dienst auf dem System 100. Die jeweils
vorhandenen Dienste oder Services auf dem System 100 sind
unabhängig
voneinander in entsprechenden Anwendungsmodule 122 entwickelt
worden, die jegliche Kombination von Software umfassen können, wie zum
Beispiel eine Program-Code-Library und Hardware oder wie zum Beispiel
ein Codec IC (Integrated Circuit) für eine spezifische Applikation
(Dienst/Service). So kann zum Beispiel ein MP3 (MPEG Audio Layer-3)
Player-Modul eine Anwendung für
die Musikwidergabe und einen Codec IC umfassen. Es versteht sich,
dass die jeweiligen Anwendungsmodule 122 die gleichen Resourcen
(Software oder Hardware) des Systems 100 verwenden können. In
einigen Ausführungsformen
umfassen die Anwendungsmodule 122 weiterhin eine Sub-Boot-Prozedur,
die die zugehörige
Software und Hardware, die für
eine spezifische Anwendung benötigt
werden, triggern. Die Tabelle 123 zeichnet eine Vielzahl
von Boot-Prozeduren für
unterschiedliche Situationen auf.
-
Die
Boot-Prozeduren in den Tabellen sind konfigurierbar. 2 ist
ein Flussdiagramm einer Ausführungsform
eines Verfahrens, um die Boot-Prozedur zu editieren.
-
In
Schritt S210 werden eine Vielzahl von Anwendungsmodulen in einem
Interface angezeigt. In einigen Ausführungsformen sind die Anwendungsmodule
downladbar bzw. herunter ladbare Java-Programme. Benutzer können die
Anwendungsmodule von einem Host eines Serviceprovider herunterladen. In
Schritt S220 ist zumindest ein Anwendungsmodul ausgewählt worden. 3 ist
eine schematisches Diagramm, das eine Ausführungsform eines Interfaces 300,
das die Anwendungsmodule darstellt, zeigt. In dieser Ausführungsform
umfassen die vorhandenen Anwendungsmodule GSM (Global System for
Mobile Telecommunication) Service 310, MP3 Player 320,
Kamera 330, Kontaktliste 340, To-Do-List 350,
Spiele 360, WAP (Wireless Application Protocol) over GPRS
(General Packet Radio Service) 370, und Wi-Fi 380 Module.
Wie zum Beispiel in 3 gezeigt, kann die Kontaktliste 340,
die To-Do-Liste 350 und Wi-Fi 380 ausgewählt werden.
-
Im
Schritt S230 wird ein Identifikationsschlüssel für eine Boot-Prozedur, die die
entsprechenden Anwendungsmodule bestimmt, gesetzt. Der Identifikations-Schlüssel identifiziert
die entsprechenden Boot-Prozeduren während das System bootet. In
einigen Ausführungsformen
kann der Identifikationsschlüssel
zum Beispiel das lange Drücken (ausgedehnte
Auswahl) eines Anschaltknopfes mit einer entsprechenden Kombination
von Tasten sein. Es versteht sich, dass das Interface 300 ein
Feld (das nicht gezeigt ist) umfassen kann, das den Identifikationsschlüssel aufnimmt
und ein Feld (nicht gezeigt) zur Bestätigung der Änderung. In Schritt S240 wird eine
Boot-Prozedur erzeugt und die entsprechend ausgewählten Anwendungsmodulen
und deren Identifikationsschlüssel
gespeichert.
-
4 zeigt
ein schematisches Diagramm, das eine Ausführungsform einer Tabelle 123 der
Boot Prozeduren darstellt. Drei Boot-Prozeduren 410, 420 und 430 sind
in der Tabelle 123 aufgeführt. Boot-Prozedur 410 entspricht
dem MP3-Player 320 und den Wi-Fi 380-Modulen; und der entsprechende Identifikationsschlüsseln ist
das lange Drücken
des AN-/AUS-Schalters
mit den Tasten „##1##". Die Boot-Prozedur 420 umfasst
das Spielmodul 360, der entsprechende Identifikationsschlüssel ist
ein langes Drücken
des AN-/AUS-Schalters
mit den Tasten „##2##". Die Boot-Prozedure 430 entspricht
der Kontaktliste- 340, der To-Do-Liste 350 und
dem Wi-Fi-380 Modul, der entsprechende Identifikationsschlüssel ist
das lange Drücken
des AN-/AUS-Schalters mit den Tasten „##3##". Es versteht sich, dass die jeweiligen
Identifikationsschlüssel
innerhalb der Tabelle 123 weiter modifiziert werden können. In
einigen Ausführungsformen
kann der entsprechende Identifikationsschlüssel ein fester Knopf des mobilen Gerätes sein.
-
5 ist
ein Flussdiagramm einer Ausführungsform
eines Boot-Verfahrens.
-
In
Schritt S510 wird ein Boot-Signal empfangen. Das Boot-Signal wird
basierend auf der Eingabe des Identifikationsschlüssels erzeugt.
In Schritt S520 wird das Boot-Signal mit der Tabelle 123 verglichen, um
die entsprechende Boot-Prozedur zu bestimmen. In Schritt S530 bootet
das System 100 mit der entsprechend lokalisierten Boot-Prozedur.
Es versteht sich von selbst, dass, wenn das Boot-Signal zu keinem
Eintrag in der Tabelle 123 passt, das System mit einer
Standard-Prozedur bootet. Während
des System-Bootens triggert und versorgt das Basis-Funktions-Modul 121 die
Hardware, die mit dem entsprechenden Anwendungsmodul 122 in
Bezug steht, mit Energie und aktiviert sie nach dem System-Boot
und initiiert zusätzlich
die Tastatur (nicht gezeigt) und das Speichersystem 120.
Zusätzlich
kann die Boot-Prozedur
eine Vielzahl von Anwendungsmodulen umfassen. Das Basis-Funktionsmodul 121 verwendet Funktionsaufrufe,
um die Anwendungsmodule oder um AT-Kommandos zu starten, um zwischen
den Anwendungsmodulen zu kommunizieren. Falls das Modul 122 eine
Hardware-Komponente ist, kann das Basis-Funktionsmodul 121 IRQ
(Interrupt)-Signale als dieses als Triggersignal für die Hardware
verwendet. Es versteht sich, dass die Sub-Boot-Prozedur das Triggern von entsprechender
Software und Hardware umfasst, die für eine entsprechende Anwendung
eines Anwendungsmoduls benötigt
wird, das dann entsprechend ausgeführt wird. Es versteht sich, dass
Anwendungsmodule, die nicht in der Boot-Prozedur bestimmt wurden,
nicht während
des Systemboots getriggert werden.
-
6 ist
ein schematisches Diagramm, das ein Gerät 600 zeigt, bei dem
alle Dienste geladen wurden. Nach einer Standart-Boot-Prozedur werden die
Module geladen, diese umfassen das Basis-Funktions-121, GSM-Dienst-310,
MP3-Player-320, das Kamera-330, das Kontaktlisten-340, das To-Do-Listen-350,
das Spiele-360, das WAP über GPRS 370 und
Wi-Fi 380--Modul, die alle auf dem Gerät 600 geladen werden.
In einigen Ausführungsformen
umfassen die Anwendungsmodule Java-Programme und entsprechende Hardware-Module.
Falls ein Boot-Signal, dass der Boot-Prozedur 430 in der Tabelle 123 entspricht,
empfangen wird, bootet das Gerät 300 entsprechend
der Boot-Prozedur 430 so wird lediglich das Kontaktlisten-340,
das To-Do-Listen-350 und das Wi-Fi-380 Modul auf das Gerät 600 geladen,
wie auch in 7 gezeigt wird.
-
Das
Boot-System und das entsprechende Verfahren, oder bestimmte Aspekte
oder Bereiche davon, können
die Form eines Programm-Codes (im Allgemeinen ausführbare Instruktionen)
aufweisen, die auf einem berührbaren
Medium abgelegt sind, wie zum Beispiel eine Floppy Diskette, CD-ROM, Festplatte
oder jeglichen anderen maschinenlesbaren Speichermedien, wobei,
wenn der Programmcode in die Maschine geladen und dort ausgeführt wird,
wie zum Beispiel durch einen Computer, wird die Maschine dadurch
zu einer Vorrichtung, um die entsprechenden Verfahren auszuführen. Die
Verfahren können
ebenfalls in Form von Programmcodes ausgebildet sein, die übertragen
werden, wie zum Beispiel eine elektrische Verdrahtung oder Verkabelung,
durch Glasfaser oder über
andere Arten von Übertragungsmedien,
wobei, wenn der Programmcode empfangen wird und in die Maschine
geladen wird, um dort ausgeführt
zu werden, wie zum Beispiel auf einem Computer, wird die Maschine
zu einer Vorrichtung, um das Verfahren, wie es offenbart wurde, auszuführen. Bei
der Implementierung auf einen allgemeinen Prozessor, wird der Programmcode
in Kombination mit dem Prozessor zur einer einzigartigen Vorrichtung,
die analog zu den durch die Anwendung spezifizierten Logikschaltkreisen
arbeitet.
-
Auch
wenn die Erfindung durch Beispiele und mit Bezug auf bevorzugte
Ausführungsformen beschrieben
wurde, versteht es sich, dass die Anmeldung nicht hierauf limitiert
ist. Fachleute auf dem Gebiet können
eine Vielzahl von Änderungen
und Modifikationen durchführen,
ohne den Schutzumfang und Geist der Erfindung zu verlassen. Der
Schutzumfang der vorliegenden Erfindung soll sich durch folgenden Ansprüche und
deren Äquivalente
bestimmen.