“线程:测试”中讨论的其它部件
我已经在论坛上搜索过,并查看了现有的 UART 单元测试和示例项目。
信息就在这里,我只需要一只手连接点。
为了提供背景信息,在项目的初始阶段,我们希望 通过 UART 推送记录器数据。
“记录器数据”是指您通常通过 System_printf()发送的标准调试日志,但它不是在 CCS 中打印出来,而是通过由 MSS 拥有的 UART 进行打印。
这里有很多示例,说明如何制作自己的使用 UART 的 printf 变体,但在这种情况下,它必须尽可能地高性能。
“性能”一词是主观的,因此要进一步阐述,我想构建这种日志记录机制,以使其具有很低的优先级,并且不会阻止任务执行,也不会从另一个任务中获取资源。
我认为这种类型的初始调试日志记录是“可以拥有的”,而不是系统的关键部分。 也就是说,我不希望这种机制影响雷达的执行或信号处理。 幸运的是,逻辑存在于 DSS 中,因此理论上它不应该产生影响,但你会得到这个想法。
根据我目前的调查,mmWave SDK 提供了两种主要的数据推送方法:
功能:
UART 写入()
描述:
-在启用中断的情况下将数据写入 UART。 将阻止任务执行,直到写入缓冲区中的所有数据
功能:
UART 写入 Polling()
描述:
-将数据写入 UART,轮询外围设备以等待写入新数据。 在所有数据写入 UART 之前,不会返回
在研究了这两个问题后,我仍然不清楚哪个问题最有意义。 根据上述描述,一个将“在写入所有数据之前不返回”,另一个将“阻止任务执行”。
我希望有一种方法让 UART 知道有数据要发送,一旦循环释放,它将在闲置时间协调事务。 这样资源争用最小,并且假设调用来自低优先级任务,其他高优先级任务可能会在需要时跳进并执行。
我的上述解释是否正确? 如果是这样,是否有首选哪条路由用于此方案(日志记录)?
谢谢!