实时核心应用程序设计建议

实时 (RT) 核心应用程序在裸机上运行,或者与实时操作系统 (RTOS) 在实时核心上运行。 HL 核心应用程序的许多设计建议也适用于设计 RT 核心应用程序。 本主题讨论设计 RT 核心应用程序时要考虑的进一步设计建议。

  • 使用监视器计时器: 建议启用并实现 MT3620 监视器计时器,以便检测死锁并实现正确的恢复逻辑。 有关详细信息,请参阅 在 RTApp 中使用监视器计时器。 这也可能是 RT 应用程序 (向 HL 核心应用程序发出信号的一个重要点,例如,通过核心间邮箱) 出现问题,以便任一应用程序都可以采取适当的操作,例如重置设备。 这可以通过以下方式完成:
    • 通过从 HL-core 应用程序调用 PowerManagement_ForceSystemReboot 函数来重启设备。 请参阅 设备上的重启级别
    • 通过使用 MT3620 的电源管理引脚 (PMU_EN、EXT_PMU_EN或SYSRST_N) ,通过专用 GPIO 执行硬件重置来绕过 HL 核心 API。 有关PMU_EN和EXT_PMU_EN的详细信息,请参阅 关机注意事项。 使用SYSRST_N进行硬件重置通常涉及设计每个内核最多三个 (一个的设备原理图,) 专用的重置 GPIO,通过二极管和 RC 滤波器连接到设备的SYSRST_N引脚。 如果设计需要从任何核心上运行的任何应用程序进行确定性恢复,则执行硬件重置允许从任何 HL-core 和 RT 核心应用程序执行独立操作。

注意

非常仔细地考虑使用 GPIO 从 RT 核心应用程序重置设备,因为该应用程序的编程或设计的意外影响 (例如,持续重置设备) 可能会阻止设备接收操作系统和应用程序更新。

  • 在组合 HL-core 和 RT-core 应用程序的项目中实现核心间通信: 即使没有明确需要,也始终建议在 HL-core 和 RT-core 应用程序之间实现最小通信交换。 有关详细信息,请参阅 与支持实时的应用程序通信。 除了在将核心间通信显式设计为整个应用程序体系结构的一部分时进行明显的数据交换外,双方在彼此状态方面进行同步,以便彼此可以更好地管理整体设备状态, (查看 核心间通信 示例) ,这一点非常有用且重要。

有关开发 RT 核心应用程序的其他参考信息,包括用于使用 MT3620 外围设备和功能的驱动程序和示例,请参阅: