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.

[参考译文] RM48L952:SafeTI:确认/清除寄存器位中的多个错误(操作符'|='应在'='时使用)???

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/600739/rm48l952-safeti-multiple-bugs-in-register-bit-acknowledging-clearing-operator-used-when-should-be-used

器件型号:RM48L952

您好!

例如,此行也会清除 DERR 和其它内容
bit_set (sl_tcram1REG->RAMERRSTATUS、TCRAM_RAMERRSTATUS_ADDR_SERR);//为后续操作清除*

这些位也会清除可能的 SERR 和其它位(如果单个位错误同时发生、则它的详细信息会丢失)、经测试、在 DERR 测试中、SERR 位通常不会被激活、所以它确实隐藏了它们)
/*无论如何清除双位错误*/
sl_tcram1REG->RAMERRSTATUS |= TCRAM_RAMERRSTATUS_DER;
sl_tcram2REG->RAMERRSTATUS |= TCRAM_RAMERRSTATUS_DER;


示例演示应用程序在中止处理程序中包含相同的错误
/*无论如何清除双位错误*/
sl_tcram1REG->RAMERRSTATUS |= TCRAM_RAMERRSTATUS_DER;
sl_tcram2REG->RAMERRSTATUS |= TCRAM_RAMERRSTATUS_DER;


bit_set 的定义
/*SAFETYMCUSW 340 S MR:19.7 "原因- 这是 MISRA 的建议。我们接受这作为编码约定*/
#define bit_set (y、mask)       ((y)|=(mask))

为什么即使 bit_set 也不能一致使用? 上述功能与 bit_set 完全相同、但没有 bit_set、则是错误的... 您是否还会查看代码语法、它即使在一个函数内也是一致的?

寄存器也有类似的正确用法、如果您已经查看了语法、则错误很可能是被捕捉的。。。
sl_tcram2REG->RAMERRSTATUS = TCRAM_RAMERRSTAT_WADDRPAR_FAIL;


由于一个寄存器有如此多的问题、我怀疑这是唯一的问题、因此最可能的类似问题存在于其他地方(至少示例演示应用程序在异常处理程序和 ESM_CALLACK 中有很多、 几乎所有 ESM 通道确认都有|=运算符 ETC,可屏蔽所有可能的 ESM 错误。)...

您是否在 SafeTI 库产品的网页中提供了活动和最新的错误列表? 我在我的电子邮件中收到了一个错误、因为它看起来像是"几乎每周"发现了错误、所以我怀疑收到的错误是否有效...


还有一些其他的小问题、例如记录的退出 CPU 模式、例如函数 sl_SelfTest_Status_EFuse ()和 sl_SelfTest_CCMR4F ()、声称为 SVC、但实际上与 entry 相同...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    sl_ESM.c 中的 DCC ESM 通道有相似的错误、这两个错误也会清除可能的、等待"很久以前执行的单次触发"信息
    sl_dccREG1->STAT |= DCC_DCCSTAT_ERR_FLG;
    sl_dccREG2->STAT |= DCC_DCCSTAT_ERR_FLG;

    由于在完全独立的位置发现相同的问题、我假设还有其他位置也存在相同的错误...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jarkko、

    感谢您发帖。
    我正在研究这个问题、明天会回来。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想引用的明天是昨天吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jarkko、

    我理解您的沮丧。 很抱歉耽误你的时间、我要跟开发人员确认几件事。
    我已在 SafeTI 诊断库缺陷跟踪系统(清除搜索工具)中提出错误 SDOCM00122931。
    我还请求对使用的每个实例 bit_set 进行详细分析。