我们正在使用PCLint来分析我们的Rhapsody生成的代码,并希望忽略框架代码中的错误,这些错误不是由我们编写的。
这意味着PCLint应该部分使用Rhapsody生成的注释来分析一些文件。例如,以下所有三个函数都位于同一个源文件中。
此功能完全自动生成,应忽略。
static void initStatechart(SomeClass* const me) {
me->rootState_subState = SomeClass_RiCNonState;
me->rootState_active = SomeClass_RiCNonState;
}
在此功能中,只有标有“我们的代码在这里”的部分由我们编写,并应由PCLint进行分析。
static void rootState_entDef(void * const void_me) {
SomeClass * const me = (SomeClass *)void_me;
{
me->rootState_subState = SomeClass_InitState;
me->rootState_active = SomeClass_InitState;
{
/*#[ state InitState.(Entry) */
..... Our code is here ....
/*#]*/
}
RiCReactive_schedTm(&(me->ric_reactive), 1000, SomeClass_Timeout_InitState_id);
}
}
此功能由我们完整编写,应进行分析。
/*## operation someFunction() */
static void someFunction(SomeClass* const me) {
/*#[ operation someFunction() */
.... This function is fully written by us ....
/*#]*/
}
有可能吗?也许使用一些疯狂的正则表达式的东西?
答案 0 :(得分:0)
您是否尝试过加载MISRA配置文件?然后,Rhapsody将至少生成PC-Lint用于忽略违反MISRA规则的语句。
沃尔特
答案 1 :(得分:-1)
您编写的代码很简单。您只需确保检查该文件。 可以通过抑制自动生成功能中的PC-Lint警告 -esym(#,sym)抑制符号sym的消息# -efunc(#,funcname)禁止从函数funcname中发出的消息# 在您的情况下,它将是-efunc(960,* :: initStatechart)来禁止项目中所有initStatechart函数的警告960。
困难的部分是混合代码。在那里你应该使用-save和-restore,如前所述。您需要找到正确的属性或在代码中插入命令。