BU 先生/女士、
客户要求我提供早期 UART 控制器问题的根本原因: E2E 主题。
早期问题可以总结为:UART 控制器无法 通过尝试读取 RX FIFO 内容来删除 RX_FIFO_STS 标志。 此问题只能通过使用 MSS_RCM 寄存器以硬件复位 UART 实例、然后重新初始化 UART 实例来解决。
并且当 SBL 跳转到应用时会发生该问题。 我发现在 UART_Open API 中、该驱动程序将通过调用 UART_moduleReset API 对模块进行软件复位。 如果在跳转过程中 UART 控制器接收到某个帧、则可能有一个帧出现错误。 然后、在软件复位 UART 实例后、FIFO 读取指针将返回到开始位置。 因此软件无法再清除 FIFO 的内容、这意味着无法读取错误帧。 因此 不会清除 RX_FIFO_STS 标志。
并且硬件复位 UART 实例将清除 FIFO 内容、以便 不再设置 RX_FIFO_STS 标志。
我想再次与您确认上述行为(软件复位 UART 只会复位 RX FIFO 指针、而不会刷新 RX FIFO 内容。 硬件复位将清除内容)、如果为真、我认为这将是此问题的根本原因、因此在我的客户侧就可以解决此问题。 请检查一下。 谢谢。
此致、
将会