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/LAUNCHXL-F28377S:严格 ANSI 模式和宽松 ANSI 模式

Guru**** 2573395 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/820974/ccs-launchxl-f28377s-strict-ansi-mode-and-relaxed-ansi-mode

器件型号:LAUNCHXL-F28377S

工具/软件:Code Composer Studio

TI CCS 支持:

在我的程序中、有许多此类错误:

#148声明与"void CLA_initCpu1Cla1 (void)"(在第188行声明)     CLA_test.c /CLA_Test 行1045      C/C++问题不兼容

#148声明与"void CLA_RunTest (void)"(在第186行声明)      CLA_test.c /CLA_Test 行1056      C/C++问题不兼容

#148声明与"void ConfigureADC (void)"(在第63行声明)      test_empty_bitfield_driverlib_main.c  /empty_bitfield_driverlib_project line 1589 C/C++ problem 不兼容

#148声明与"void SetupADCContinuity (UINT16)"(在第64行声明)      test_empty_bitfield_driverlib_main.c  /empty_bitfield_driverlib_project line 1594 C/C++ problem 不兼容

#148声明与"volatile struct adc_regs AdcaRegs"(在第1043行声明)不兼容

我想我的环境是在严格 ANSI 模式下、我将更改为宽松 ANSI 模式。  SPRU514P 2.7.2 中介绍了如何使用诊断抑制选项、6.13.2介绍了严格 ANSI 模式和宽松 ANSI 模式(-strict_ansi 和-relaxed_ansi)、但在阅读这些内容后、我仍然无法实现。 您可以帮助我更改为宽松 ANSI 模式并使用抑制选项吗?

此致、

京泰

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

    京泰

    [报价用户="Jingtai"]您能不能帮助我更改为宽松 ANSI 模式并使用抑制选项?

    在《编译器用户指南》第2.7节中、它说明了以下内容:

    您可以使用--display_error_number 命令行选项请求将诊断的数字标识符包含在诊断消息中。 显示时、诊断标识符还指示诊断是否可以在命令行上覆盖其严重性。 如果可以覆盖严重性、诊断标识符包括后缀-D (酌情处理);否则不存在后缀。

    错误#148没有-D (任意)后缀、因此无法抑制。  

    错误似乎是 C 编码问题。  编译工程时使用-verbose_diagnostics 编译器选项、并查看 CCS 编译控制台以了解更多详细信息。 此外、如果您根据 C2000Ware 示例开发程序、则可以与示例代码进行比较、以帮助确定导致错误的原因。

    希望这对您有所帮助。

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

    你好! AaetiG、

    感谢您的支持。 现在我已经了解 了 SPRU514P 中的描述。

    我的所有编程都来自 C2000Ware 示例,包括 ADC_SoC_Continuous、F2837xS_SYSCTRL.c、... 但它不能很好地工作。  

    e2e.ti.com/.../adc_5F00_test.rar

    我无法找出错误的原因。

    此致、

    京泰

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

    京泰

    除了在原始帖子中注明的错误外、您的工程还会出现其他几个编译错误。 有些是由于编码错误造成的、另一些是由于缺少提供定义的文件等  

    例如、这是我注意到的第一个问题。 您的源文件具有以下内容:

    void main (void)

    //
    //步骤1. 初始化系统控制:
    // PLL、安全装置、启用外设时钟
    //此示例函数位于 F2837xS_SYSCTRL.c 文件中。
    //
    // InitSysCtrl -系统资源的初始化。
    //
    空 InitSysCtrl (空)

    //
    //禁用看门狗
    //
    DisableDog ();

    函数 InitSysCtrl 的定义出现在 main()中,这是不正确的编码。

    此外、您似乎混合了驱动程序库和位字段结构类型。 但是、如果您不熟悉开发、可以执行此操作。我建议您先坚持一种方法、确保程序与之配合使用、然后再继续混合。  

    我强烈建议从 C2000Ware 示例之一(位字段或 driverlib)开始、然后在此基础上进行构建、而不是从头开始创建新工程并向其中添加文件。 如果使用位字段方法、使用外设通常需要将包含该外设定义的源文件添加到工程中。

    示例项目已经为您安排了基础工作-例如适当的头文件、库等  另外、请参阅器件目录内的用户指南(例如:C:\ti\C2000Ware_1_00_06_00_Software\device_support\f2837xs\docs)、以帮助完成开发过程。

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

    你好! Aartis、

    感谢您的支持。

    我遵循 了 F2837xS 固件开发包用户指南、但我不知道编程会更容易、从而添加位字段或 driverlib 支持。 我从 device_support 示例中导入了 ADC_SoC_continuity、但添加了 bitfield 和 driverlib 支持、这使我的编程变得困难。

    现在、我从 device_support 示例中导入了 ADC_SoC_continuity、但我无法识别它是位域或 driverlib 支持还是组合支持。 如何处理支持目录? 例如 、如果我更喜欢位字段 支持、那么 driverlib\f2837xs\driverlib; 如果我只选择 driverlib 支持、则 device_support\f2837xs\headers\include?

    在中  

    符号管理选项在 C2000链接器高级选项下没有 CODE_START。 我是否应该填写?

    此致、

    京泰

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

    你好! Aartis、

    如果我从 driverlib 示例中导入 adc_ex1_soc_software、则存在包含选项和文件搜索路径。 我是否应保留它们、不添加任何链接器?

    它只是 driverlib 支持吗?

    此致、

    京泰

     

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

    [报价用户="Jingta"]现在我从 device_support 示例中导入了 ADC_SoC_continuity、但我无法识别它是位域或 driverlib 支持或组合。

    在 Resource Explorer 中、示例以 Bitfield 或 Driverlib 的形式分隔、因此您可以选择从每个目录中的一个示例开始、以了解每个示例是如何设置的。

    [引用用户="Jingtai">如果我从 driverlib 示例中导入 ADC_ex1_SoC_software、则存在包含选项和文件搜索路径。 我是否应保留它们、不添加任何链接器?

    是的、对于基于 driverlib 的代码、您可以保留这些编译器包含路径和链接器搜索路径。 在大多数情况下、它们只是链接 driverlib.lib 库、其中包含针对外设设置和初始化的大多数函数定义。  

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

    你好! Aartis、

    感谢您的支持。

    我已经比较了资源 expolorer 的 bitfield 目录和 device_support 离线或 Resource Explorer 的 diverslib 和 driverlib 离线的示例属性。 它们是相同的。

    此致、

    京泰