Laut Dokumentation unterstützt boost :: context ARM-Systeme mit GNU/Linux OS. Ich frage mich nur - ist es möglich, es auch auf Cortex-M-Mikrocontrollern mit Bare-Metal (ohne Betriebssystem) zu verwenden, oder ist dies ein zusätzlicher Port, der geschrieben werden sollte?Boost :: Kontext auf ARM Cortex-M?
Antwort
boost.context nicht Cortex-M unterstützt - nur Cortex-A + ELF/MACH-O/PE
Was genau ist die Architekturbeschränkung, die dazu führt, dass sie nicht unterstützt wird? Können Sie eine Referenz für diese Behauptung angeben? Ich kann nicht sehen, welchen Unterschied das Objektdateiformat macht, und ELF ist ein allgemein genug Objektdateiformat in eingebetteten Systemen. – Clifford
Ich denke, ich habe meine eigene Frage beantwortet; Die [Bibliotheksanforderungen] (http://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/requirements.html) geben an, dass die Bibliothek Assemblercode enthält. Das würde die Portabilität stark einschränken. – Clifford
- 1. boost :: program_options hängt am arm "manchmal"
- 2. Boost C++ Bibliotheken für gcc-arm toolchain
- 3. Gebäude Boost-Unit-Test-Framework auf Debian 8.3 ARM
- 4. boost :: bind mit geschützten Elementen und Kontext
- 5. auf ARM, wie die speichern
- 6. Hibernate Linux auf ARM
- 7. Kompilieren Sie JInput auf ARM
- 8. Schnelle Division auf GCC/ARM
- 9. NOPs auf Multicore ARM A9
- 10. .NET Core auf Raspbian/ARM?
- 11. Codefolgen für TLS auf ARM
- 12. Auf atomaren Kontext prüfen
- 13. ARM Disassembly
- 14. BUG auf Boost Spirit?
- 15. Atomare Operationen in ARM
- 16. Wie kgdb auf ARM zu verwenden ??
- 17. Debuggen Mono-Anwendungen direkt auf ARM Ziel
- 18. Debuggen auf ARM - Inspektion der Stapel
- 19. U-Boot für Arm auf Qemu
- 20. ARM Linux ausführbare Datei läuft auf x86_64
- 21. ASP.NET Core 1.0 RC2 auf ARM
- 22. Zugriff auf SharedPreferences ohne Kontext
- 23. Boost-Kreuzkompilierung für Arm, Toolset trotz Definition in user-config.jam nicht erkannt
- 24. Ausführen von ARM-Binärdateien für Android unter Linux ARM
- 25. Probleme in Bezug auf Boost :: Python und Boost :: Threads
- 26. Kann ich Arm-Eabi mit Arm-Elfe mischen?
- 27. ARM Simulator unter Windows
- 28. Linking Probleme auf Windows (Boost)
- 29. Verwendung von Boost auf Ubuntu
- 30. Undefinierter Verweis auf Boost Thread
Der einfachste Weg, um Sie über die Beantwortung der Frage wäre es zu kompilieren - Ihre Werkzeugkette werden Sie schnell feststellen, ob es fehlen Abhängigkeiten, aber mir scheint, dass die Funktionalität nicht vom Betriebssystem abhängig ist und mit dem Standard setjmp/longjmp implementiert werden kann. Ein Wort der Warnung, als ein Kollege von mir versuchte, Boost-Bibliotheken (nicht speziell "Kontext") in ein Cortex-M-Bare-Metal-Projekt einzubauen, war er erstaunt über den resultierenden Code Bloat, den er dem ARM-Compiler zuschrieb anstatt Boost selbst; Ich bin weniger überzeugt. – Clifford
Das Problem ist, dass, um Cross-Compile-Boost mit beliebiger Toolchain zu lernen, man Interna von Boost-Build-System lernen muss, also bevor ich mich mit dieser Aufgabe beschäftigte, entschied ich mich zu finden, ob das schon jemand getan hat. –
Mit Blick auf die [Bibliothek Anforderungen] (http://www.boost.org/doc/libs/1_60_0/libs/context/doc/html/context/requirements.html) scheint es, dass "Kontext" Assembler-Code enthält, es sei denn Es unterstützt ausdrücklich den ARM Thumb-2-Befehlssatz, Sie werden in keinem Fall Out-of-the-Box-Builds ausführen. Das ist, denke ich, worauf sich die knappe Antwort von @xlrg bezieht. – Clifford