Thread 中讨论的其他部件:SYSBIOS、ENERGIA
工具/软件:TI-RTOS
您好!
我已经尝试过多种方法来使用 TI-RTOS 读取全部8个 UART、但在读取时不会丢失数据、每次读取的数据不能超过3-4个。 如果您有任何建议来处理使用 TI-RTOS (必须是 TI-RTOS)读取全部8个 UART 的内容、我将不胜感激。
每个 UART 每1到4秒以19200波特接收20-64字节数据。 我的目标是能够将每个 UART 的数据存储在缓冲区中、直到接收到一个终止字符来表示数据包的末尾、然后复制缓冲区并在其他地方使用。
我已经尝试了以下许多不同的方法:
1) 1)最初修改了 Enet_s2E 示例、该示例使用 FreeRTOS 使用8个 UART。 它可以工作、但由于 USB/插座要求、必须使用 TI-RTOS。
2) 2)修改了针对多个 UART 的 TI-RTOS 示例"uartecho"
a)每个 UART 一个任务、无需回调即可进行读取
a1)通过队列发送字符,以便由单独的任务聚合
a1)将字符复制到 char[]缓冲区中、以由 单独的任务聚合
b)每个 UART 一个任务、通过回调任务进行读取
b1)在回调中、通过队列发送字符、以由 单独的任务聚合
b2)在回调中、将字符复制到 char[]缓冲区中、以便由 单独的任务聚合
B3)调用读取的计时器
B4)信标和缓冲区、以最大程度地缩短回调时间
基本上、我已经尝试了很多方法和选项的变体、一次读取的字节数、没有一个接近全部8次读取、没有丢失数据。 有人知道 TI-RTOS 中可以无问题地处理全部8个 UART 的任何方法吗? 在调度方面、我们需要能够在一侧运行一些额外的低优先级任务、例如 USB 和套接字。
谢谢!