Eingebettetes 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 umfangreiche Beratungen und Schulungen mit Softwareentwicklungsteams durchgeführt und gleichzeitig Firmware für erfolgreiche, langlebige Produkte und Produktfamilien entwickelt. Obwohl die Erstellung einer robusten Firmware-Architektur und die Neustrukturierung von Legacy-Software ein komplexer, monatelanger Prozess sein kann, haben wir fünf Schlüsselschritte identifiziert, die einen schrittweisen Ansatz bilden und es unserem Team ermöglichen, auf dem richtigen Weg zu beginnen.
Schritt 1: Anforderungen definieren
Bevor ein eingebettetes System oder seine Firmware entworfen werden kann, sind klare Anforderungen unerlässlich. Gut definierte Anforderungen geben an, was das Produkt für den Benutzer tun soll, ohne im Detail anzugeben, wie diese Ziele erreicht werden sollen. Es ist wichtig, dass jede Anforderungserklärung eindeutig und testbar ist. Eine eindeutige Erklärung ist klar und prägnant und erfordert keine weitere Erklärung.
Testbarkeit ist ein Schlüsselfaktor. Eine gut formulierte Anforderung sollte eine unkomplizierte Testerstellung ermöglichen, um ihre Erfüllung zu überprüfen. Ein geeigneter Satz von Anforderungen besteht aus Aussagen, die mit „das [Produkt] sollte …“ beginnen, sich auf das konzentrieren, was benötigt wird, und nicht darauf, wie es erreicht wird, und Klarheit und Testbarkeit gewährleisten. Folglich beruht eine effektive Architektur auf gut definierten Anforderungen.
Schritt 2: Unterscheiden Sie zwischen Architektur und Design
Unserer Erfahrung nach haben viele Ingenieure und ihre Manager Schwierigkeiten, zwischen den verschiedenen Aspekten der Firmware-Entwicklung zu unterscheiden. Die Systemarchitektur stellt die höchste Ebene des WIE dar, definiert die dauerhaften Funktionen des Produkts und macht es schwierig, sie zu ändern, sobald sie einmal festgelegt ist. Sie erfordert eine sorgfältige Prüfung der beabsichtigten und zulässigen Verwendung des Produkts, um sicherzustellen, dass sie richtig umgesetzt wird.
Der Entwurf eines Systems stellt die Zwischenschicht des Wie dar. Während die Architektur die groben Merkmale umreißt, werden darin keine Funktions- oder Variablennamen angegeben. Ein Firmware-Entwurfsdokument füllt diese Details aus, einschließlich Aufgabennamen und Verantwortlichkeiten innerhalb bestimmter Subsysteme oder Gerätetreiber, des verwendeten RTOS (falls vorhanden) und der Einzelheiten der Schnittstellen zwischen Subsystemen.
Die Implementierungsphase stellt die unterste Ebene der Projektmanagementhierarchie dar. Wenn 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 normalerweise in drei Hauptkategorien einteilen: Einhaltung von Echtzeitfristen, Testen und Verwalten von Vielfalt. Diese Probleme werden in den letzten drei Schritten behandelt.
Schritt 3: Zeitmanagement
Einige Produktanforderungen geben explizite Zeitbeschränkungen an. Typischerweise enthalten Produkte eine Kombination aus Nicht-Echtzeit-, Soft-Echtzeit- und Hard-Echtzeit-Anforderungen. Von diesen sind Soft-Deadlines oft am schwierigsten klar zu definieren, zu testen und umzusetzen. Sobald Deadlines identifiziert sind, besteht der erste Schritt im Architekturprozess darin, so viele zeitkritische Anforderungen wie möglich von der Software auf die Hardware zu verlagern.
Die Trennung der Echtzeitfunktionalität von der Hauptsoftware bietet zwei wesentliche Vorteile. Erstens vereinfacht sie die Entwicklung und Implementierung der Nicht-Echtzeitsoftware. Durch die Beseitigung zeitlicher Beschränkungen im Großteil des Codes können selbst unerfahrene Entwickler ihren Beitrag leisten, ohne die Benutzersicherheit zu gefährden. Zweitens erleichtert die Konsolidierung der Echtzeitfunktionalität die Analyse und stellt sicher, dass alle Fristen konsequent eingehalten werden.
Schritt 4: Designen Sie mit Blick auf Tests
Es ist wichtig, jedes eingebettete System auf mehreren Ebenen zu testen. In vielen Fällen ist das Testen auf mehreren 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 angegebenen Anforderungen erfüllt oder übertrifft. Es wird empfohlen, diese Tests außerhalb der technischen Abteilung durchzuführen, obwohl sie in einen von Ingenieuren entwickelten Testrahmen integriert werden können.
2. Integrationstests werden durchgeführt, um sicherzustellen, dass Teilmengen der Subsysteme, wie in den Architekturdiagrammen dargestellt, ordnungsgemäß interagieren und die erwarteten Ergebnisse liefern. Diese Tests werden normalerweise von einem Testteam oder einer Einzelperson in der Softwareentwicklungsabteilung entwickelt.
3. Unit-Tests garantieren, 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 anbietet. Normalerweise werden Unit-Tests von denselben Personen entwickelt, die den zu testenden Code schreiben.
Von den drei Testarten sind Systemtests am einfachsten zu entwickeln. Für technische und Werksabnahmetests kann ein Test-Harness erforderlich sein, aber dieser Prozess ist im Allgemeinen einfacher als Integrations- und Unit-Tests, die mehr interne Einblicke in den Betrieb des Geräts erfordern. Um die Entwicklung, Verwendung und Wartung von Integrations- und Unit-Tests zu optimieren, ist es ratsam, die Firmware so zu entwerfen, dass sie mit einem Softwaretest-Framework übereinstimmt. Der effektivste Ansatz besteht darin, die Interaktionen zwischen allen Softwarekomponenten auf den Ebenen zu strukturieren, die Sie testen möchten.
Schritt 5: Bereiten Sie sich auf Veränderungen vor
Während der Firmware-Architekturphase ist es wichtig, der Verwaltung der Funktionsvielfalt und der Produktanpassungen Priorität einzuräumen. Um Änderungen effektiv planen zu können, ist es entscheidend, zunächst die Arten von Änderungen zu identifizieren, die wahrscheinlich in Ihrem Produkt auftreten werden. Anschließend sollte die Firmware so konzipiert werden, dass diese Änderungen so effizient wie möglich berücksichtigt werden. Eine gut konzipierte Architektur ermöglicht die Verwaltung der Funktionsvielfalt durch einen einzigen Build mit Kompilierzeit- und/oder Laufzeitschaltern und ermöglicht gleichzeitig das nahtlose Hinzufügen neuer Funktionen, ohne die vorhandene Funktionalität zu beeinträchtigen.
Eingebettetes Firmware-Design| Hochwertige Selbstbedienungskiosklösungen |Jarltech
Seit 1987 in Taiwan ansässig,Jarltech International Inc.ist Entwickler und Hersteller von POS- und Kiosksystemen für Restaurants, Einzelhandelsgeschäfte und Supermärkte. Zu den wichtigsten Software- und Hardwareprodukten gehören:Eingebettetes Firmware-Design, POS-Systeme für kleine Unternehmen, Selbstbedienungskioske, Chipkartenleser, Bluetooth-Thermodrucker, eingebettete Motherboards und All-in-One-Panel-PCs, mit dem Schwerpunkt auf der Bereitstellung interaktiver Kiosklösungen.
HebelwirkungJarltechÜber 30 Jahre Erfahrung in der Entwicklung innovativer POS- und Kiosksysteme, die auf die vielfältigen Geschäftsanforderungen in Restaurants, Einzelhandelsgeschäften und Supermärkten zugeschnitten sind. Unsere Speziallösungen, darunter IPC, Touch-Monitor, Thermodrucker und Chipkartenleser, sind darauf ausgelegt, Ihre Geschäftsabläufe zu verbessern und reibungslose Transaktionen und ein verbessertes Kundenerlebnis zu gewährleisten.
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.