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.

[参考译文] CCS/TM4C123GH6PM:Misra 检查

Guru**** 1963925 points
Other Parts Discussed in Thread: CODECOMPOSER
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/700799/ccs-tm4c123gh6pm-misra-checking

器件型号:TM4C123GH6PM
主题中讨论的其他器件: CODECOMPOSER

工具/软件: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

    ****构建完成****

    下面是测试用例文件:

    e2e.ti.com/.../Can.pp.txt

    此致、  

    斯里特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您提交测试案例。  我可以重现问题。  我在 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。  作为一种权变措施、在这些行后面添加一个。

    对于此错误、我深表歉意。

    谢谢、此致、

    乔治

x 出现错误。请重试或与管理员联系。