主题中讨论的其他器件:HALCOGEN
工具与软件:
您好!
我一直在查阅技术参考手册、了解初始化后消息对象的重新配置。 第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