主题中讨论的其他器件:SysConfig
你好。
我正在使用 am64x、并正在尝试开发 UART 驱动程序。 幻灯片。
数据表中注明有针对 UART 的可编程触发器。 意思是可编程 FIFO 中断。
如果 FIFO 的字节数超过触发级别、则发生中断。
我正在尝试实施它。 我遇到了一些关于 UART/DMA/FIFO 模式的问题。
在我的 SDK 中有两个 UART 示例。 两者都使用回调。
这里是技术参考手册->www.ti.com/.../spruim2f.pdf
uart_echo_low_delay_interrupt 示例 :
该示例使用用户管理的中断。
该示例在每次 char 到达时调用回调函数并作为 echo 写入。 无论 SysConfig 上的 TX 和 Rx 触发电平是多少。
这不是我所期望的。 技术文档指出、当 FIFO 中的字节超过触发级别时、将发生中断。


uart_echo_callback 示例:
本示例中有 UART_READ 函数的事务参数。 转换有触发电平变量的计数。

与其他示例一样、此函数读取每个字节、但在 TX 触发时会打印回。
我假设 Rx 触发器不起作用、但 Tx 起作用。 因为每个字节都发生读取中断、但 仅在其高于打印触发级别时才会发生中断。
在完成所有这些事情之后、我尝试 以自己的方式 :
我尝试自行设置相关寄存器。
SysConfig 驱动程序初始化所有 UART 后。 我尝试在以下链接上设置寄存器-> 12.1.5.5.4.2 FIFO 触发设置
没有任何变化。
在这三个示例中、我更改了 SysConfig Rx 和 TX 中断级别1、8、16、56;没有任何更改。
有一些我不能完全理解的部分。
TRM 显示使用触发电平激活 DMA 模式。
在 SysConfig 中、选择 DMA 后没有触发电平选项。 这就是为什么我虽然触发电平不能使用 DMA 的原因。 我需要设置中断。
什么是我的错误或我遗漏了什么?



