Sugerencias de diseño de aplicaciones principales en tiempo real
Importante
Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).
Las aplicaciones principales en tiempo real (RT) se ejecutan sin sistema operativo o con un sistema operativo en tiempo real (RTOS) en los núcleos en tiempo real. Muchas de las recomendaciones de diseño para aplicaciones HL-core también se aplican al diseño de aplicaciones rt-core. En este tema se describen más sugerencias de diseño que se deben tener en cuenta al diseñar aplicaciones rt-core.
- Usar un temporizador de guardián: se recomienda habilitar e implementar el temporizador de guardián MT3620 para que pueda detectar interbloqueo e implementar la lógica de recuperación adecuada. Para obtener más información, consulte Uso de un temporizador de guardián en una RTApp. Esto también podría ser un punto importante en el que la aplicación RT puede indicar la aplicación HL-core (por ejemplo, a través del buzón entre núcleos) que algo ha ido mal para que cualquier aplicación pueda realizar las acciones adecuadas, como restablecer el dispositivo. Esto se puede hacer de las siguientes maneras:
- Reinicie el dispositivo llamando a la
PowerManagement_ForceSystemReboot
función desde la aplicación HL-core. Consulte Niveles de reinicio en un dispositivo. - Pasando las API de HL-core realizando un restablecimiento de hardware a través de un GPIO dedicado con los pines de administración de energía de MT3620 (PMU_EN, EXT_PMU_EN o SYSRST_N). Para obtener más información sobre PMU_EN y EXT_PMU_EN, consulte Consideraciones sobre apagado. El restablecimiento de hardware con SYSRST_N normalmente implica diseñar los esquemas del dispositivo con hasta tres (uno por cada núcleo) de restablecimiento dedicado de GPIOs, conectados a través de diodos y filtros RC al pin de SYSRST_N del dispositivo. La realización de un restablecimiento de hardware permite una acción independiente de cualquiera de las aplicaciones HL-core y RT-core si el diseño requiere una recuperación determinista desde cualquier aplicación que se ejecute en cualquier núcleo.
- Reinicie el dispositivo llamando a la
Nota:
Tenga en cuenta detenidamente el uso de GPIOs para restablecer el dispositivo desde una aplicación rt-core, ya que un efecto no deseado de programación o diseño de esa aplicación (por ejemplo, restablecer continuamente el dispositivo) podría impedir que el dispositivo reciba actualizaciones del sistema operativo y de la aplicación.
- Implemente comunicaciones entre núcleos en proyectos que combinen aplicaciones HL-core y RT-core: incluso si no es necesario explícitamente, siempre se recomienda implementar un intercambio de comunicación mínimo entre las aplicaciones HL-core y RT-core. Para obtener más información, consulte Comunicación con una aplicación compatible en tiempo real. Además de un intercambio de datos obvio cuando la comunicación entre núcleos está diseñada explícitamente como parte de la arquitectura general de la aplicación, es útil e importante que las dos partes se sincronicen con respecto al estado del otro para que el estado general del dispositivo se pueda administrar entre sí (consulte el ejemplo de comunicación entre núcleos).
Para obtener información de referencia adicional sobre el desarrollo de aplicaciones rt-core, incluidos controladores y ejemplos para usar periféricos y características MT3620, consulte:
- Documentación de MediaTek MT3620
- MediaTek MT3620 M4 Driver & Real-Time Application Sample Code
- Controladores para núcleos en tiempo real (CM4) de Azure Sphere MT3620 por Codethink Labs : estos controladores se han desarrollado mediante interfaces (API) fáciles de usar que imitan estrechamente las disponibles para las aplicaciones de núcleo HL.
- Ejemplos de núcleos en tiempo real (CM4) de Azure Sphere MT3620 por Codethink Labs