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.
工具/软件:Code Composer Studio
大家好、
我有兴趣仅对我的代码执行静态代码分析(Misra 检查)、而不需要 TivaWare 中的任何其他文件。
像我以前所做的那样... 我只写:
#pragma diag_push
#pragma CHECK_MISRA ("无")
#include 此处需要的所有头文件
#pragma diag_pop
但这不起作用.. 当我尝试构建所选文件时、即使存在 Misra 违规、输出也没有警告。
还有其他需要提及的东西。 我只需将编译器选项中的定义更改为(--define=ccs=\"ccs\" ) 即可在启用 Misra 检查的情况下进行编译
(请参阅此处的相关主题:
此致、
斯里特
很遗憾、我无法重现问题。 对于此源文件...
[引用 user="sarea Hariri">当我尝试构建选定的文件时,即使存在 Misra 违规,输出也没有警告。 [/报价]
请按照文章 如何提交编译器测试用例中的说明提交测试用例。
谢谢、此致、
乔治
谢谢 George、
编译器版本: TI v16.9.6.LTS [TI v18.1.0.LTS]
以下是编译控制台输出:
****为项目 AutosarCanStack 构建配置调试****
"C:\\ti\\ccsv8\\utils\\bin\\gmake"-k -j 8 arch/arm-cortexM4/drivers/Can.obj -O
编译文件:"../arch/arm-cortexM4/drivers/Can.c
调用:ARM 编译器
"c:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.1.LTS/bin/armcl -mv7M4 -code_state=16 --float_support=FPv4SPD16 -me --include_path="C:/Users/visitor/Documents/CODECOMPOSER /arch/arm-cortexM4/drivers/Can.c 8/autosarCanstack"--include_path="C:/ti/TivaWare_C_Series-2.1.4.178 --include_path="C:/ti/ccsv8/tools/compiler/ti-cgt-arm_18.1.1.LTS/include --define_TM4C123_autosrackage="-exccs_refrom-code.g_code.g_exccs_code.com/support/mccs_codest-codest-m="-codest_ab_ab_codest-m="-codest_ab_ab_codest-code.com/support/mccs_ab_codest-codest-codest_ab_ab_ab-m="-codest-codest-m="-codest-mag_ab_ab_ab_ab_ab-mag_inate-com/support/m="-codest-mag_
已完成构建:"./arch/arm-cortexM4/drivers/Can.c
****构建完成****
下面是测试用例文件:
此致、
斯里特
感谢您提交测试案例。 我可以重现问题。 我在 SDOWP 系统中提交了 CodeGen-4912以解决该问题。 欢迎您在我的签名中使用下面的 SDOWP 链接进行访问。
问题出在标准 RTS 头文件 stddef.h 中 缺少#pragma diag_pop。 在文件的末尾,您可以看到以下行...
#pragma diag_push #pragma CHECK_MISRA ("-19.10")/*需要作为宏参数的类型*/ #ifdef __TI_LLVM__ # define offsetof (_type、_ident)__builtin_offsetof (_type、_def) #else # ifn_dTMS320C55x_ # 定义 offsetof (_type、_ident)\ (((size_t)_intaddr_(&(((_type *) 0)->_ident)) )# else /*_TMS320C55x_*/ # define offsetof (_type、_ident)\ (__intaddr__((((char *)&((_type *) 0)->_ident)-((char *) 0))) )# endif /*__TMS320C55x_*/ #endif
这些行开头的#pragma diag_push 没有相应的#pragma diag_pop。 作为一种权变措施、在这些行后面添加一个。
对于此错误、我深表歉意。
谢谢、此致、
乔治