Frage

Wie Keil für ARM7 Entwicklung GCC vergleichen? Ich bin in den Prozess für eine mittelgroße Projekt hw Berater der Wahl und einige Verwendung keil und einige Verwendung gcc. Ich möchte die gotchas in gehen mit beiden Optionen beteiligt wissen ...

War es hilfreich?

Lösung

Es gibt sehr wenig Unterschied zwischen den beiden aus einer Codierung / Entwicklung Standpunkt. Das einzige, was ich denke, Sie sollten prüfen, ist zu diesen Compiler nicht spezifisch. Wartung :

  • Werden Sie in der Lage sein, das pflegen Software, wenn Sie keinen Zugang zu der Keil-Compiler oder wird es sein, niedriger Kosten?
  • Auch was debughardware / JTAG unterstützt wird und was die Kosten sein, wenn Sie einige bekommen müssen?
  • Was werden die Kosten sein wenn Sie müssen von einem Compiler bewegen zu anderen Compilers aufgrund aufweist zum Schalter Entwickler später?

Es sei denn, Sie sind sehr empfindlich kosten Ich denke, die wirkliche Frage ist, wer den besten Job tun wird, da der Compiler ein kleines Problem sein wird.

Andere Tipps

Es sollte möglich sein, Ihren Code zu strukturieren beide Compiler zu verwenden. Attribute wie „verpackt“ kann macro'd, so ist der Code glücklich unter beiden. Schieben Sie Hardware-Details nach unten in den unteren Ebenen und konfigurieren Hardware-Karten zur Laufzeit statt der Kompilierung. Wenn Sie separate Kiel und GCC-Versionen ein Stück Code haben muss, setzen Sie sie in separaten Dateien und konfigurieren, welche mit dem gcc make oder der Kiel Projektdatei verwendet wird.

Ein Problem, das ich habe noch zu lösen ist Assembler-Code. Kiel verwendet armasm, während gcc verwendet als. Sie scheinen sehr unterschiedliche Quellcode-Formate zu haben. Ein weiterer Grund, zu vermeiden, Assembler, wenn Sie können.

Der Vorteil mit GCC geht ist, dass Sie nicht-ARM-Plattformen ausrichten können - mit vielen besseren Entwicklungs-Tool auf einer Plattform, um Ihre Anwendung ideal für die Simulation (das heißt valgrind unter x86 Linux). In der Tat, dies ist der Ansatz alle ARM-bezogene Anwendung sollte nehmen. Entwickeln Sie auf x86 zuerst, dann Port ARM.

Es gibt auch die Kosten des Aufenthalts Strom mit Kiel. Einmal Ort, wo ich weiß, auf RVDK 2.1 stecken (2002?), Weil die Kosten auf die neueste für drei Entwickler ein Upgrade ist untragbar.

Ich mag auch, dass gcc hinzufügen & pedantisch wird viel besser als unsere (zugegebenermaßen alte) Version von Kiel Warnungen und Fehler im Code schütteln wird.

Kiel könnte straffen ARM-Code liefern, damit es halten zu tun Ziel aufbaut. Ansonsten GCC verwenden.

Wenn ich mich recht Kiel erinnere mich jetzt von ARM gehört. ARM Compiler sind Tag und Nacht besser als gcc für guten Code zu erzeugen. Ich scheine Keil mit einer reduzierten oder frei oder was auch immer Version von RVCT zu erinnern. Also meine Frage ist, die viel schneller, sauberer, besser Code im Wert von unter Verwendung einer kommerzielle Lösung, wenn gcc da draußen ist und gut genutzt? Ich würde mit gcc gehen, wenn Sie in einer Performance Crunch Situation sind und bereit sind, geistig zu haben, um zwischen all den gcc basierten Informationen frei verfügbar im Netz Ihrer kommerziellen Tools zu übersetzen und wieder zurück. In der Regel mit gcc geht ist wahrscheinlich der bessere Weg, Zugegeben, es ist wahrscheinlich eine Fülle von Informationen hinter der Box Google-Suche nach Kiel, aber der Menge an Wissen und Informationen für gcc-basierte Lösungen Schatten das.

Wenn die Berater ein Tool verwenden für Sie die erste Zuarbeit für ein Projekt zu tun, und dann am Ende sie die Hand der Arbeit über, werden Sie wahrscheinlich wollen eine gcc-basierte Lösung haben (das bedeutet nicht, VxWorks gcc sagen, oder sogar Code sourcery gcc, sondern eine allgemeine gcc-Lösung), weil kein Zweifel, Sie oder jemand anderes Sie mieten diese Masse wird bis haben zu holen und mit ihm und mit gcc Sie sind eher jemanden zu finden, bereit und in der Lage zu führen.

Der Hauptvorteil einer kommerziellen Lösung ist die Unterstützung für mich, wenn Sie Probleme mit dem Compiler oder den Bibliotheken laufen.
Open Source ist in Ordnung, wenn Sie Hauptstrom Hardware (im Fall von gcc = x86) verwenden. Die meisten Probleme des Compilers oder LIBS wird in der Regel sehr bald von der Gemeinschaft festgelegt werden.
Wenn Sie auf einem (vielleicht exotische) Embedded-Plattform entwickeln können, Sie bald fühle mich ziemlich einsam, wenn Sie irgendwelche Probleme mit der Werkzeugkette haben.

Wir verwenden die Keil-Plattform und sind sehr zufrieden damit Leistung und Optimierung sind. Ich lief vor ein paar Jahren einige Standard-Benchmarks und sie waren ziemlich gut. Eine weitere Überlegung ist die Unterstützung und bisher hat Keil sehr gute Antwortzeiten hat und relativ gutes Feedback auf einigen schwierigen Themen.

FYI, wenn Ihr Projekt den Keil RTOS nutzen und Sie noch Fragen zu diesem Thema, ist der Quellcode für den Kauf zur Verfügung.

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