Pregunta

¿Cómo se compara Keil con GCC para el desarrollo de ARM7? Estoy en el proceso de elegir consultores hw para un proyecto de tamaño mediano y algunos usan keil y otros usan gcc. Me gustaría saber los trucos involucrados en ir con cualquiera de las opciones ...

¿Fue útil?

Solución

Hay muy poca diferencia entre los dos desde el punto de vista de codificación / desarrollo. Lo único que creo que deberías considerar no es específico de este compilador. Mantenimiento :

  • ¿Podrás mantener el software si no tiene acceso a el compilador Keil o será un costo menor?
  • También, ¿qué debughardware / JTAG es compatible y cuál será el costo si necesita obtener alguno?
  • ¿Cuál será el costo? si tienes que moverte de un compilador a otro compilador por tener que cambiar desarrolladores más tarde?

A menos que sea muy sensible a los costos, creo que la verdadera pregunta es quién hará el mejor trabajo ya que el compilador será un problema menor.

Otros consejos

Debería ser posible estructurar su código para usar ambos compiladores. Atributos como "empaquetado" puede ser macro 'up para que el código sea feliz debajo de ambos. Empuje los detalles de hardware hacia niveles inferiores y configure mapas de hardware en tiempo de ejecución en lugar de en tiempo de compilación. Si debe tener versiones separadas de Kiel y GCC de un fragmento de código, colóquelas en archivos separados y configure cuál se usa con el gcc make o el archivo de proyecto de Kiel.

Un problema que todavía tengo que resolver es el código ensamblador. Kiel usa armasm, mientras que gcc usa as. Parecen tener formatos de código fuente muy diferentes. Otra razón para evitar el ensamblador si puedes.

La ventaja de usar GCC es que puede apuntar a plataformas que no son ARM, ideal para simular su aplicación en una plataforma con herramientas de desarrollo mucho mejores (es decir, valgrind bajo x86 linux). De hecho, este es el enfoque que debe tomar cada aplicación dirigida a ARM. Primero desarrolle en x86, luego transfiera a ARM.

También existe el costo de mantenerse al día con Kiel. Una vez que el lugar que conozco está atascado en RVDK 2.1 (2002?) Porque el costo de actualizar a la última versión para tres desarrolladores es prohibitivo.

También agregaría ese gcc & amp; pedantic eliminará las advertencias y los errores en su código mucho mejor que nuestra versión (ciertamente antigua) de Kiel.

Kiel podría entregar un código ARM más estricto, así que guárdelo para hacer compilaciones de destino. De lo contrario, use GCC.

Si recuerdo bien, Kiel ahora es propiedad de ARM. Los compiladores ARM son día y noche mejores que gcc para producir un buen código. Me parece recordar a Keil incluyendo una versión reducida o gratuita o cualquier versión de rvct. Entonces, mi pregunta es tener un código mucho más rápido, limpio y mejor que valga la pena usar una solución comercial cuando gcc está disponible y bien utilizado. Iría con gcc a menos que esté en una situación de escasez de rendimiento y esté dispuesto a tener que traducir mentalmente entre toda la información basada en gcc disponible gratuitamente en la red a sus herramientas comerciales y viceversa. En general, ir con gcc es probablemente el mejor camino, dado que probablemente haya una gran cantidad de información detrás del cuadro de búsqueda de Google para Kiel, pero la cantidad de conocimiento e información para soluciones basadas en gcc oculta eso.

Si los consultores están usando una herramienta para hacer el trabajo inicial para un proyecto para usted y luego al final le entregan el trabajo, probablemente querrá tener una solución basada en gcc (eso no significa decir vxworks gcc, o incluso código fuente gcc, pero una solución genérica de gcc), porque sin duda usted u otra persona que contrate tendrá que recoger esta masa y ejecutarla, y con gcc es más probable que encuentre a alguien dispuesto y capaz.

El principal beneficio de una solución comercial es el soporte para mí si tiene problemas con el compilador o las bibliotecas.
El código abierto está bien cuando está utilizando hardware de transmisión principal (en el caso de gcc = x86). La mayoría de los problemas del compilador o las librerías normalmente serán solucionados muy pronto por la comunidad.
Si está desarrollando en una plataforma integrada (quizás exótica), pronto puede sentirse bastante solo si tiene algún problema con la cadena de herramientas.

Utilizamos la plataforma Keil y estamos muy contentos con su rendimiento y optimización. Ejecuté algunos puntos de referencia estándar hace un par de años y fueron bastante buenos. Otra consideración es el apoyo y, hasta ahora, Keil ha tenido muy buenos tiempos de respuesta y comentarios relativamente buenos sobre algunos problemas difíciles.

Para su información, si su proyecto utilizará Keil RTOS y tiene alguna pregunta al respecto, el código fuente está disponible para su compra.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top