Question

Comment Keil se compare-t-il à GCC pour le développement ARM7? Je suis en train de choisir hw consultants pour un projet de taille moyenne et certains utilisent keil et d'autres gcc. J'aimerais connaître les pièges impliqués dans l'une ou l'autre option ...

Était-ce utile?

La solution

Il y a très peu de différence entre les deux du point de vue du codage / développement. La seule chose que je pense que vous devriez considérer n'est pas spécifique à ces compilateurs. Maintenance :

  • Serez-vous capable de maintenir le logiciel si vous n'avez pas accès à le compilateur Keil ou sera-ce un coût mineur?
  • De plus, quels logiciels debughardware / JTAG sont pris en charge et quel en sera le coût si vous en avez besoin?
  • Quel sera le coût si vous devez passer d'un compilateur à un autre compilateur en raison de devoir changer de développeur plus tard?

À moins que vous ne soyez très sensible aux coûts, je pense que la vraie question est de savoir qui fera le meilleur travail possible, car le compilateur sera un problème mineur.

Autres conseils

Il devrait être possible de structurer votre code pour utiliser les deux compilateurs. Des attributs tels que & emballé " peut être une macro pour que le code soit satisfait sous les deux. Abaissez les détails du matériel dans les niveaux inférieurs et configurez les cartes de matériel au moment de l'exécution au lieu de la compilation. Si vous devez disposer de versions distinctes de Kiel et de GCC pour un élément de code, placez-les dans des fichiers séparés et configurez-les utilisés avec le fichier gcc make ou le fichier de projet Kiel.

Un problème que je n’ai pas encore résolu est le code assembleur. Kiel utilise armasm, tandis que gcc utilise as. Ils semblent avoir des formats de code source très différents. Une autre raison d'éviter d'assembleur si vous le pouvez.

L’avantage d’utiliser GCC réside dans le fait que vous pouvez cibler des plates-formes non-ARM - idéal pour simuler votre application sur une plate-forme avec des outils de développement bien meilleurs (c’est-à-dire valgrind sous x86 linux). En fait, c’est cette approche que toutes les applications ciblées par ARM devraient adopter. Développez d’abord sur x86, puis portez-vous sur ARM.

Il y a aussi le coût de rester à jour avec Kiel. Une fois que je sais que l’endroit est bloqué sur RVDK 2.1 (2002?), Le coût de la mise à niveau vers la version la plus récente pour trois développeurs est prohibitif.

Je voudrais aussi ajouter que gcc & amp; pedantic élimine les avertissements et les erreurs dans votre code bien mieux que notre version (certes ancienne) de Kiel.

Kiel peut fournir un code ARM plus strict, conservez-le pour pouvoir générer des builds cibles. Sinon, utilisez GCC.

Si je me souviens bien, Kiel appartient maintenant à ARM. Les compilateurs ARM sont meilleurs jour et nuit que gcc pour produire un bon code. Je me souviens de Keil, y compris une version réduite ou gratuite de rvct. Donc, ma question est d'avoir un code beaucoup plus rapide, plus propre et de meilleure qualité qui vaille d'utiliser une solution commerciale lorsque gcc est disponible et bien utilisé? J'irais avec gcc sauf si vous êtes dans une situation critique et que vous êtes prêt à avoir à traduire mentalement entre toutes les informations basées sur gcc disponibles gratuitement sur le net pour vos outils commerciaux et vice-versa. En général, utiliser gcc est probablement la meilleure solution, sachant que Kiel dispose d’une mine d’informations, mais que la quantité de connaissances et d’informations sur les solutions gcc est plus sombre.

Si les consultants utilisent un seul outil pour effectuer les démarches initiales d'un projet et vous confient ensuite le travail, vous souhaiterez probablement disposer d'une solution basée sur gcc (cela ne veut pas dire vxworks gcc, ou même un code source gcc, mais une solution générique gcc), car nul doute que vous, ou une autre personne que vous embaucherez, devrez ramasser cette masse et la gérer, et avec gcc, vous aurez plus de chances de trouver quelqu'un de disposé et capable.

Le principal avantage d'une solution commerciale est le soutien dont je dispose si vous rencontrez des problèmes avec le compilateur ou les bibliothèques.
Open source convient si vous utilisez du matériel de flux principal (dans le cas de gcc = x86). La plupart des problèmes du compilateur ou des bibliothèques seront normalement résolus très bientôt par la communauté.
Si vous développez sur une plate-forme intégrée (peut-être exotique), vous vous sentirez bientôt très seul si vous rencontrez des problèmes avec la chaîne d'outils.

Nous utilisons la plateforme Keil et sommes très satisfaits de ses performances et de son optimisation. Il y a quelques années, j'ai publié des tests de référence standard, qui étaient plutôt bons. Le support est un autre facteur à prendre en compte. À ce jour, Keil a obtenu de très bons temps de réponse et des retours relativement satisfaisants sur des problèmes difficiles.

Pour votre information, si votre projet utilise le RTOS Keil et que vous avez des questions à ce sujet, le code source est disponible à l'achat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top