Ich schreibe eingebettete Anwendungen für verschiedene Hardware (avr, arm7, tms55xx ...) und verschiedene rtoses (freeRTOS, rtx, dsp/bios). Und jede Sekunde von ihnen muss mit PC oder einem anderen digitalen Gerät kommunizieren. Manchmal ist Interaktionen Logik sehr fortgeschritten. Ich bin also interessiert an der gemeinsamen Methodik (wie dem Programmierstil der Zustandsmaschine), der Protokollspezifikation oder der Bibliothek, die die Entwicklung solcher Dinge vereinfachen könnte.Gibt es leichte Analoga zu CORBA/RPC für eingebettete Programme?
Antwort
Ich bin sehr glücklich mit googles protocol buffers auf eingebetteten Systemen für Datenübergabe und RPC-Mechanismen. Sie sind ein wenig leichter als Systeme auf XML-Basis, da die übertragenen Daten binär codiert sind und die Decodierung der gesendeten Daten eine minimale Verarbeitung erfordert, was ein großer Vorteil bei der CPU-Nutzung auf der eingebetteten Seite der Verbindung ist.
Es gibt leicht verfügbare Bibliotheken für verschiedene Sprachen, aber am wichtigsten C für eingebettete Anwendungen.
Here ist ein Artikel über Embedded.com auf CORBA auf eingebetteten Systemen und "leichte" oder minimale Implementierungen. Die genannten kommerziellen Lösungen sind für QNX, VxWorks und LynxOS. Und another article auf RPC auf Embedded.com (dieser von einem TI DSP-Trainer und speziell Verweis auf DSP Autorisierte, so kann für DSP/BIOS relevant sein).
Ich empfehle dringend, dass Sie Embedded.com Artikelsuche verwenden, gibt es wahrscheinlich viele ähnliche Artikel, die Sie nützlich finden werden.
VxWorks supports RPC, wie auch QNX Neutrino.
"Roll your own" war schon immer meine Lösung, wo die Einhaltung von Standards und Kompatibilität zwischen Systemen kein Problem ist (d. H. Meine Systeme sprechen mit meinen Systemen). Doing nur genau was Sie brauchen, ist der beste Weg, um "leicht" zu erreichen, vielleicht auf Kosten von Flexibilität und Wartbarkeit.
ich diese Artikel gelesen habe. CORBA ist für viel fortgeschrittenere Interaktionen gedacht als meine Programme. RPC-Protokoll von TI Codec-Engine ist leicht genug, aber sehr spezifisch und passt nicht zu meinen Anwendungen. – Mtr
Protokolle sind eine natürliche Ergänzung für State-Maschinen, also könnten Sie vielleicht die sehr leichten Open-Source-QP-State-Machine-Frameworks (state-machine.com) verwenden. Es sind sofort einsatzfähige QP-Ports und Beispiele für verschiedene Compiler für AVR, MSP430, ARM7/ARM9, TMS320C28x, PSoC, HC08, M16C/R8C, H8, 8051, PIC18, PIC24/DSPIC, ARM Cortex-M3/M0 und viele weitere verfügbar Andere.
Hinweis: Ich arbeite für http://state-machine.com
Nicht ganz Spam. Miro, wir verwenden keine Signaturen auf SO. Ich habe Ihre Antwort bearbeitet, um eine Möglichkeit zu zeigen, die gleichen Informationen zu erhalten. Ich werde auch die Antwort abwerten, weil ich nicht denke, dass sie die Frage direkt anspricht. –
Ja, es war meine Absicht zu zeigen, dass ich für state-machine.com arbeite. –
OpenJAUS.
Es ist reflektierend, zusammensetzbar und standardisiert (ish) Works Cross-Language-Cross-Plattform.
Bietet viel mehr Rahmen als Protokollpuffer (was ein sauberer Nachrichtenstapel ist) Es konzentriert sich auf Robotik, funktioniert aber für Kontrollsysteme.
Theoretisch kann eine JAUS-Benutzerschnittstelle jedes JAUS-kompatible Gerät bedienen, und JAUS-Systeme sollen zu einem System-System zusammengestellt werden.
Wenn diese Dinge keinen Sinn machen, dann ignorieren Sie bitte diesen Vorschlag.
Vor kurzem haben wir developted: https://github.com/EmbeddedRPC/erpc Chance geben, um es;)
- 1. Gibt es leichte Alternativen zu gSOAP?
- 2. Gibt es in Akka leichte Schauspieler?
- 3. gibt es eine leichte JMS API verfügbar
- 4. Gibt es eine leichte Markup-Sprachbibliothek für Android?
- 5. LINQ-Analoga in Scala?
- 6. Welche Programme gibt es für die Parser-Generierung?
- 7. Gibt es ein empfohlenes Icon für Windows 7 Programme?
- 8. Leichte Alternativen zu NHibernate
- 9. leichte Suchmaschine für asp.net
- 10. Tipps für leichte Android-Anwendungen
- 11. Leichte Alternative zu Java ResourceBundle?
- 12. Gibt es eine API für Wireshark, um Programme/Plugins zu entwickeln, die damit interagieren/verbessern?
- 13. Leichte Markup-Sprache für Python
- 14. Leichte Delaunay-Triangulationsbibliothek (für C++)
- 15. Gibt es eine leichte, programmierbare Sandbox-API für die Windows-Plattform?
- 16. Gibt es Programme, die eine instabile Netzwerkverbindung simulieren können?
- 17. Gibt es eine leichte sql Parser-Klasse in PHP geschrieben, um dies zu tun?
- 18. Wysiwyg und eingebettete Videos - gibt es PHP-Filter-Klasse
- 19. Max. Programme in GLSL ES
- 20. Zeitberechnung für parallele Programme
- 21. Ist es möglich, Ressourcen aus einem ELF-Format GUI-Programme zu extrahieren?
- 22. Gibt es eine Möglichkeit, eingebettete Google Maps zu einem statischen, nicht anklickbaren Bild zu machen?
- 23. Gibt es eine bessere Alternative zu PureMVC für Flash-Projekte?
- 24. Speicherzugriffsmonitor für c-Programme
- 25. Gibt es eine Online-IDE für Java?
- 26. Ist es möglich, ereignisgesteuerte Programme ohne Schleifen zu verwenden?
- 27. Testcode für eingebettete Anwendung
- 28. Eingebettete Datenbank für .net
- 29. Leichte Hadoop-Verteilung
- 30. Beständige Hashtabelle für Ruby-Programme?
Können Sie bestimmte Implementierungen für Embedded C empfehlen? –
http://code.google.com/p/protobuf-c/ – Mark