Which C/C++ libraries are supported in mcuxpresso IDE?

Librerías C/C++ y SDKs en MCUXpresso IDE: Guía Completa

06/02/2023

Valoración: 4.81 (7554 votos)

El desarrollo de sistemas embebidos modernos exige herramientas potentes y flexibles que permitan a los ingenieros optimizar tanto el rendimiento como el tamaño del código. MCUXpresso IDE, una plataforma de desarrollo integrada de NXP, se ha consolidado como una opción robusta para esta tarea. Parte fundamental de su ecosistema son las librerías C/C++ que soportan y la gestión eficiente de los SDKs (Software Development Kits), elementos cruciales que definen la huella de memoria y las funcionalidades disponibles en nuestras aplicaciones.

How do I add mcuxpresso SDKs?
You can then use this unzipped folder for that SDK location when using the MCUXpresso Config tools. You can also add MCUXpresso SDKs by placing an SDK package (zipped or unzipped) into that default SDKPackages directory (C:\Users\\mcuxpresso\SDKPackage) and restarting the MCUXpresso IDE.

Comprender las diferencias entre las librerías disponibles y dominar el proceso de importación y gestión de los SDKs no solo facilita el flujo de trabajo, sino que también permite tomar decisiones informadas que pueden impactar significativamente el resultado final de un proyecto. Desde la optimización para dispositivos con memoria limitada hasta la inclusión de funcionalidades más amplias, la elección correcta es clave. A continuación, exploraremos en profundidad las opciones de librerías y los métodos para integrar los SDKs en tu entorno de desarrollo MCUXpresso IDE.

Índice de Contenido

Librerías C/C++ Soportadas en MCUXpresso IDE

MCUXpresso IDE ofrece soporte para tres librerías C/C++ distintas, cada una diseñada para satisfacer diferentes necesidades de desarrollo, especialmente en lo que respecta al balance entre funcionalidad y tamaño de código. Conocer sus características te permitirá seleccionar la más adecuada para tu microcontrolador y aplicación específicos.

Newlib

Newlib es una librería estándar de C/C++ basada en GNU que se caracteriza por ser muy completa y funcional. Ofrece un amplio conjunto de funciones de la biblioteca estándar de C, lo que la hace ideal para proyectos que requieren una gran variedad de funcionalidades sin comprometer la compatibilidad con el estándar. Es una opción robusta para aplicaciones que no tienen restricciones severas de memoria, proporcionando un entorno de desarrollo familiar para aquellos acostumbrados a las herramientas GNU.

NewlibNano

Como su nombre indica, NewlibNano es una versión optimizada en tamaño de Newlib. Mantiene una gran parte de la funcionalidad de su contraparte estándar, pero ha sido diseñada para reducir la huella de memoria de las aplicaciones. Esta optimización se logra a través de la eliminación de ciertas funcionalidades menos usadas o la implementación de versiones más compactas de las funciones existentes. Es una excelente opción para proyectos que necesitan un equilibrio entre un conjunto de funciones razonablemente completo y una preocupación por el tamaño final del binario.

Redlib

Redlib es la tercera librería soportada y se distingue por no ser una librería C de GNU. Su principal ventaja es que permite crear aplicaciones con un tamaño significativamente menor en comparación con Newlib y NewlibNano. Esta característica la convierte en la opción por defecto para las demostraciones del SDK de MCUXpresso, y es altamente recomendada para chips embebidos con memoria muy limitada. Aunque su conjunto de funciones puede ser más reducido o diferente en algunos aspectos a las librerías GNU, su eficiencia en el uso de la memoria es inigualable para ciertos escenarios.

La elección de la librería dependerá en gran medida de los requisitos específicos de tu proyecto. Mientras que Newlib ofrece la mayor compatibilidad y funcionalidad, Redlib sobresale en la optimización del tamaño, y NewlibNano se posiciona como un punto intermedio. Es común que los desarrolladores busquen cambiar la librería por defecto para equilibrar el tamaño del código y las funciones necesarias para su aplicación.

Tabla Comparativa de Librerías C/C++ en MCUXpresso IDE

LibreríaTipoCaracterísticas PrincipalesUso Recomendado
NewlibGNU C/C++Funcionalidades completas, estándar GNU.Proyectos con amplias necesidades de funciones, sin restricciones severas de memoria.
NewlibNanoGNU C/C++ (optimizado)Versión de Newlib optimizada en tamaño.Proyectos que buscan equilibrio entre funcionalidad y menor huella de memoria.
RedlibNo GNU CAplicaciones de tamaño mucho menor, muy optimizada.Chips embebidos con memoria muy limitada, demos del SDK.

Cómo Cambiar la Librería C en MCUXpresso IDE

Aunque el proceso exacto para cambiar la librería C en MCUXpresso IDE no se detalla aquí, es una funcionalidad clave para los desarrolladores que buscan optimizar sus proyectos. La capacidad de alternar entre Newlib, NewlibNano y Redlib permite una gran flexibilidad. Por ejemplo, si los demos del SDK utilizan Redlib por defecto y tu aplicación necesita funcionalidades más amplias que Redlib no proporciona eficientemente, o si el tamaño de Newlib es inaceptable, querrás cambiar a NewlibNano. Para obtener información detallada sobre los pasos para realizar este cambio, se recomienda consultar la Guía de Usuario de MCUXpresso IDE oficial, donde se describe el procedimiento paso a paso.

Cómo Añadir MCUXpresso SDKs

Los SDKs de MCUXpresso son paquetes esenciales que contienen todo lo necesario para empezar a desarrollar con un microcontrolador específico, incluyendo drivers, ejemplos y herramientas. La forma en que se añaden e importan estos paquetes en MCUXpresso IDE es un proceso flexible que ofrece varias opciones para adaptarse a las preferencias del usuario y a la organización del proyecto.

Which C/C++ libraries are supported in mcuxpresso IDE?
There are three C/C++ libraries supported in MCUXpresso IDE, Newlib, NewlibNano, and Redlib. Newlib is a standard GNU C/C++ LIB, includes comprehensive functions. NewlibNano is optimized in size of Newlib. And Redlib provide much smaller applications, it isn’t a GUN C library.

Los paquetes SDK de MCUXpresso se descargan como archivos .zip. Si bien para IDEs de terceros como IAR o Keil es imperativo descomprimir el paquete para acceder a los archivos del proyecto, MCUXpresso IDE ofrece la conveniencia de importar el SDK ya sea comprimido (.zip) o descomprimido. La importación de un SDK comprimido puede ahorrar espacio en disco y, a menudo, es más rápida que importar una carpeta SDK descomprimida, lo que puede ser una ventaja significativa si necesitas añadir soporte para un nuevo dispositivo rápidamente.

Es importante destacar que tu paquete SDK debe ser compatible con MCUXpresso, lo que significa que debe haber sido creado recientemente en el SDK Builder (después del 24 de marzo, según la información provista) con soporte explícito para MCUXpresso en el paquete. De lo contrario, recibirás un error al intentar importarlo.

Proceso de Importación de SDKs

El método más común y sencillo para añadir un SDK es simplemente arrastrar y soltar el paquete (ya sea el archivo .zip o la carpeta descomprimida) en la ventana del IDE de MCUXpresso. Cuando se realiza esta acción, el IDE crea automáticamente una copia del zip/carpeta y la guarda en el directorio predeterminado: C:\Users\<nombre_de_usuario>\mcuxpresso\SDKPackages. Esto significa que puedes eliminar la copia original que descargaste para liberar espacio en tu disco duro.

La forma en que el IDE maneja los archivos fuente del SDK después de la importación varía según si el SDK fue importado como un archivo comprimido o descomprimido:

  • Si el SDK importado estaba comprimido: Al crear o importar proyectos de ejemplo, los archivos fuente del SDK siempre se copian en el espacio de trabajo. Esto asegura que tu proyecto tenga una copia local de todos los archivos necesarios.
  • Si el SDK importado estaba descomprimido: Tienes la opción de copiar los archivos fuente del SDK en el espacio de trabajo (que es la opción predeterminada) o de referenciarlos directamente como enlaces. Referenciar los archivos directamente puede ser útil si manejas múltiples proyectos que usan el mismo SDK y quieres evitar duplicar los archivos.

Descompresión Interna Optimizada

Una característica muy útil de MCUXpresso IDE es su capacidad para descomprimir un SDK que fue importado como archivo zip, directamente desde el propio IDE. Este proceso de descompresión ha sido optimizado para ser mucho más rápido que usar programas externos como WinZip. Una vez que la descompresión interna finaliza, el archivo zip original que se encontraba en la carpeta SDKPackages se elimina automáticamente del disco duro, dejando solo la carpeta descomprimida lista para ser utilizada, por ejemplo, con las herramientas de configuración de MCUXpresso (MCUXpresso Config Tools).

Métodos Alternativos para Añadir SDKs

Además del método de arrastrar y soltar, existen otras formas de añadir SDKs a tu entorno de MCUXpresso IDE:

  • Colocación Manual: Puedes colocar un paquete SDK (comprimido o descomprimido) directamente en el directorio predeterminado de SDKPackages (C:\Users\<nombre_de_usuario>\mcuxpresso\SDKPackages) y luego reiniciar MCUXpresso IDE. El IDE detectará automáticamente el nuevo SDK.
  • Rutas de Búsqueda Personalizadas: Para una mayor flexibilidad, puedes especificar directorios adicionales donde MCUXpresso IDE debe buscar archivos SDK (tanto comprimidos como descomprimidos). Esto se configura a través de Window -> Preferences -> MCUXpresso IDE -> SDK Options. Esta opción es ideal para mantener un repositorio centralizado de SDKs en una ubicación específica de tu disco duro. Sin embargo, ten en cuenta que para los SDKs almacenados fuera de la ubicación predeterminada, la función "Eliminar SDK" dentro del IDE estará deshabilitada, y las rutas de búsqueda adicionales solo se guardan por espacio de trabajo. Si cambias de espacio de trabajo, deberás volver a añadir la ruta.

Es importante saber que si se encuentran múltiples SDKs para el mismo dispositivo en diferentes ubicaciones, el IDE seleccionará el paquete a utilizar según la prioridad en la lista configurada (la parte superior tiene prioridad).

Para obtener información aún más detallada sobre el soporte de partes preinstaladas y la importación de SDKs, se recomienda consultar la Sección 4 de la Guía de Usuario de MCUXpresso IDE, así como los videos de capacitación informativos proporcionados por NXP.

Preguntas Frecuentes (FAQ)

¿Cuántas librerías C/C++ soporta MCUXpresso IDE?
MCUXpresso IDE soporta tres librerías C/C++: Newlib, NewlibNano y Redlib.
¿Cuál es la diferencia principal entre Newlib y NewlibNano?
Newlib es una librería GNU C/C++ estándar y completa, mientras que NewlibNano es una versión de Newlib optimizada en tamaño, ideal para reducir la huella de memoria de la aplicación.
¿Por qué Redlib es recomendado para chips de memoria pequeña?
Redlib no es una librería GNU C y está diseñada para generar aplicaciones mucho más pequeñas, lo que la hace ideal para microcontroladores con recursos de memoria muy limitados.
¿Debo descomprimir un SDK antes de importarlo en MCUXpresso IDE?
No es estrictamente necesario. MCUXpresso IDE puede importar SDKs tanto en formato .zip como descomprimidos. Importar el .zip puede ser más rápido y ahorrar espacio.
¿Dónde se guardan los SDKs importados en MCUXpresso IDE?
Los SDKs importados (o una copia de ellos) se guardan por defecto en el directorio C:\Users\<nombre_de_usuario>\mcuxpresso\SDKPackages.
¿Puedo eliminar el archivo ZIP original de un SDK después de importarlo?
Sí, una vez que el SDK ha sido importado (especialmente si fue un archivo .zip), puedes eliminar la copia original que descargaste, ya que MCUXpresso IDE crea su propia copia en el directorio SDKPackages.

Conclusión

La selección adecuada de librerías C/C++ y la gestión eficiente de los SDKs son pilares fundamentales para el desarrollo de proyectos embebidos con MCUXpresso IDE. Al comprender las características únicas de Newlib, NewlibNano y Redlib, los desarrolladores pueden tomar decisiones informadas que optimicen el rendimiento y el tamaño del código para sus dispositivos específicos. Del mismo modo, el conocimiento de los diversos métodos para importar y organizar los SDKs en el IDE no solo agiliza el proceso de configuración del proyecto, sino que también permite una mayor flexibilidad y control sobre el entorno de desarrollo. Con estas herramientas y conocimientos, los ingenieros pueden maximizar el potencial de sus microcontroladores NXP y llevar sus diseños embebidos al siguiente nivel.

Si quieres conocer otros artículos parecidos a Librerías C/C++ y SDKs en MCUXpresso IDE: Guía Completa puedes visitar la categoría Librerías.

Subir