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.

[参考译文] AM2634-Q1:在 AM2634-Q1 UART 实现中、基于信号量的任务阻止对 CPU 资源利用率的影响

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1468241/am2634-q1-impact-of-semaphore-based-task-blocking-on-cpu-resource-utilization-in-am2634-q1-uart-implementation

器件型号:AM2634-Q1

工具与软件:

大家好、团队成员:

我们正在使用 AM2634-Q1控制卡、并已在我们的应用中启用所有六个 UART、该应用基于 UART Hello World 示例。 我们有一些关于 UART 功能的问题:

UART 中的信标处理:
在所有 UART 示例中、每个 UART 都有一个专用任务、该任务被信标阻止、并等待回调函数释放它。 然后、信标在读取或写入操作期间再次锁定。

由于这种方法需要六个单独的任务来处理六个 UART 外设、因此该方法是否会在等待期间消耗 CPU 内存或其他资源?

期待您的见解。

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

    您好!

    我们正在创建6个不同的 FreeRTOS 任务、因此它确实会消耗系统资源、如堆栈内存、FreeRTOS 内核对象(如信标和任务)、每个任务都有自己的堆栈内存、基于中断的任务切换开销等 在等待期间、当信标被阻止时、将不会有任何 CPU 使用率、但是对于创建的任务、将会有内存使用率(任务堆栈、PCB 堆栈和信标对象内存)

    2.您可以尝试创建一个运行多个 UART 实例的单个任务(一个任务处理6个 UART 实例)、维护一个队列、在该队列中所有 UART 回调推送接收到的数据/事件、单个任务等待队列并按顺序处理 UART 数据/事件(取决于您的应用设计)

    此致、
    Shaunak

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

    感谢您的答复、这解决了我的问题