Embedded Firmware-Design
Es werden Systemtests durchgeführt, um sicherzustellen, dass das Produkt die angegebenen Anforderungen erfüllt oder übertrifft.
Das eingebettete Firmware-Design, das Systemtests umfasst, stellt sicher, dass das Produkt die angegebenen Anforderungen erfüllt oder übertrifft.
Unser Firmware-Entwicklungsprozess basiert auf einem fünfstufigen Ansatz
In den letzten Jahren haben wir Softwareentwicklungsteams umfassend beraten und geschult und gleichzeitig Firmware für erfolgreiche, langlebige Produkte und Produktfamilien entwickelt. Die Erstellung einer robusten Firmware-Architektur und die Neustrukturierung von Legacy-Software kann ein komplexer, monatelanger Prozess sein. Wir haben fünf Schlüsselschritte identifiziert, die einen schrittweisen Ansatz bilden und unserem Team den richtigen Start ermöglichen.
Schritt 1: Anforderungen definieren
Bevor ein eingebettetes System oder dessen Firmware entwickelt werden kann, sind klare Anforderungen unerlässlich. Klar definierte Anforderungen geben an, was das Produkt für den Benutzer leisten soll, ohne detailliert zu beschreiben, wie diese Ziele erreicht werden sollen. Es ist wichtig, dass jede Anforderung eindeutig und überprüfbar ist. Eine eindeutige Anforderung ist klar und prägnant und bedarf keiner weiteren Erläuterung.
Testbarkeit ist ein Schlüsselfaktor. Eine gut formulierte Anforderung sollte eine einfache Testerstellung ermöglichen, um ihre Erfüllung zu überprüfen. Ein geeigneter Anforderungssatz besteht aus Aussagen, die mit „Das [Produkt] sollte …“ beginnen. Der Fokus liegt auf dem, was benötigt wird, statt auf der Art und Weise, wie es erreicht wird. Klarheit und Testbarkeit sind daher unerlässlich. Eine effektive Architektur basiert daher auf klar definierten Anforderungen.
Schritt 2: Unterscheiden Sie zwischen Architektur und Design
Unserer Erfahrung nach fällt es vielen Ingenieuren und ihren Managern schwer, zwischen den verschiedenen Aspekten der Firmware-Entwicklung zu unterscheiden. Die Systemarchitektur stellt die höchste Ebene des „Wie“ dar. Sie definiert die dauerhaften Funktionen des Produkts und erschwert dessen Änderung, sobald sie einmal etabliert ist. Um eine korrekte Umsetzung zu gewährleisten, ist eine sorgfältige Prüfung der beabsichtigten und zulässigen Verwendung des Produkts erforderlich.
Das Design eines Systems stellt die Zwischenebene dar. Die Architektur umreißt zwar die grundlegenden Funktionen, spezifiziert jedoch keine Funktions- oder Variablennamen. Ein Firmware-Designdokument enthält diese Details, einschließlich Aufgabennamen und Verantwortlichkeiten innerhalb bestimmter Subsysteme oder Gerätetreiber, des verwendeten Echtzeitbetriebssystems (falls vorhanden) und der spezifischen Schnittstellen zwischen den Subsystemen.
Die Implementierungsphase stellt die unterste Ebene der Projektmanagementhierarchie dar. Sobald die Schnittstellen in der Entwurfsphase klar definiert sind, können Ingenieure mit der parallelen Implementierung der verschiedenen Komponenten beginnen. Die Herausforderungen können je nach Branche unterschiedlich sein, lassen sich aber typischerweise in drei Hauptkategorien einteilen: Einhaltung von Echtzeitterminen, Tests und Management der Diversität. Diese Themen werden in den letzten drei Schritten behandelt.
Schritt 3: Zeitmanagement
Einige Produktanforderungen enthalten explizite Zeitvorgaben. Typischerweise beinhalten Produkte eine Kombination aus Nicht-Echtzeit-, Soft-Echtzeit- und Hard-Echtzeit-Anforderungen. Soft-Deadlines sind dabei oft am schwierigsten zu definieren, zu testen und umzusetzen. Sobald die Deadlines festgelegt sind, besteht der erste Schritt im Architekturprozess darin, möglichst viele zeitkritische Anforderungen von der Software auf die Hardware zu verlagern.
Die Trennung der Echtzeitfunktionen von der Hauptsoftware bietet zwei wesentliche Vorteile. Erstens vereinfacht sie die Entwicklung und Implementierung der Nicht-Echtzeitsoftware. Durch die Beseitigung zeitlicher Einschränkungen im Code können selbst unerfahrene Entwickler Beiträge leisten, ohne die Benutzersicherheit zu gefährden. Zweitens erleichtert die Konsolidierung der Echtzeitfunktionen die Analyse und stellt sicher, dass alle Termine konsequent eingehalten werden.
Schritt 4: Design mit Blick auf Tests
Es ist wichtig, jedes eingebettete System auf mehreren Ebenen zu testen. In vielen Fällen ist das Testen auf verschiedenen Ebenen nicht nur sinnvoll, sondern sogar obligatorisch.
Zu den häufigsten Teststufen gehören
1. Systemtests haben bestätigt, dass das Produkt als Ganzes die spezifizierten Anforderungen erfüllt oder übertrifft. Es wird empfohlen, diese Tests außerhalb der Entwicklungsabteilung durchzuführen, obwohl sie in ein von Ingenieuren entwickeltes Testsystem integriert werden können.
2. Integrationstests werden durchgeführt, um sicherzustellen, dass die in den Architekturdiagrammen dargestellten Teilsysteme ordnungsgemäß interagieren und die erwarteten Ergebnisse liefern. Diese Tests werden typischerweise von einem Testteam oder einer Einzelperson in der Softwareentwicklungsabteilung entwickelt.
3. Unit-Tests stellen sicher, dass einzelne Softwarekomponenten, wie in der Zwischenentwurfsphase definiert, wie vorgesehen funktionieren. Diese Tests konzentrieren sich auf die öffentliche API (Application Programming Interface), die die Komponente anderen Komponenten zur Verfügung stellt. Unit-Tests werden in der Regel von denselben Personen entwickelt, die auch den zu testenden Code schreiben.
Von den drei Testarten sind Systemtests am einfachsten zu entwickeln. Für Engineering- und Werksabnahmetests kann ein Test-Harness erforderlich sein, dieser Prozess ist jedoch im Allgemeinen einfacher als Integrations- und Unit-Tests, die einen besseren Einblick in den Gerätebetrieb erfordern. Um die Entwicklung, Nutzung und Wartung von Integrations- und Unit-Tests zu optimieren, empfiehlt es sich, die Firmware so zu gestalten, dass sie mit einem Software-Test-Framework übereinstimmt. Der effektivste Ansatz besteht darin, die Interaktionen zwischen allen Softwarekomponenten auf den zu testenden Ebenen zu strukturieren.
Schritt 5: Bereiten Sie sich auf Veränderungen vor
In der Phase der Firmware-Architektur ist es wichtig, die Verwaltung der Funktionsvielfalt und Produktanpassungen zu priorisieren. Für eine effektive Änderungsplanung ist es entscheidend, zunächst die wahrscheinlichen Änderungen an Ihrem Produkt zu identifizieren. Anschließend sollte die Firmware so konzipiert werden, dass sie diese Änderungen möglichst effizient berücksichtigt. Eine gut konzipierte Architektur ermöglicht die Verwaltung der Funktionsvielfalt durch einen einzigen Build mit Kompilier- und/oder Laufzeitschaltern und ermöglicht gleichzeitig das nahtlose Hinzufügen neuer Funktionen, ohne die bestehende Funktionalität zu beeinträchtigen.
Embedded Firmware-Design| Hochwertige Selbstbedienungskiosklösungen |Jarltech
Seit 1987 in Taiwan ansässig,Jarltech International Inc.ist Entwickler und Hersteller von Kassen- und Kiosksystemen für Restaurants, Einzelhandelsgeschäfte und Supermärkte. Zu den wichtigsten Software- und Hardwareprodukten gehören:Embedded Firmware-Design, POS-Systeme für kleine Unternehmen, Selbstbedienungskioske, Chipkartenleser, Bluetooth-Thermodrucker, eingebettete Motherboards und All-in-One-Panel-PCs mit Schwerpunkt auf der Bereitstellung interaktiver Kiosklösungen.
HebelwirkungJarltechWir verfügen über mehr als 30 Jahre Erfahrung in der Entwicklung innovativer Kassen- und Kiosksysteme, die auf die vielfältigen Geschäftsanforderungen in der Gastronomie, im Einzelhandel und in Supermärkten zugeschnitten sind. Unsere Speziallösungen, darunter IPC, Touch-Monitor, Thermodrucker und Chipkartenleser, optimieren Ihre Geschäftsabläufe und sorgen für reibungslose Transaktionen und ein optimales Kundenerlebnis.
Jarltechbietet seinen Kunden globale B2B-Lösungen mitJarltech's POS- und Kiosksysteme seit 1987, beide mit fortschrittlicher Technologie und 37 Jahren Erfahrung,Jarltechstellt sicher, dass die Anforderungen jedes Kunden erfüllt werden.