我正在使用IAR EWARM 7.4
我遵循了这里的说明:http://www.safetycritical.info/library/static/pc-lint/ewb-pclint-v2.pdf
我使用--predef_macros编译器选项创建了一个充满编译器定义的头。
--predef_macros C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h在iar-co arm-v6.l中,我添加了以下内容:
//
// EWARM extended defines
//
-header(C:/lint/lnt/iar-ewarm-predefined_macros_for_PC-lint.h)它在文件中抱怨一吨米斯拉违规行为。
编辑:我试着添加了行
+libh(C:/lint/lnt/iar-ewarm-predefined_macros_for_PC-lint.h)这减少了许多米斯拉违规行为,但我还是得到了一些,例如:
#define __CODE_MEMORY_LIST1__() __CODE_MEM_HELPER1__(__code, 0)
^
"LINT: C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h (150, 9) Note 9026: Function-like macro, '__CODE_MEMORY_LIST1__', defined [MISRA 2012
Directive 4.9, advisory]"
#define __CODE_MEMORY_LIST2__(_P1) __CODE_MEM_HELPER2__(__code, 0, _P1)
^
"LINT: C:\lint\lnt\iar-ewarm-predefined_macros_for_PC-lint.h (151, 9) Note 9026: Function-like macro, '__CODE_MEMORY_LIST2__', defined [MISRA 2012
Directive 4.9, advisory]"发布于 2015-06-03 18:22:32
所有这些消息都是使用au-misra3.lnt文件中的+elib()参数显式打开的。这就是为什么在默认情况下没有启用它们的原因。
而且,当我使用-elib()来抑制它们时,它没有工作,因为当我包含au-misra3.lnt文件时,它们被重新启用了。
因此,答案是,包括au-misra3.lnt文件,然后手动取消我不想看到的关于库文件的所有消息,因为这比修改lint附带的文件更透明,或者为MISRA提供我自己的文件。
https://stackoverflow.com/questions/30494826
复制相似问题