ClickCease Las mejores herramientas de desarrollo de Linux embebido - TuxCare

Únase a nuestro popular boletín

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

Las mejores herramientas de desarrollo de Linux embebido

25 de agosto de 2020 - Equipo de RRPP de TuxCare

Las mejores herramientas de desarrollo integrado de Linux

La mayoría de los desarrolladores están acostumbrados a una interfaz gráfica para el desarrollo, por lo que al sumergirse en el mundo de IoT y el desarrollo de Linux embebido, es una nueva experiencia que requiere más programación de bajo nivel y ejecución de línea de comandos. Si alguna vez quieres construir sistemas como IoT, GPS, tecnología de automoción, fabricación o cualquier otro tipo de programación electrónica de bajo nivel, necesitas un entorno de desarrollo embebido con el que trabajar.

Linux embebido es habitual en la mayoría de estos sistemas porque es de código abierto, cuenta con abundante documentación para empezar y requiere muy pocos costes iniciales para utilizar el sistema operativo. Por este motivo, los desarrolladores interesados en esta vía suelen trabajar con programación Linux y descargar las herramientas adecuadas para conectar, programar y desplegar sus productos. Hemos recopilado una lista de las mejores herramientas de programación Linux embebida para empezar, tanto si eres principiante como si eres un profesional en busca de una nueva herramienta.

Contenido:

  1. Editores de sistemas empotrados
  2. Compiladores
  3. Montadores
  4. Depurador
  5. Enlazador
  6. Emuladores
  7. Entornos completos de desarrollo de software

 

Editores de sistemas empotradosEditores de sistemas empotrados

Los desarrolladores deberían estar familiarizados con los editores GUI comunes, porque es con lo que trabajan todos los días. Por ejemplo, Visual Studio es un editor habitual para C# y VB.NET. Los desarrolladores Java suelen utilizar Eclipse o NetBeans. Los desarrolladores de Python utilizan PyCharm. Cada desarrollador tiene sus editores favoritos, y las mejores herramientas facilitan a los desarrolladores la escritura de código codificado por colores para identificar más fácilmente las diferentes sintaxis. Dado que la programación integrada se realiza principalmente en C o C++, la solución adecuada debe ser compatible con estos dos lenguajes.

 

  • Geany: Geany es mucho más GUI centrado en resaltado de sintaxis y soporte para etiquetas HTML y XML. También es compatible con Java, PHP, Python, Perl y Pascal. Enumeramos ésta en primer lugar, porque es la más sencilla de todas las herramientas para la mayoría de los desarrolladores que no están familiarizados con los comandos de estilo Unix.
  • Lime: Los desarrolladores familiarizados con Sublime Text Editor apreciarán su sucesor Lime. La interfaz es similar a la de Sublime y está desarrollado en el popular lenguaje Go.
  • Nano: Nano es beneficioso para programadores nuevos y avanzados. Está basado en la línea de comandos, pero resalta y codifica por colores el texto para que la sintaxis C sea fácilmente comprensible.
  • Bluefish: Bluefish tiene algunas características adicionales a las herramientas mencionadas anteriormente. Es para el desarrollo de Linux, así como para el desarrollo web, pero también funciona con archivos remotos y tiene corrección ortográfica y opciones de deshacer. Para proyectos más grandes, Bluefish tiene mejores características de organización y funciona bien con múltiples proyectos.
  • Vim: editor de texto versátil y altamente configurable que está presente literalmente en todas las plataformas. A pesar del umbral de entrada relativamente alto, es utilizado por muchos desarrolladores embebidos que les gusta por la posibilidad de personalizar casi todo y utilizarlo en casi todas partes, incluso en pequeños sistemas embebidos donde no hay modo gráfico disponible.

 

 

Compiladores
Compiladores

Una vez escrito el programa, es hora de compilarlo. Un compilador convierte el código humano en binario para su uso en el sistema local, como un portátil o un servidor. Con Linux embebido, necesitas un compilador que cree binarios para la CPU de una máquina de destino, no para tu máquina anfitriona. Los compiladores para el desarrollo embebido también se conocen como cadenas de herramientas de compiladores cruzados.

Podrías ensamblarlo tú mismo, pero esto es tedioso, especialmente para un desarrollador novato. En su lugar, existen varias herramientas que le permiten compilar, enlazar y ensamblar código C. Si usas Linux basado en Debian como Ubuntu para tu programación, el sistema operativo ya tiene herramientas disponibles. Ejecute el siguiente comando para instalarlas:

 

sudo apt install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

 

Si prefieres construir tu cadena de herramientas de compilador cruzado, aquí tienes algunas herramientas que te ofrecen funcionalidades de compilador para que no tengas que construirlas desde cero:

  • Crosstool-NG: Esta cadena de herramientas básicas de compilador cruzado ensamblará su código y creará las bibliotecas de enlace necesarias.
  • Buildroot: Buildroot es ideal para principiantes, ya que tiene un sistema de menús y una interfaz mucho más robustos. Compila, crea librerías y construye una jerarquía de directorios facilitando la navegación en proyectos grandes.
  • Yocto: Yocto lleva la compilación un paso más allá y construye paquetes para el sistema embebido de destino. También compila binarios y bibliotecas, pero los paquetes facilitan la distribución y la instalación en un sistema externo.Yocto es la solución más potente y versátil a costa de su extrema complejidad.

Más información: ¿Qué distribución de Linux es mejor para el desarrollo integrado?

 

 

Montadores

Montadores

El código humano debe ensamblarse en lenguaje máquina. Los compiladores convierten el código humano en código objeto y luego en binarios. Los ensambladores realizan una conversión mucho más rápida creando binarios directamente a partir de código de bajo nivel mucho más parecido al código máquina. Los ensambladores son mucho más rápidos que los compiladores, pero se limitan a los lenguajes de bajo nivel. Para los desarrolladores avanzados que trabajan con lenguajes ensambladores de bajo nivel, se puede utilizar un ensamblador para mapear las instrucciones codificadas con la ejecución de la CPU.

Linux tiene su propio ensamblador llamado GNU Assembler (también conocido como gas o as). Se incluye con GNU Binutils, que es una colección de herramientas binarias específicas para el sistema operativo Linux. Puede ver una lista de las herramientas incluidas con la instalación aquí.

Para instalar Binutils, ejecute el siguiente comando:

sudo apt install build-essential

 

Pero si necesitas compilar a arm64, instala:

sudo apt install crossbuild-essential-arm64

 

 

Depurador

Depurador

Todo desarrollador sabe que el código debe probarse y depurarse. Un depurador te permite ver lo que ocurre con cada línea de ejecución. Tu código puede ser sintácticamente correcto, pero los errores lógicos harán que el programa se bloquee. Puedes eliminar estos errores utilizando un depurador.

El Proyecto GNU tiene un depurador disponible para su descarga. Es específico para programación basada en C, por lo que es perfecto para depurar código de sistemas embebidos. Para instalarlo desde la línea de comandos, utilice el siguiente comando:

 

sudo apt-get install libc6-dbg gdb valgrind

 

Enlazador

Enlazador

Cuando se compila un programa, es habitual que tenga varios archivos y bibliotecas necesarios para su funcionamiento. Estos archivos se enlazan durante el proceso de compilación mediante un enlazador. Los compiladores suelen encargarse del enlace, pero si utilizas ensambladores para convertir código de bajo nivel en lenguaje máquina, puede que necesites un enlazador para enlazar los archivos del proyecto.

Si usas uno de los compiladores listados arriba, probablemente no necesites un enlazador, pero el Proyecto GNU tiene un enlazador disponible para proyectos más avanzados. El enlazador está disponible con los Binutils mencionados en la sección Ensambladores. La instalación de Binutils incluirá el enlazador. Utilice el siguiente comando para instalar las herramientas:

 

sudo apt-get install build-essential

 

Emuladores

Emuladores

Si alguna vez has programado para el sistema operativo Android, probablemente hayas trabajado con un emulador. Un emulador es un programa que replica el entorno de destino. Todos los elementos de la interfaz, comandos, imágenes de salida y funciones se muestran en tu ordenador local de forma similar a como se mostrarían a tus usuarios en sus dispositivos integrados.

La herramienta gratuita más popular es QEMU. QEMU te permite visualizar tus creaciones en varias distribuciones de Linux. Para distribuciones Debian o Ubuntu, ejecuta el siguiente comando para instalarlo:

 

sudo apt-get install qemu

 

Entornos completos de desarrollo de software

Entornos completos de desarrollo de software

La lista de software anterior le permite personalizar su entorno de desarrollo, pero hay disponibles varios paquetes IDE completos que harán toda la edición y compilación por usted sin necesidad de instalar recursos independientes. Los entornos de desarrollo IDE que se indican a continuación le proporcionarán una interfaz gráfica de usuario completa, soporte multiplataforma y algunos tienen soporte para aplicaciones web que podrían incrustarse en sus proyectos.

 

  • PyCharm: PyCharm está hecho para desarrolladores Python, pero tiene soporte multiplataforma y funciona bien para desarrolladores Linux. JetBrains, los desarrolladores de PyCharm, tiene una característica añadida llamada CLion utilizada específicamente para la programación Linux embebida.
  • Qt Creator: Qt Creator está diseñado específicamente para la programación de sistemas embebidos. Dispone de un emulador para varios dispositivos, como automóviles, IoT, televisores y aplicaciones móviles, entre otros.
  • MPLAB X: Este IDE está diseñado para el desarrollo embebido de microcontroladores PIC y controladores de señal.
  • Visual Studio: La mayoría de los desarrolladores conocen Visual Studio por su programación .NET, pero el plugin VisualGDB convierte la interfaz de Visual Studio en una plataforma de desarrollo Linux multiplataforma para sistemas embebidos.
  • Eclipse: Eclipse es un IDE de desarrollo Java habitual, pero el complemento Eclipse IDE for Automotive Software Developers proporciona las herramientas y el compilador necesarios para crear soluciones para el sector de la automoción.
  • Arduino: Para los desarrolladores que quieran probar la programación de sistemas embebidos, Arduino es un buen punto de partida. Contiene el hardware y el software para un entorno completo que ayuda a los principiantes a aprender.
  • ARM Keil: Para una plataforma de desarrollo a gran escala, ARM Keil se puede utilizar para programar para casi cualquier dispositivo basado en ARM. Es un IDE bueno para profesionales que necesitan trabajar con los dispositivos más populares del mercado. El IDE tiene plantillas de código y proyectos de ejemplo para que los principiantes aprendan.

 

Conclusión

Si quieres empezar con el desarrollo de Linux embebido, las herramientas anteriores son una lista completa de lo que necesitas para poner en marcha tu entorno. La programación de Linux embebido es un entorno diferente a la programación de escritorio estándar, pero es una gran manera de introducirse en el funcionamiento de los sistemas IoT y de automoción.

¿Desea automatizar la aplicación de parches de vulnerabilidad sin reiniciar el núcleo, dejar el sistema fuera de servicio o programar ventanas de mantenimiento?

Más información sobre Live Patching con TuxCare

Conviértete en escritor invitado de TuxCare

Empezar

Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín