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.

[参考译文] MCU-PLUS-SDK-AM243X:UART 中断已禁用

Guru**** 2387830 points
Other Parts Discussed in Thread: TMDS243EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1242339/mcu-plus-sdk-am243x-uart-interrupt-disabled

器件型号:MCU-PLUS-SDK-AM243X
主题中讨论的其他器件:TMDS243EVM

尊敬的支持团队:

我们将电路板 TMDS243EVM 与 SDK 8.5一起使用、我们在上面应用了针对问题 i2310 (USART:错误的超时中断清除/触发)的 SDK 8.6提供的变通办法。

我们有一个 CLI 应用程序、它在启动后看起来可以正常工作。
此应用回显在串行终端中键入的字符。

但经过一段时间后、CLI 应用程序看起来已冻结。

在研究"UART_v0.c"后、我可以看到中断处于禁用状态、因此不再调用 UART_CONTROLLEerIsr ()。

您是否注意到您身边存在这种问题?

当它工作时(被阻止之前)、我在 UART_CONTROLLEerIsr  ()中注意到、每次接收一个字符时(位2针对 RHR 中断进行置位)、在 UART0_MEM_IIR_UART (中断识别寄存器)中检测到一个 Rx 超时、IT_TYPE 被设置为0x6 (位3和位2)。
寄存器 UART0_MEM_EFR2的值为0x00000000:TIMEOUT_行为= 0h (接收到至少一个字符后超时)。

这种配置是否正确?
可以对  UART_CONTROLLEerIsr()中检测到的 Rx 超时进行解释。

我还注意到 i2310 (uart_i2310WA (attrs->baseAddr);)的权变措施从不在 uart_controllerIsr  ()中调用。

感谢你的帮助。

此致、

卢多维奇

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ludovic:

    您的 CLI 应用程序基于哪个 UART echo 示例? 您是否使用中断、轮询、DMA 或低延迟示例? 您是否正在使用 UART FIFO?

    我修改了 echo uart 示例: uart_echo_am243x-evm_r5fss0-0_nortos_ti-arm-clang、 uart_echo_back_am243x-evm_r5fss0-0_nortos_ti-arm-clang 和 uart_echo_dma_am243x-evm_r5fss0-0_nortos_nonto_clang、 以便在 ARM-reloon-arm-clang 循环上执行回显。 我从来没有这样的失败你所描述。

    我使用的是 AM243x EVM 和 MCU+ SDK 08.06.00.43。

     Rx 超时中断在以下情况下发生:

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ming:

    我的应用 在 中断模式下使用 UART、并使用 UART FIFO。

    我的应用不是基于 TI 的演示应用、但是...

    我可以在演示应用(uart_echo_am243x-evm_r5fss0-0_freertos_ti-arm-clang)我修改为循环回显1个字符时重现问题。

    为此、我将使用 SDK 8.5、所以基本上对于 i2310的权变措施不适用于此测试。


    这是我的配置:

    如果您想尝试、这是已导出的工程:

    e2e.ti.com/.../uart_5F00_echo_5F00_am243x_2D00_evm_5F00_r5fss0_2D00_0_5F00_freertos_5F00_ti_2D00_arm_2D00_clang_5F00_MODIFED_5F00_WITH_5F00_INFINITE_5F00_LOOP.zip

    和串行日志:

    e2e.ti.com/.../Serial-Logs.txt

    我不知道为什么,但如果我总是键入相同的字符,我看不到问题。

    如果我随机快速键入多个字符、程序将冻结。

    此致、

    卢多维奇

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在...\source\drivers\uart\v0\uart_v0.c 中应用 i2310问题的变通办法后的相同结果  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ludovic:

    我可以在 MCU+ SDK (08.06.00.43) UART 示例上重现您报告的问题: uart_echo_am243x-evm_r5fss0-0_freertos_ti-arm-clang。 当两个按键非常接近时、它会锁定。 我猜测、如果 UART 读取中断和写入中断过于接近、则可能会发生锁定。 我将为此提交 JIRA 票证(MCUSDK-11114)。

    同时、我还在 uart_echo_callback_am243x-evm_r5fss0-0_freertos_ti-arm-clang 上尝试了相同的操作。 无论 I TYPE 的速度有多快、都能正常工作。 您可以使用回调示例重新实施 CLI 应用程序、作为一种权变措施。

    此致、