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.
工具与软件:
您好!
我一直在查阅技术参考手册、了解初始化后消息对象的重新配置。 第12.7.6节和第12.7.7节指定了在更改消息中某些值的配置之前必须复位 MsgVal 位。
我一直在使用下面由 HALCoGen 生成的代码来更新被配置为接收的报文对象的 ID。 根据手册、如果 MsgVal 位不被复位为无效、则不能更改接收对象的 ID 位、但是根据我对该函数的理解、该函数 在更改 ID 之前不会出现复位 MsgVal 位、但是该函数仍在正确地更新 ID。
我打算更新手册中列出的一些其他值、因为需要 MsgVal 复位、但 canUpdateID 函数让我对何时需要 MsgVal 复位以及复位的外观感到困惑。
void canUpdateID(canBASE_t *node, uint32 messageBox, uint32 msgBoxArbitVal) { /** - Wait until IF2 is ready for use */ while ((node->IF2STAT & 0x80U) ==0x80U) { } /* Wait */ /** - Configure IF2 for * - Message direction - Read * - Data Read * - Clears NewDat bit in the message object. */ node->IF2CMD = 0xA0U; /* Copy passed value into the arbitration register. */ node->IF2ARB &= 0x80000000U; node->IF2ARB |= (msgBoxArbitVal & 0x7FFFFFFFU); /** - Update message box number. */ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 <APPROVED> "LDRA Tool issue" */ node->IF2NO = (uint8) messageBox; /** - Wait until data are copied into IF2 */ while ((node->IF2STAT & 0x80U) ==0x80U) { } /* Wait */ }
请对这一问题作出任何澄清。
此致、
Garrett
您好!
我们有关此主题的专家现已离开办公室、下周早些时候他们回来时会给您回复。 很抱歉响应延迟。
此致、
Ralph Jacobi
大家好、Garrett:
我在最近的一个线程中发现"canUpdateID"函数中的一个错误:
(+) TMS570LS3137:canUpdateID 不能与中断一起使用-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
请参阅上方主题中的以下评论:
——
谢谢、此致、
Jagadish。
正确。 函数中存在该错误。 这个错误对我的配置没有任何明显的影响、所以它并不能真正回答我的问题。 也许我可以澄清我要做什么。
启动时、我将 在 TX 和 RX 配置中初始化多个消息框。 我想将其中一些消息框更改为对应的消息框、并调整中断配置。 我希望说明一下何时需要按照我之前引用的文档中的说明复位 MsgVal 位。 canUpdateID 函数在按照文档中所述更改 RX 消息框的 ID 之前、并未显式将 MsgVal 复位为无效、从而引起了我的混淆。 描述 MsgVal 复位的文档是否错误、或者硬件中是否发生了在软件中不可见的其他情况?
我找到了另一个回答来回答我的问题。
谢谢