近来使用AutoSAR架构的软件框架,使用的函数申明、变量申明、宏定义等,都使用该架构的规范。公认代码阅读神器Source Insight 却不能够支持该规范,这里将介绍如何修改Source Insight 的C.tom文件,使得兼容。
先来介绍以下AutoSAR的编码风格
函数申明或定义是这样的:
FUNC(void,AAA_CODE) Aaa_Init(void)
{
}
全局变量的申明是这样的:
LOCAL VAR(BOOLEAN,AAA_VAR) aaa_init_state = AAA_UNINITIALIZED;
一些变量指针,函数指针,静态变量指针:
EXTERN P2VAR(IF_AAA_INFO_PACKET,AAA_VAR,AAA_VAR) appbc_write;
EXTERN P2CONST(IF_XXX_INFO_PACKET,AAA_VAR,AAA_VAR) appbc_read;
以至于在我看的文件目录是这样的。。
一下子失去了SI原有的便利性。由于懒惰,我看这样的工程还维持了一段时间。
解决方法是修改在SI的安装目录中的C.tom文件。
在C.tom的末尾添加以下代码:
FUNC(rettype, memclass) rettype
P2VAR(ptrtype, memclass, ptrclass) ptrtype *
P2CONST(ptrtype, memclass, ptrclass) const ptrtype *
CONSTP2VAR(ptrtype, memclass, ptrclass) ptrtype * const
CONSTP2CONST(ptrtype, memclass, ptrclass) const ptrtype * const
P2FUNC(rettype, ptrclass, fctname) rettype (*fctname)
CONST(consttype, memclass) const consttype
VAR(vartype, memclass) vartype
Rebuild一下工程,[Project]-->[Rebuild Project]-->[Start];
或者重新打开工程,就成了。
PS:
如果出现部分文件没有显示成功,将文件移出工程后,再添加进来则可解决。