This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
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 内容。 硬件复位将清除内容)、如果为真、我认为这将是此问题的根本原因、因此在我的客户侧就可以解决此问题。 请检查一下。 谢谢。
此致、
将会
BU 先生/女士、
有任何意见吗?
您好、Will、
这似乎是该问题的有效根本原因。 我将跟进设计团队以确认 IP 行为、并将按 EOD 返回。
此致、
阿什温
您好、Will、
团队仍在处理测试用例以进行问题验证、需要更多时间来确认相同情况。 测试完成后、我再给大家介绍更多详细信息。
此致、
阿什温
尊敬的 Ashwin:
感谢您的帮助、等待回复。
我还有一个问题:根据 TRM 说明、有两个名为 UART_FCR[2] TX_FIFO_CLEAR 和 UART_FCR[1] RX_FIFO_CLEAR 的寄存器字段、应用程序是否可以使用这2个字段来清除 FIFO 内容?
此致、
将会
您好、Will、
这似乎是解决这个问题的可行办法。 是否有可能在您的终端尝试一下?
同时、我将要求设计团队在测试用例中尝试这一点。
此致、
阿什温
尊敬的 Ashwin:
是的、我可以向客户尝试此方法。 如果有任何进度、则会在此处更新。
请抓紧测试用例并获取结果。 非常感谢。 客户每天都在催促我...
此致、
将会
您好、Will、
团队已为相同的问题创建了测试用例、但无法在我们一方重现问题。 执行软件复位时、FIFO 指针将复位、FIFO 将被清除、 RX_FIFO_STS 标志将被清除。
在客户侧、使用了哪个寄存器来确认 FIFO 指针正在复位但 FIFO 未被 清除?
此致
阿什温
尊敬的 Ashwin:
在客户侧、我们无法通过刷新 FIFO 内容来清除 RX_FIFO_STS 标志、该标志 通常在 SBL 跳转到 APP 期间设置、应用中的 UART_OPEN 函数中有软件复位操作。 如果 软件复位可以清除 FIFO 内容、为什么仍然设置该标志? 您是否知道其他可能导致此问题的情况、然后我们可以尝试在客户侧重复此问题。
谢谢。此致、
将会
您好、Will、
FIFO 中存在错误数据是导致设置标志的唯一原因。 使用了哪个寄存器来确认 FIFO 指针正在复位但 FIFO 未被 清空?
此致、
阿什温