Sublime Text editor para desarrollar software basado en ARM

Hasta este momento usaba Atmel Studio para desarrollar software para dispositivos basados ​​en AVR. Ahora me gustaría ir a ARM Cortex M. Además, me gustaría probar el codiseño y el control de versiones (todavía no tengo experiencia en esas cosas útiles).

Sé que Atmel Studio tiene el complemento para trabajar con los repositorios de GitHub. Pero acabo de adquirir el editor Sublime Text 2, con el que es muy agradable trabajar. También puede funcionar con GitHub (como he leído en Internet, simplemente no lo probé yo mismo), pero no estoy seguro de que Sublime Text sea útil para compilar fuentes GCC y ASM en HEX.

¿Alguien intentó usar Sublime Text 2 como herramienta de edición de fuentes para tales implementaciones? ¿O los IDE tradicionales serán mucho más fáciles de trabajar?

Sublime text es un editor . Es programable, pero si desea una depuración interactiva, se quedará atascado en la línea de comando. Simplemente aprenda a escribir archivos MAKE y compilar scripts.
Además, el control de versiones y Atmel Studio no están relacionados. Utilizo SVN para mis proyectos de atmel studio, no hay ninguna razón por la que no pueda almacenar los archivos de atmel studio (o visual studio, en el que se basa) en un VCS.
Por último, ¿eso es "codiseño"? ¿ Te refieres a la firma de código ? Eso es en gran medida irrelevante para los dispositivos ARM más pequeños, a menos que esté escribiendo su propio cargador de arranque que hace las cosas de verificación.
@ConnorWolf No pensé en el problema de depuración. En este caso, el IDE tradicional será mucho mejor que cualquier editor de texto. ¡Gracias por eso!
Entonces, ¿qué crees que hace un IDE? Además, existen depuradores separados que no se ejecutan dentro de un IDE.
@ConnorWolf Supuse que IDE estaba haciendo las siguientes cosas: edición inteligente de fuentes, manejo de bibliotecas, compilación. Agregaste la depuración, que también es muy importante. ¿Qué es SVN?
SVN es "Subversion", un sistema de control de versiones más parecido a CVS que a Git.

Respuestas (3)

Sí, puede usar SublimeText para editar el código fuente, y no solo para ARM, sino para cualquier cosa; y mucha gente lo hace. Es un editor de código fuente muy popular.

La parte complicada viene cuando quieres hacer algo más que editar. Un IDE tradicional proporciona mucho más que solo funciones de edición, por lo que tendría que implementar o encontrar a alguien en Internet que ya haya implementado las funciones que necesita para trabajar con ARM. No menos importante de esas funciones son:

  • Compilación de la fuente en archivos binarios de destino (generalmente archivos ELF).
  • Cargar el firmware compilado en el chip

La forma en que lo haría depende en cierta medida de su sistema operativo host y de las herramientas de secuencias de comandos que tenga disponibles para realizar las tareas. En general, el compilador será GCC, que está disponible gratuitamente para todos los sistemas operativos principales, por lo que si conoce los indicadores correctos que debe usar al compilar el código fuente para su objetivo específico, entonces la creación de secuencias de comandos de la compilación no debería ser un gran problema.

Sin embargo, cuando se trata de cargar el código, todo depende de cómo realice la carga. ¿Utiliza un programador de hardware? ¿Su chip de destino tiene un gestor de arranque instalado? Para cualquiera de ellos, ¿qué herramientas están disponibles que son compatibles con secuencias de comandos que puede usar para agregar funcionalidad a SublibeText?

Entonces, a menos que pueda encontrar un recurso en línea donde alguien haya hecho exactamente lo que quiere hacer, para el mismo chip objetivo o familia de chips que está usando, entonces será mucho trabajo para comenzar. Sería mejor comenzar con un IDE tradicional y usarlo como plantilla (investigar cómo se compila y carga) y migrarlo a SublimeText, u operar un entorno híbrido donde edite en SublimeText pero use el IDE para compilar y sube el código.

¡Gracias por una respuesta tan detallada! ¡Excelente! ¿Podría sugerir IDE para mi caso? Solo conozco Atmel Studio y uso solo una pequeña fracción de su funcionalidad.
También tenga en cuenta que Sublime es compatible makecomo una herramienta de compilación, por lo que puede buscar en Google un archivo MAKE genial para compilar y cargar ARM y usarlo.
No uso un IDE para la mayoría de mis proyectos. Generalmente, es algún tipo de editor (Kate o Sublime) y luego uso make para ejecutar la cadena de herramientas. Ejecuto make y git desde la línea de comandos, ya que son programas de línea de comandos. Tengo makefiles para proyectos AVR, ARM y Xilinx FPGA.
Utilizo un IDE para mis proyectos integrados, pero eso se debe principalmente a que yo mismo escribí el IDE :) Para escribir el IDE, o hacer otro desarrollo de PC, uso vi;)

Como han dicho otros, Sublime es un editor (muy poderoso), no un IDE, por lo que usar Sublime para la depuración es engorroso, aunque no imposible (consulte la nota al pie en la parte inferior).

Sin embargo, hago mucha programación integrada, por lo que puede ser útil describir mi flujo de trabajo.

Toda mi codificación se realiza en ST2 con algunos paquetes clave:

  • Control del paquete : no se necesita descripción, espero
  • SublimeTODO : para el seguimiento de TODO en mis proyectos
  • BracketHighlighter : para ayudar a visualizar el alcance en C
  • SublimeClang : con mucho, el paquete más importante para mí. Este excelente complemento proporciona verificación de sintaxis en tiempo real, verificación de código y búsqueda de definición/implementación. De hecho, confío tanto en esto que, dado que técnicamente es solo para ST2, me ha impedido pasar a ST3 hasta que pueda intentar portar esto.

También utilizo fragmentos personalizados para formatear el código. Una vez que mi codificación esté lista para ser probada en el hardware, usaré un IDE para la depuración. Sin embargo, cualquier cambio de código que deba hacer todavía se realiza en Sublime. Algunas personas pueden encontrarlo incómodo, pero me he acostumbrado a eso.

En cuanto a los IDE, muchos de los fabricantes de circuitos integrados proporcionan sus propios IDE (TI, Freescale, Microchip, etc.), sin embargo, ahora hay algunos IDE centrados en ARM buenos y gratuitos. Em::Blocks es el que más he usado. Está bien mantenido y es una aplicación sólida. CooCox también es bastante bueno.

Nota al pie: el mismo desarrollador que creó SublimeClang también creó un complemento GDB ( SublimeGDB ); sin embargo, para la depuración, creo que un IDE dedicado con vistas de memoria, relojes variables y expresiones es difícil de superar.

¡Gracias por compartir esto! ¡Es realmente útil! ¿Utiliza algún VCS en su flujo de trabajo? ¿Cómo compilas tus fuentes? CCG?
Gracias. Usamos SVN y git en el trabajo, y yo uso git para mis propios proyectos. Sin embargo, nunca integré realmente eso dentro de Sublime. Sin embargo, sé que mucha gente lo hace, y hay buenos complementos para admitir ambos. No compilo dentro de Sublime, solo uso el complemento Clang para verificar la sintaxis, lo que me lleva hasta el enlace. Cuando realmente compilo, uso cualquier IDE que esté usando para el proyecto en particular. Supongo que podría vincular eso con el comando Sublime 'construir'...

Desde que se publicó esta pregunta, y han pasado más de 2 años (junio de 2018), ha aparecido en escena un nuevo editor con todas las funciones: https://atom.io/packages/language-arm

Atom, entre otras cosas, es compatible con el control de versiones de Git listo para usar.