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.

[参考译文] TMS320F28335:eCAN 消息发送优先级

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/601952/tms320f28335-ecan-message-sending-priority

器件型号:TMS320F28335

大家好、

我对 eCAN 发送消息优先级有疑问。

假设以下情况:

10个邮箱 A 配置为输出箱。 如果它们的 TRS 位同时置位、则消息发送输出序列应基于它们的 TPL 位(如果我们处于 eCAN 模式)。  但是、如果在 for 循环中逐个设置 TRS bis、会发生什么情况?

我自己做了一个测试、看到了以下情况:

到 for 循环结束时、尚未发出非消息。 因此、所有 TRS 位仍然为1。  之后、消息会随机发出。 该序列既不基于 TRS bis 的设置顺序、也不基于 TPL 值。

理想情况下、我认为它应基于 TPL 值。 由于 TRS 位设置得如此之快、因此与同时将它们设置为1相比没有什么区别。 在所有 TRS 位被置位时、邮箱中的消息不应进入缓冲区。 因此、当 CPU 决定哪条消息应该进入缓冲区时、应该使用 TPL 值。

有什么想法吗?

谢谢、