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 admisible 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 Classic Accelerator y Rapid Accelerator. Los modos Accelerator 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 Conceptos básicos de la simulación de hardware-in-the-loop (Simscape).
Para obtener más información, consulte Generate Code Using Simulink Coder (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 obtener más información, consulte Generate Code Using Embedded Coder (Embedded Coder).
Sugerencias de diseño para optimizar el código generado de los objetos de Stateflow
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 a 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 Buses.
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 de 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++ | Source Code Generation (Simulink Coder) | Source Code Generation (Embedded Coder) |
Generar código fuente C o C++ y construir el ejecutable | Generated Code Compilation (Simulink Coder) | Generated Code Compilation (Embedded Coder) |
Integrar código externo | External Code Import (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 with Library Charts (Simulink Coder) | Integrate External Code with Library Charts (Embedded Coder) |
Optimizar código generado | Code Efficiency (Simulink Coder) | Code Efficiency (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).