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.

[参考译文] TMS570LS3137:DCAN 模块消息框根据奇偶校验而定。

Guru**** 2553260 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1315972/tms570ls3137-dcan-module-message-box-assigments-depending-on-parity

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

大家好!

我不明白初始化 DCAN 模块上的设计策略。 我想 halcogen 自动分配的消息框 、具体取决于是奇数还是对 IF1和 IF2寄存器的偶数。

我是否只能将 IF1或 IF2寄存器用于比较? 。 如果我能做到这一点、为什么 halcogen 会生成如下代码? 实际上对我来说没有意义。

此致、

古坎

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

    尊敬的 Furkan:

    [QUOTE USERID="585479" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1315972/tms570ls3137-dcan-module-message-box-assigments-depending-on-parity 能否将 IF1或 IF2寄存器用于计算? 。 如果我能做到这一点、为什么 halcogen 会生成如下代码? 实际上对我来说没有意义。

    是的、如果您需要、则只能使用 IF1或 IF2。

    HALCoGen 代码将按以下方式生成:所有奇数消息都将使用 IF1、所有偶数消息都将使用 IF2。 这只是为了加速初始化。

    我的意思是、如果您按顺序选择所有消息编号、例如、这里我选择的是前4条消息。

    我的初始化代码的生成方式如下:

    如果您验证上述代码、在使用任何 IF 寄存器之前、我们是通过轮询 BUSY 位来验证相应的 IF 寄存器集是否可自由使用。

    想象一下、如果您反复使用相同的 IF 寄存器、则需要一些时间才能在 IF 寄存器中传输控制数据到消息 RAM 中的消息对象位置。

    因此要加快初始化过程、它们仅对奇数使用 IF1、对偶数使用 IF2。

    请记住,只有当您仅按顺序选择留言号码时,此功能才起作用,但如果您再次只选择偶数或仅选择奇数留言号码,此过程会有点慢。

    例如、我选择了仅奇数:

    您可以看到我生成的代码:

    现在仅使用 IF1、因此我的建议是按顺序尝试选择消息编号。

    --
    谢谢。此致、
    Jagadish。

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

    你好、jagadish、

    非常感谢大家的关注、我在这里制定了策略。 在我看来、加快模块进度方面取得了有趣的进展。 关于该模块、我有最后一个问题。 我们计划使用所有消息框、因此在运行时将选择64个消息框。 我可以将0-32个消息框分配给 IF1寄存器、将其余消息框分配给 IF2寄存器吗? 如果我使用此方法、我是否可以加快该过程?

    此致、

    古坎

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

    尊敬的 Furkan:

    可否将0-32消息框分配给 IF1寄存器,其余消息框分配给 IF2寄存器? 如果使用此方法,是否可以加快进程?

    您要在这里执行的操作是使用 HALCoGen 无法实现的(因为正如我们讨论过的、HALCoGen 将生成代码、用于将所有奇数消息框用于 IF1、偶数消息框用于 IF2)、但如果您手动编写代码、则是可行的。

    此处您应该注意一件事、即即使您使用的是 IF1的前32个消息框、然后是 IF2的前32个消息框、但在执行点、您应该交替放置代码。 我的意思是

    使用 IF1的消息框1初始化

    消息框33使用 IF2进行初始化

    使用 IF1的消息框2初始化

    消息框-34 使用 IF2进行初始化

     使用 IF1进行消息框3初始化

    消息框-35使用 IF2进行初始化

    消息框32 使用 IF1进行初始化

    消息框- 使用 IF2进行64初始化

    因为、如果您采用这种执行流程、那么如果 CPU 将 数据分配给 IF2、那么在后台 CAN 模块将使用 IF1控制数据并将其移动到 RAM 中的相应消息对象、反之亦然。

    --
    谢谢。此致、
    Jagadish。

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

    你好、jagadish、

    我 了解了这个过程。 非常感谢您的讲解。 在开发过程中、我会考虑您的工作方式。  

    此致、

    古坎