Das Board Support Package (BSP) stellt die Softwareverbindungsschicht dar, die es traditionell einem Echtzeitbetriebssystem (RTOS) ermöglicht, auf einer bestimmten Hardwareumgebung zu laufen. Genauer gesagt, eine kundenspezifische Leiterplatte für eingebettete Systeme mit vielen anwendungsspezifischen Peripheriegeräten und Hardwarekomponenten.
Mit anderen Worten, es handelt sich um einen notwendigen Code, der in Treiber und andere Routinen übersetzt wird, die für bestimmte Hardware entwickelt wurden und ohne die das RTOS in dieser Umgebung nicht funktionieren kann.
Wie hoch sind die Kosten für eine BSP-Entwicklung? Das hängt von vielen Faktoren ab. Wir werden sie in diesem Artikel behandeln.
Die Entwicklungskosten verstehen
Die Kosten für die Entwicklung des Board Support Package (BSP) werden durch die Anzahl der Low-Level-Komponenten des Betriebssystems bestimmt, die angepasst oder von Grund auf neu entwickelt werden müssen. Ein weiterer wichtiger Faktor sind die erforderlichen Zertifizierungen, die das System aufweisen muss, das die erforderliche Robustheit des Board-Support-Pakets deutlich erhöht und somit einen höheren Entwicklungsaufwand verursacht.
Die Platine/Hardware selbst ist der Ausgangspunkt für die Kosten einer BSP-Entwicklung.
Je komplexer die Platine und die Peripheriegeräte sind (wie USB, Grafikkarten oder Hochgeschwindigkeits-Peripheriegeräte), desto höher sind die Kosten.
Außerdem können die Kosten durch die Art des BSP stark beeinflusst werden. Kundenspezifischer BSP oder zertifizierter BSP?
Kundenspezifisches Board-Support-Paket (BSP)
Wie der Name schon sagt, handelt es sich um ein maßgeschneidertes BSP für ein Standardsystem, das auf einer Liste von Anforderungen eines Kunden basiert.
Die Anzahl der Komponenten, die angepasst werden müssen, wirkt sich direkt auf die BSP-Entwicklungskosten aus. Bei den benutzerdefinierten Komponenten kann es sich um plattformspezifische Hardware-Beschleuniger, Peripheriegeräte, die Gerätetreiber benötigen, Low-Level-Initialisierungscode bis hin zur benutzerdefinierten Architekturportierung des gesamten Betriebssystems auf eine neue Architektur handeln, die das Betriebssystem zuvor nicht unterstützt hat.
Lassen Sie uns zum besseren Verständnis eine Fallstudie betrachten.
Medizinisches Gerät
Systemumfang: Portierung eines Legacy BSP von einer 16-Bit-Plattform auf einen neuen 32-Bit-Mikrocontroller.
Hauptentwicklungsbereiche:
- Portierung der Betriebssystemarchitektur
- Entwicklung von Gerätetreibern
- Entwicklung des Bootloaders
- Low-Level-Initialisierungscode (Systemtaktgeber, Caching-Modi, Speicherpartitionierung)
- Systemtests
Die Portierung des neuen BSP auf eine neue Hardware-Plattform stellte den anspruchsvollsten Teil der Entwicklungsarbeit dar. Der Grund dafür sind die Eigenschaften der neuen Hardware:
- Viele benutzerdefinierte Peripheriegerät
- SoC-Architektur, die vom Betriebssystem nicht unterstützt wird
- Mikrocontroller ist ein medizinischer Standard und erforderte anspruchsvolle Tests (Modul- und Integrationstests).
Außerdem konnte der Kunde aufgrund des proprietären Betriebssystems nicht von der Unterstützung der Open-Source-Community profitieren, das zu einer Menge benutzerdefinierter Low-Level-Entwicklung und einem langfristigen Wartungsplan führte.
Zertifiziertes Board-Support-Paket (BSP)
Im Vergleich zu den Custom BSPs besteht der Unterschied zu den Certified BSPs darin, dass sie unter Berücksichtigung der Spezifikationen und Anpassungen der gewünschten Zertifizierung entwickelt werden.
Zertifizierte BSPs fallen in die Kategorie, in der Genauigkeit das dominierende Wort ist. In bestimmten Branchen wie der Medizin, der Automobilbranche, der Luftfahrt oder dem Militär gibt es keinen Raum für Fehler. Daher müssen die hier verwendeten Systeme und Geräte sowie die Komponenten bestimmten Normen entsprechen. Diese Regeln gelten auch für das BSP.
Die internationale Norm ISO 26262 gilt für die Sicherheits- und Automobilbranche. Alle BSPs, die für diese Komponenten/Subsysteme entwickelt werden, müssen die Norm einhalten. Aus diesem Grund sind die Entwicklungskosten im Vergleich zwischen einem BSP für ein Standardsystem und einem kundenspezifischen BSP für ein sicherheitsrelevantes System wesentlich höher. Das Gleiche gilt für die ISO 13485 in der medizinischen Industrie.
DO-254 Design Assurance for Airborne Electronic Hardware ist die Zertifizierung für die Herstellung von luftgestützter elektronischer Hardware. Sie ist eng mit der DO-178C Software Considerations in Airborne Systems und der Gerätezertifizierung verknüpft, die für alle kommerziellen softwarebasierten Luftfahrtsysteme gilt. Im Vergleich zu anderen zertifizierten Systemen können sich die Entwicklungskosten verdoppeln, verdreifachen oder sogar noch höher liegen.
Warum ist also ein BSP für ein zertifiziertes System viel teurer als ein kundenspezifischer BSP für ein Standardsystem?
- Es ist ein zusätzlicher Entwicklungsaufwand erforderlich, da nicht nur das Board von Anfang an individuell ist. Das Betriebssystem ist ebenfalls auf die Einhaltung der strengen Zertifizierungsvorschriften zugeschnitten. Daher muss auch der BSP fast vollständig angepasst werden. Vorhandene Open-Source-Teile können hier nicht eingesetzt werden.
- Die Liste der benutzerdefinierten Funktionen und Anforderungen ist viel höher und dies bedeutet auch einen strengen Entwicklungsprozess gemäß dem spezifischen Industriestandard, der alles von der Rückverfolgbarkeit der Anforderungen bis zur detaillierten Designdokumentation usw. umfasst.
- Der Entwicklungsprozess für jedes Teil ist sehr streng. Dabei handelt es sich um umfangreiche Prozesse, von hochrangigen Softwareanforderungen bis hin zu Verzweigungen im Maschinencode. Sie alle sind erforderlich, um sicherzustellen, dass jeder Teil der Software im System von vornherein wesentlich ist, korrekt geschrieben und angemessen getestet wird.
- Jede Softwarekomponente muss rigoros getestet werden. Dazu gehören Einheitstests, Modultests und Integrationstests.
- Dies setzt eine statische Codeanalyse voraus. Der geschriebene Code muss die MISRA-Konformität einhalten (2020 ist die aktuellste Version).
- Dies impliziert eine Aufteilung des Speichers in sicherheitsrelevante und nicht sicherheitsrelevante Partitionen.
- Er impliziert Zuverlässigkeit und Redundanz. Im Falle eines Ausfalls muss das System über Teilkomponenten verfügen, die die Aufgaben der fehlerhaften Komponente übernehmen können.
Zu berücksichtigende Aspekte
System on a Chip (SoC) und Betriebssystem
Die Verbindung zwischen dem Betriebssystem und dem SoC, für das das BSP bestimmt ist, wirkt sich auf die Kosten aus. Die BSP-Entwicklung erfordert einen geringeren Aufwand, wenn der SoC stark in das Betriebssystem integriert ist. Daher werden die Kosten für die Entwicklung niedriger sein.
Ein weiterer Aspekt ist, wie verbreitet das Betriebssystem ist und wie veraltet das SoC ist. Da sie bereits seit einiger Zeit auf dem Markt sind und sich großer Beliebtheit erfreuen, können Open-Source-Komponenten bei der BSP-Entwicklung wiederverwendet werden. Dies führt auch zu einem einfacheren Entwicklungsprozess und somit zu niedrigeren Entwicklungskosten.
Wartung und Unterstützung
Sie kaufen die BSPs jetzt, aber was passiert in der Zukunft? Sie möchten sicherstellen, dass Sie dafür Unterstützung erhalten. Das RTOS könnte auf eine neuere Version aktualisiert werden, das wiederum für die langfristige Funktionalität des Boards berücksichtigt werden muss. Wenn das Board nicht so beliebt ist, wird es beim Upgrade inkompatibel sein.
Ein zusätzlicher Kostenpunkt, der berücksichtigt werden muss, ist der Kauf eines Wartungs- und Supportplans. Das ist ein Muss, wenn Sie auf dem Laufenden bleiben wollen und keine unangenehmen Zeiten erleben wollen, falls es eine Störung im System gibt. Ein effektiver Weg, um die langfristige Wartung zu unterstützen, ist, wenn möglich, die Verwendung eines beliebten Open-Source-Betriebssystems. Auf diese Weise können Sie von der Unterstützung durch die Gemeinschaft profitieren. Die Open-Source-Gemeinschaft könnte die benutzerdefinierten Funktionen für Ihr Produkt pflegen, sobald sie als Upstream veröffentlicht und von der Gemeinschaft/dem jeweiligen Betreuer genehmigt wurden.
Liste der kundenspezifischen Anforderungen
Je mehr individuelle Anforderungen ein Kunde hat, desto mehr Aufwand muss ein Entwicklungsteam betreiben. Viele zusätzliche Funktionen, die bei der BSP-Entwicklung zum Einsatz kommen, werden ebenfalls einen höheren Entwicklungsaufwand erfordern. In diesem Fall wirkt sich der Umfang der Entwicklung direkt auf die Kosten aus.
Schlussfolgerung
Zusammenfassend lässt sich sagen, dass es keine direkte Antwort darauf gibt, wie viel eine BSP-Entwicklung kostet. Es kommt ganz darauf an, was Sie erreichen wollen und was Sie kurz- oder langfristig brauchen.
Setzen Sie sich mit uns in Verbindung. Unser professionelles Beraterteam ist bereit, sich Ihre Anforderungen anzuhören, Ihnen ein Angebot zu unterbreiten und die beste Lösung zu finden!
Weitere Artikel anschauen:
Proc-Dateisystem in Linux
Das Proc-Dateisystem ist eines der am häufigsten verwendeten simulierten Dateisysteme des Linux-Betriebssystems. Wenn das System neu gestartet wird, wird dieses Dateisystem
OpenRC
OpenRC ist ein abhängigkeitsbasiertes Init-System, das für die Arbeit mit Unix-ähnlichen Betriebssystemen entwickelt wurde. Es hält die Kompatibilität mit dem vom System bereitgestellten Init-System aufrecht, das
Yocto-Projekt
Das Yocto-Projekt ist ein Open-Source-Community-Projekt, das Entwicklern hilft, angepasste Systeme auf der Basis von Linux zu erstellen. Es verfügt über ein zugängliches Toolset, das
Software-Tests
Die Untersuchung der Artefakte und des Verhaltens der zu testenden Software wird als Softwaretest bezeichnet. Außerdem wird ermittelt, ob die tatsächlichen Ergebnisse
Platzierung der Komponenten
Die Platzierung von Bauteilen ist einer der kritischsten Teile des PCB-Designs. Zunächst müssen Sie die grundlegenden Kriterien für die Anordnung von
Linux-Systemprogrammierung
Dieser Artikel konzentriert sich auf Linux -Systemaufrufe und andere Low-Level-Operationen, wie zum Beispiel die Funktionen der C-Bibliothek. Systemprogrammierung ist der Prozess der Erstellung von