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.

[参考译文] RTOS/TM4C1294NCPDT:UART 回调、不总是 HWI 触发?

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/710415/rtos-tm4c1294ncpdt-uart-callback-not-always-hwi-triggered

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

您好!

在当前的实施中、我面临以下问题:我有两个任务负责处理两个不同的 UART。 两个任务的结构几乎相同:

void readInput (void)
{
while (1)
{
UART_READ (UART、缓冲区、1);//成功读取后调用回调函数
Semaphore_pend (sem、BIOS_wait_forever);//从回调函数返回信标
//执行某些操作
}
} 

在下一步中、我在回调函数的开头放置一个断点。 如果我现在停止几个断点调用、我可以看到以下内容:回调函数要么由 HWI 触发、要么由任务(?)触发:

这两个调用之间的区别是什么? 我的问题是指出:在 HWI 中、我无法使用或调用任何信标功能、而这在任务上下文中是可能的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我只是注意到、我是在逐字读取已获得的消息、因为我不知道消息的长度。 因此、初始回调通过 HWI 触发、但在任务上下文中接收到以下字节。 是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Volker、

    是的。 如果存在数据、则在任务上下文中调用回调。 以下是 TI-RTOS 驱动程序 API 参考中的参考(尽管细节上有所说明)。

    Todd

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在阅读 API 文档时错过了这个机会。 不过,这正是我想知道的。
    谢谢 Todd!