Frage

Ich habe eine vorhandene Codebasis eine Windows-Umgebung und mit Blick auf die Zukunft Targeting, möchte diese als Cross-Plattform wie möglich machen. Ich habe durch die Verwendung Cross-Plattform-Bibliotheken einige Sucess mit Standard-Linux-Distributionen habe aber mag dies in Echtzeit verlängern und oder Embedded-Betriebssysteme.

Wäre es möglich, in dem Hafen der größte Teil der Codebasis auf solche Systeme, oder wäre es reimplentations auf diese Umgebung gezielt erfordern? Wenn Teile neu erstellt werden müssen, macht die Entwicklung für diese Systeme eine andere Art von Design-Ansatz erfordern? Einige Anbieter ihre eigenen IDE für die Entwicklung liefern, ist diese eine Notwendigkeit oder wir können oder ist es möglich, auf einem GNU Toolchain Typ Build-Prozess zu standardisieren?

Ein potentielles Schlagloch Unterschiede in IPC Handhabung sein könnte, aber ohne weitere Exposition ist es schwierig, einen Griff auf den Besonderheiten zu erhalten.

NB obwohl Windows-basierte derzeit gibt es nicht besonders starken Gebrauch von der Win32-API (hauptsächlich COM) oder Windows-Typen ist.

Danke

bearbeiten :: die Code-Basis ist C \ C ++

War es hilfreich?

Lösung

Wenn Sie die Windows-COM-Schnittstelle verwenden (ich nehme an, Sie nicht über serielle Schnittstelle sprechen hier, aber die Common Object Model), der Code kann entfernt werden müssen abstrahiert das.

Wie Sie über IPC sprechen, dann ist dies offensichtlich eine Multi-Tasking / Multi-Processing-Typ Code-Basis. Damit der Fall ist, müssen Sie irgendwie einen Weg, um mit der Umwelt Unterschied befassen.

Zu allererst Sie eine Art von RTOS da Ihre Anwendung Multi-Tasking ist. Wie Sie einen Port zu Linux haben, können Sie in mit einer Version von Echtzeit-Linux zu suchen. Dies würde die Anzahl der Ports minimieren Sie müssten tun.

Wenn Sie nicht möchten, dass Linux als Embedded-Plattform verwenden, um Ihren Code POSIX-kompatibel (Linux) zur Verfügung und stellen Sie sicher, dass das RTOS Sie Unterstützung POSIX wählen. Auf diese Weise, den Port auf Linux und die Embedded-Plattform würden meist die gleiche sein.

Unterm Strich wird COM Ihre albatros sein.

Da Sie nicht die Verwendung einer GUI erwähnen, werden wir nicht ansprechen , dass können von Würmern:)

Andere Tipps

Wenn die App meistens C und Posix dann ist es nicht zu hart. Eingebettete Plattformen können heute bedeuten eine fast vollständige Kopie von XP oder Linux auf einer Compact-Flash-Karte ausgeführt wird.

Für die gui beide QT und WX haben Versionen eingebettet, die direkt die Widgets ziehen.

Der wichtigste Schritt ist, alle OS Abhängigkeit der Funktionen von der Projektlogik zu trennen.

Wenn Sie das tun, werden Sie sofort sehen, wie viel Code, den Sie in den Hafen haben für die Migration auf neue OS, und Sie werden in der Lage sein, gut zu starten portieren.

Abhängig von den Fähigkeiten Ihrer Embedded-Plattform. Wenn es einen 8-Bit ist, haben Sie einen harten Weg vor ihnen bekommen aber wenn es 32-Bit mit anständigem RAM und so gibt es eine Menge Open-Source-Cross-Plattform-Bibliotheken zur Verfügung.

Ich benutzen DirectFB für meine letzte Embedded GUI-Anwendung, es war leicht und in Ordnung, aber nicht Cross-Plattform . Nächstes Mal, wenn ich denke, ich werde versuchen, WxWidgets .

Ich weiß nicht, wie GNU Entwickler-Tools unter Windows verwenden, da MS Dev Studio sooo viel schöner als alle GNU-Tools ist aber vor kurzem mit Wascana Desktop-Entwickler , die auf Eclipse und GCC basiert und es zeigt Versprechen.

Wenn Sie in der Position der Spezifizierungs sind die realtime / Embedded OS Sie verwenden, müssen Sie Windows CE betrachtet?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top