Embedded Coder

 

Embedded Coder

Generación de código C y C++ optimizado para sistemas embebidos

Más información:

Configuración para la generación de código

Para configurar los parámetros de generación de código de Embedded Coder®, utilice la app MATLAB Coder para MATLAB® y utilice la app Embedded Coder Quick Start para Simulink. También puede configurar los ajustes directamente mediante comandos y scripts de MATLAB.

Con la app MATLAB Coder, es posible:

  • Generar código para los archivos y las funciones de MATLAB
  • Seleccionar el procesador y la salida de generación de código
  • Elegir las optimizaciones de Embedded Coder

Con Embedded Coder Quick Start para Simulink, es posible:

  • Generar código para los subsistemas y los modelos de Simulink
  • Seleccionar el procesador y la salida de generación de código
  • Elegir que Embedded Coder optimice el uso de memoria RAM o la velocidad de ejecución
texto alternativo necesario aquí

Uso de Embedded Coder Quick Start para acelerar la generación de código de producción desde Simulink.

Selección de destinos

Embedded Coder utiliza objetos de configuración y archivos de destino de sistema para convertir el código de MATLAB y los modelos de Simulink en código fuente y ejecutables con calidad de producción.

En el caso de MATLAB, se especifica uno de los siguientes destinos de salida:

  • Archivo MEX
  • Librería estática C/C++
  • Ejecutable de C/C++

En el caso de Simulink, se especifica una de las configuraciones listas para ejecutar, entre las que se incluyen:

Destino embebido en tiempo real: genera código C ANSI/ISO, C++ y C++ encapsulado con datos en punto flotante y en punto fijo para una ejecución eficiente en tiempo real prácticamente en cualquier procesador de producción.

Destino de AUTOSAR: genera código C e interfaces en tiempo de ejecución que soportan el desarrollo de componentes de software AUTOSAR (requiere AUTOSAR Blockset).

Destino de librería compartida: genera una versión de librería compartida del código para la ejecución en la plataforma host, ya sea como archivo de librería de enlaces dinámicos de Windows® (.dll) o como archivo de objeto compartido de UNIX® (.so).

Además, MathWorks y otras empresas de terceros ofrecen complementos de MATLAB que amplían la capacidad de Embedded Coder para admitir hardware específico, como ARM®, Intel®, NXP™, STMicroelectronics® y Texas Instruments™.

texto alternativo necesario aquí

Uso de paquetes de soporte de hardware para desplegar rápidamente el código generado en dispositivos embebidos.

Trabajo con datos personalizados

Embedded Coder permite definir y controlar cómo aparecen los datos del modelo en el código generado para facilitar la integración del software.

En el caso del código de MATLAB, Embedded Coder soporta todas las definiciones de datos de MATLAB Coder, incluidos los objetos en punto fijo y las clases de almacenamiento predefinidas.

En el caso de los modelos de Simulink, Embedded Coder soporta las siguientes funcionalidades de especificación y diccionario de datos:

Embedded Coder Dictionary: permite ver y personalizar las definiciones de código, incluidas las interfaces de funciones, las clases de almacenamiento y las secciones de memoria.

Objeto de datos de Simulink: proporciona clases de almacenamiento predefinidas, que incluyen constant, volatile, exported global, imported global, define directive, structure, bit field (incluida la estructura de empaquetado de bits) y los métodos de acceso get y set.

Objeto de datos de empaquetado de módulos: proporciona atributos preconfigurados para objetos de datos avanzados utilizados normalmente en la producción en serie, tales como segmentos de memoria para calibrar o sintonizar tablas de búsqueda.

Tipo de datos de usuario: permite crear tipos abstractos para datos complejos y controlar con precisión cómo aparecen los datos del modelo en el código generado, establecer una interfaz con cualquier dato heredado y aumentar o reemplazar los tipos integrados de Simulink.

Embedded Coder ofrece acceso a archivos de intercambio de datos ASAP2 en Simulink, lo que permite exportar datos de modelo con definiciones de datos complejas utilizando el estándar ASAP2. Es posible modificar las funcionalidades integradas para producir otros mecanismos de intercambio de datos.

texto alternativo necesario aquí

Uso de Embedded Coder Dictionary para definir y controlar cómo aparecen los modelos y los datos en el código generado.

Optimización y empaquetado de código

Embedded Coder permite controlar los límites de las funciones, preservar expresiones y aplicar optimizaciones en varios bloques para reducir aún más el tamaño del código. Los datos se intercambian con el código generado a través de variables globales o argumentos de función. Es posible rastrear el código generado hasta los bloques y las señales del modelo.

Las opciones de Embedded Coder para generar código a partir de código de MATLAB y modelos de Simulink permiten:

  • Generar código específico del procesador para funciones y operadores matemáticos
  • Reutilizar código para exportar a entornos heredados o externos
  • Eliminar código innecesario de inicialización, terminación, registro y gestión de errores
  • Eliminar código en punto flotante en aplicaciones que solo usan enteros

Existen opciones adicionales de optimización y configuración de Embedded Coder para los modelos de Simulink que permiten:

  • Generar variantes de código utilizando macros para la compilación del preprocesador
  • Controlar el formato de cada archivo generado
  • Determinar cómo se definen y referencian los datos globales
  • Especificar el contenido y la ubicación de los comentarios
texto alternativo necesario aquí

Generación de código SIMD desde un modelo de Simulink.

Comentarios, trazabilidad y documentación de código

Embedded Coder ofrece varias funcionalidades para examinar el código generado en los archivos y las funciones de MATLAB o los modelos y los subsistemas de Simulink. Estas funcionalidades permiten:

  • Generar un informe de código que describe los módulos de código, las interfaces de función y las métricas del código estático
  • Controlar los formatos de los identificadores para las funciones, los tipos de datos y los datos globales generados
  • Incluir el código de MATLAB como comentarios en el código generado, incluido el texto de ayuda de las funciones

Con Simulink, Embedded Coder también ofrece la posibilidad de insertar requisitos de alto nivel como comentarios de código con enlaces al origen de los requisitos (requiere Simulink Requirements™). El informe de código sobre la generación de código de Simulink también incluye una descripción de la interfaz de código, un informe de trazabilidad y la visualización de los archivos fuente y el código generados. Existen enlaces bidireccionales entre el modelo y el código generado, lo que facilita la navegación entre todas las líneas de código y su correspondiente elemento en el modelo de Simulink, incluidos subsistemas, bloques, funciones y código de MATLAB, y gráficas y transiciones de Stateflow®.

texto alternativo necesario aquí

Informe de generación de código de Simulink que destaca la trazabilidad bidireccional entre el algoritmo y la implementación.

Ejecución y verificación de código

Embedded Coder permite incorporar el código generado en el entorno de ejecución de código.

Con MATLAB, el código generado desde Embedded Coder se ejecuta utilizando el mismo marco de ejecución proporcionado por MATLAB Coder.

Con Simulink, Embedded Coder amplía significativamente el marco de ejecución en tiempo real proporcionado por Simulink Coder. De forma predeterminada, el código se puede ejecutar con o sin un sistema operativo en tiempo real (RTOS) y en modo monotarea, multitarea, multinúcleo o asíncrono. También es posible verificar los resultados de ejecución del código mediante Embedded Coder para pruebas software-in-the-loop (SIL) y processor-in-the-loop (PIL). Simulink Test™ y Simulink Coverage ayudan a automatizar la ejecución de pruebas, la comparación de resultados y los análisis de cobertura. También se admite el análisis de perfiles de ejecución de código.

Generación de un programa principal

Embedded Coder genera un programa principal ampliable basado en la información proporcionada para desplegar el código en el entorno en tiempo real. Esta funcionalidad permite generar y crear un ejecutable personalizado completo a partir del modelo.

Ejecución de código multitasa, multitarea y multinúcleo

Embedded Coder genera código monotasa o multitasa utilizando los tiempos de muestreo periódicos especificados en el modelo. Para los modelos multitasa y multitarea, emplea una estrategia llamada agrupación de tasas que genera funciones independientes para la tarea de tasa base y para las tareas de subtasa del modelo. También se puede utilizar el modelado de ejecución simultánea de Simulink y producir código con varios subprocesos para el procesamiento multinúcleo.

Realización de pruebas SIL y PIL

Embedded Coder automatiza la ejecución del código generado en Simulink para pruebas SIL o en la plataforma embebida para pruebas PIL utilizando bloques de función S o modos de simulación de Simulink. Simulink Test™ ayuda a automatizar la ejecución de las pruebas y la comparación de los resultados de las pruebas con los resultados de la simulación del modelo original. El análisis de cobertura de código estructural para medir la integridad de las pruebas se puede realizar con Simulink Coverage o mediante la integración con herramientas de terceros. El análisis de perfiles de código proporciona tiempo de ejecución en los procesadores host o de destino.

texto alternativo necesario aquí

Realización de pruebas software-in-the-loop (SIL) y processor-in-the-loop (PIL) del código generado por Embedded Coder.