Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Generar código C o C++ a partir de bloques de Stateflow

Para generar código C o C++ a partir de modelos de Simulink® que incluyan un gráfico de Stateflow®, use Simulink Coder™. A parte de Simulink Coder, debe usar Embedded Coder® para mejorar aún más el código generado. Las mejoras de Embedded Coder hacen que su código sea más legible, más compacto y más rápido de ejecutar.

Cuando se genera código para un objetivo, el analizador sintáctico de Stateflow evalúa los objetos gráficos y no gráficos y los datos de cada máquina de Stateflow con respecto a la notación gráfica compatible y la sintaxis del lenguaje de acción. Para obtener más información, consulte Detect Common Modeling Errors During Simulation.

Generar código con Simulink Coder

Simulink Coder permite generar código C y C++ a partir de modelos que incluyan gráficos de Stateflow. Podrá utilizar el código generado para aplicaciones en tiempo real y no real en los siguientes casos:

  • Aceleración de simulación

  • Prototipado rápido

  • Pruebas de hardware-in-the-loop (HIL)

Con Simulink Coder puede acceder a los modos Acelerador clásico y Acelerador rápido. Los modos de aceleración funcionan generando código de destino, que luego se utiliza en la ejecución. Para obtener más información sobre estos modos, consulte How Acceleration Modes Work (Simulink).

Las pruebas de HIL permiten probar el diseño de su controlador y determinar si su modelo de sistema físico (planta) es válido. Para obtener más información sobre las pruebas de HIL, consulte Basics of Hardware-In-The-Loop simulation (Simscape).

Para empezar a configurar un modelo de generación de código con Simulink Coder, consulte Configure Model and Generate Code (Simulink Coder).

Generar código con Embedded Coder

Con la adición de Embedded Coder puede generar código C o C++ más compacto, más fácil de leer y más rápido de ejecutar. Además, Embedded Coder amplía las capacidades de Simulink Coder al permitirle controlar las funciones, los archivos y los datos generados. Asimismo, Embedded Coder permite una fácil integración del código existente, los tipos de datos y los parámetros de calibración. Embedded Coder admite estándares de software para:

  • AUTOSAR

  • MISRA C

  • ASAP2

Embedded Coder también proporciona paquetes de soporte con optimizaciones avanzadas y controladores de dispositivos para hardware específico.

Para empezar a configurar un modelo de generación de código con Embedded Coder, consulte Generate Code by Using the Quick Start Tool (Embedded Coder).

Consejos de diseño para optimizar el código generado de los objetos de Stateflow

Evitar el acceso a los datos asignados a máquinas

Esta restricción evita que aparezcan largas listas de parámetros en el código generado para una función gráfica. Puede acceder a los datos locales que residen en el mismo gráfico que la función gráfica. Para obtener más información, consulte Reuse Logic Patterns by Defining Graphical Functions.

Además, Embedded Coder no admite el uso de bibliotecas de sustitución de código en los datos asignados a máquinas. Para obtener más información, consulte Code You Can Replace From Simulink Models (Embedded Coder).

Ser explícito sobre la opción Inline de una función gráfica

Cuando use una función gráfica en un gráfico de Stateflow, seleccione Inline o Function con la propiedad Function Inline Option. De lo contrario, es posible que el código generado para una función gráfica no aparezca como desea. Para obtener más información, consulte Specify Properties of Graphical Functions.

Evitar el uso de múltiples eventos activados por flancos en los gráficos de Stateflow

Si se utiliza más de un activador, se generan varias instrucciones de código para gestionar las detecciones de flancos ascendentes o descendentes. Si se necesitan varios activadores, utilice eventos de llamada de función en su lugar. Para obtener más información, consulte Activar un gráfico de Stateflow enviando eventos de entrada.

Combinar las señales de entrada de un gráfico en un único objeto de bus

Cuando se utiliza un objeto de bus, se reduce el número de parámetros en la lista de parámetros de una función generada. Esta directriz también se aplica a las señales de salida de un gráfico. Para obtener más información, consulte Define Stateflow Structures.

Utilizar tiempos de muestreo discretos

El código generado para los gráficos discretos que no están dentro de un subsistema activado o habilitado utiliza contadores enteros para realizar un seguimiento del tiempo en lugar del tiempo proporcionado por Simulink. El código generado utiliza menos memoria y permite utilizar el código en los modos de simulación Software-in-the-Loop (SIL) y Processor-in-the-Loop (PIL).

Generar código para prototipado rápido y despliegue de producción

Esta tabla ofrece información sobre la generación de código basada en sus objetivos.

Objetivo

Documentación de Simulink Coder

Documentación de Embedded Coder

Generar código fuente C o C++

Code Generation Basics (Simulink Coder)

Source Code Generation (Embedded Coder)

Generar código fuente C o C++ y construir el ejecutable

Build Process (Simulink Coder)

Generated Code Compilation (Embedded Coder)

Integrar código externo

External Code Integration (Simulink Coder)

External Code Import (Embedded Coder)

Incluir código externo solo para gráficos de biblioteca en una biblioteca portátil y autónoma que pueda utilizarse en varios modelos

Integrate External Code for Library Charts (Simulink Coder)

Integrate External Code for Library Charts (Embedded Coder)

Optimizar código generado

Performance (Simulink Coder)

Memory Usage (Embedded Coder)

Trazabilidad de los objetos de Stateflow en código generado

Los comentarios de trazabilidad proporcionan una forma de:

  • Verificar el código generado. Puede identificar qué objeto de Stateflow corresponde a una línea de código y hacer un seguimiento del código de diferentes objetos que haya revisado o no.

  • Incluir comentarios en el código generado para modelos a gran escala. Puede identificar los objetos en el código generado y evitar la introducción manual de comentarios o descripciones.

Para habilitar los comentarios de trazabilidad, debe tener el software Embedded Coder o HDL Coder™. En la generación de código C o C++, los comentarios aparecen en el código generado solo para objetivos en tiempo real integrados (ert). Para obtener más información, consulte Trace Stateflow Elements in Generated Code (Embedded Coder) y Navigate Between Simulink Model and HDL Code by Using Traceability (HDL Coder).

Temas relacionados