主题中讨论的其他器件: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
