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.

[参考译文] 编译器:带有TI-RTOS的CHECK_MISRA

Guru**** 2535750 points
Other Parts Discussed in Thread: CC1350

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/565865/compiler-check_misra-with-ti-rtos

主题:CC1350中讨论的其它部件

工具/软件:TI C/C++编译器

您好,

版本信息

CCS版本:6.2 .0.0.005万
编译器版本:TI ARM v.LTS.1LTs. 16.9
XDCTools版本:3.32 .1.22
用于CC13xx和CC26xx的TI-RTOS版本:2.21 .0.06

背景

我正在尝试对基于TI-RTOS的项目使用MISRA-C:2004规则检查。 我的主要兴趣是确保应用程序代码通过检查,而不是任何TI-RTOS代码。 目前,我正在尝试使用'#pragma check_MISRA("none")'和'#pragma reset_MISRA("all")'完成此操作,包括所有TI-RTOS文件。 目前,似乎无法识别此#pragma。

采取的步骤

  • 创建了新的CC1350LaunchPad TI-RTOS项目
    • 文件->新建-> CCS项目->目标:CC1350F128,名称:Misra,项目模板和示例-> TI-RTOS示例-> CC1350 LaunchPad ->驱动程序示例->空示例->空项目->完成
  • 启用所有MISRA-C:2004检查
    • Project properties (项目属性)-> Build (构建)-> ARM Compiler (ARM编译器)-> Advanced Options (高级选项)-> MISRA-C:2004 ->'All'(全部)
  • 修改empty.c以检查'none' MISRA-C:2004
  • 第1行:


#pragma check_MISRA ("无") 

问题

是否仍然可以在TI-RTOS项目中使用MISRA pragma,或者是否有其他方法在应用程序代码之外“排除”MISRA检查?

感谢您的帮助或见解!

此致,

标记-

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该版本的TI ARM编译器接受pragma check_MISRA和pragma reset_MISRA。 是什么导致您认为编译器不接受其中一个? 是否收到错误消息? 你是否收到了你没想到的MISRA警告? 您能否发布一个完整的测试案例来演示问题? 不要忘记显示编译器的完整命令行选项。 您可以最轻松地从生成控制台窗口获取选项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    考古学家,您好!

    我认为这更多是我对pragma /构建过程如何与MISRA检查一起工作的误解。 我的初始解释是check_MISRA ("none")也适用于同一文件中的#include(d)文件,但我承认没有充分的理由做出这一假设。 结果表明需要在每个不同的文件中排除MISRA检查,而不是将其应用于任何包含的文件。

    完成上面所示的步骤后,右键单击empty.c和'生成所选文件...'会导致3146个警告(大多数都是与MISRA-C相关的),而这些警告都不是我最初预期的。  我的期望是只建立一个顶部带有#CHECK_MISRA ("NONE")的文件,即会有0个警告。

    是否有办法从包含的文件中删除这些MISRA警告,并且只为'my'应用程序代码显示这些警告?

    下面提供了空.c的生成控制台的前几行。

    ****为项目empty_Misra_test构建配置调试****
    
    "C:\\ti62\\ccsv6\\utils\\bin\\gmake "-k empty.obj
    
    '构建文件:./empty.cfg'
    
    调用:xdctools'
    
    :C:ti.platforms.simplelink:CC1350F128 16.9 16.9 2.2 /ti62/xdctools_3_32_01_22_core/try_26xx_cc2_crx_cc2_crx_cc2_crx_cc2_cc2_cc2_crx_cc2_cc2_ccxx_cc2_cc_cc2_ccx_ccd_content_ccxx_cc2_crx_cc2_crxx_cc2_ccx_cc2_ccx_cc2_ccx_cc2_ccx_ccx_cc_cc_cc2_ccx_cc_cc_cc_cc_ccx_ccx_cc_cc_cc_ccx_cc2_cc2_ccx_cc2_ccx_cc_cc2_ccx_ccx_cc_cc_cc_cc_cc_cc_cc_cc_cc2_cc2_ccx_cc_ccx_cc_cc_cc2_ccx_ccx_cc
    

    此致,

    标记-

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

    我对拖延表示歉意。

    Mark Swanson 说:
    是否有方法从包含的文件中删除这些MISRA警告,并且只显示'MI'应用程序代码?[/QUOT]

    不幸的是,目前没有办法做到这一点。  因此,提交了TIRTOS-908条目 以解决此问题。  我目前无法确切说明这一问题将如何处理,或何时处理。

    谢谢,此致,

    -George

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

    此致,

    标记-