请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:HALCOGEN 尊敬的团队:
我使用 RM48L 系列微控制器、并启用了 MISRA C 规则、将其视为错误。 编译代码后、我在 Halcogen 生成的"errata_SSWF021_45.c"文件中遇到了错误。 请您提供有关如何解决此问题的指导
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.
尊敬的 Rohit:
该错误由以下原因导致:
如上面的线程中所述、如果逻辑运算符右侧的任何操作数(||或&&)具有易失性、那么我们将得到此 MISRA 错误。
您可以看到、我们将结构体声明为易失性:

这就是我们得到该误差的原因。 我们可以通过移除易失性电容器、 但在我看来、这不是一个好的选项、因为此处的易失性是为了防止编译器优化、如果我们每次使用易失性、我们都会访问这些寄存器、然后从存储器中读取 CPU、而不是使用 保存的值。 如果我们在此不使用 Volatile、则可能会面临其他一些问题。
因此、我的建议是最好忽略这些 MISRA 错误。
--
谢谢。此致、
Jagadish。