Ich wurde beauftragt, die Bibliotheken für den Legacy-Embedded-C-Compiler meines Unternehmens um die Unterstützung von Streams (C89/C90) zu erweitern. Unsere Zielhardware hat normalerweise 1 MB oder weniger Coderaum und hat kein Betriebssystem.Implementieren von C-Datenströmen (FILE *, fopen, fread usw.) auf der eingebetteten Plattform
Wir haben viele Stream-ähnliche Implementierungen in der Codebasis, die ich als Ausgangspunkt verwenden kann. Zum Beispiel eine Konsole, die über einen TCP-Socket oder einen seriellen Port arbeitet, ein Webserver, der von FAT auf SD-Karte oder In-Memory-Datei liest, und sogar ein Firmware-Updater, der von vielen Quellen liest.
Bevor ich das Rad neu erfinde, frage ich mich, ob es Implementierungen gibt, die ich entweder portieren oder als Ausgangspunkt für meine Arbeit verwenden könnte. Obwohl wir unseren Kunden den vollständigen Quellcode zur Verfügung stellen, ist GPL-lizenzierter Code keine Option, da unsere Kunden den Quellcode nicht für ihre Produkte freigeben möchten.
Kann jemand ein Buch (mit Anmerkungen versehene Unix-Quelle, CompSci-Text) oder eine öffentlich zugängliche/BSD-lizenzierte Quelle empfehlen? Ich würde es vorziehen, ein älteres Betriebssystem zu betrachten, das auf ein einzelnes Gerät abzielt, da aktuelle Betriebssysteme ein Wirrwarr von Makros und Ebenen von Typdefinitionen enthalten, die das Folgen selbst einer einfachen Strukturdefinition erschweren.
Genau das, was ich suche - ich werde es vor dem Ende des Tages bestellen. Vielen Dank! – tomlogic
Ein sehr gutes Buch, aber beachten Sie, dass die im Buch veröffentlichte Bibliotheksquelle nicht frei verteilbar ist. Genau genommen müssten Sie die Bibliothek selbst neu implementieren (keine große Aufgabe, aber je nachdem, wie streng Ihre Firma in Bezug auf IP ist, können einige Reifen durchgespult werden müssen). Beachten Sie, dass Plauger die Bibliothek verkauft und sie mit Weiterverkaufsrechten verkauft. Die MSVC-Bibliothek und die IAR-Bibliothek, die ich momentan verwende, sind beide ursprünglich von Plaugher's Dinkumware lizenziert, und ich bin mir sicher, dass einige andere Compiler-Anbieter das gleiche tun. Ich habe keine Ahnung, wie hoch die Kosten wären, wenn du diesen Weg gehen würdest. –
Eine schnelle Folge - ich habe das Buch, und es war eine gute Referenz. Den Kommentar zu den stdlib-Auszügen aus dem C90-Dokument kommentieren. Ich konnte einen Plan für die Aktualisierung unserer vorhandenen Bibliothek nach C90-Konformität dokumentieren und arbeitete an einem Design, um Streams vollständig zu unterstützen. Danke für den Tipp, Neil. – tomlogic