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.

[参考译文] CC1312R7:在 CCS 20.02 中、如何设置库特定的编译选项(对于 Simplelink)

Guru**** 2782555 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1587307/cc1312r7-in-ccs-20-02-how-to-set-library-specific-compile-options-for-simplelink

器件型号: CC1312R7
主题: SysConfig 中讨论的其他器件

大家好、我们使用的是 Simplelink SDK 8.30.1-01。 我们想在自己代码的编译器选项中添加-Wextra、但使用此选项时、simplelink 文件的编译失败、例如

simplelink_cc13xx_cc26xx_sdk_8_30_01_01/kernel/tirtos7/packages/ti/DPL/EventP_tirtos.c

不同符号的整数比较:“uint32_t “(又名“unsigned int“)和“int"[-Werror“[-Werror、-Wsign-compare]“

是否有办法为 SDK 设置不同的编译选项? 它以前在 CCS 12.7 中是可以实现的。

Matthias、BR

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

    您好、Matthias、  

    我已经尝试通过该 SDK 版本构建一个工程、该 SDK 版本包含 EventP、在 CCS 20 上使用 Wextra 参数、并使用正确的警告按需构建:

    [143]In file included from syscfg/ti_sysbios_config.c:115:
    [144]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/kernel/tirtos7/packages\ti/dpl/EventP_tirtos.c:98:17: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
    [145]    if (timeout == EventP_WAIT_FOREVER)
    [146]        ~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~
    [147]In file included from syscfg/ti_sysbios_config.c:117:
    [148]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/kernel/tirtos7/packages\ti/dpl/MutexP_tirtos.c:49:70: warning: unused parameter 'params' [-Wunused-parameter]
    [149]MutexP_Handle MutexP_construct(MutexP_Struct *handle, MutexP_Params *params)

    这可能是因为您使用的工程包含-Werror 吗? 顺便说一下,我在下面的页面中添加了 Wextra 参数:



    此致、

    Arthur

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

    是的、我们正在使用-Werror、因此工程由于这些警告而没有编译。

    Matthias、BR

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

    我知道您想做什么、如果可能、我将咨询 CCS 团队。 如果没有,也许我们应该有这样的选择。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有办法为 SDK 设置不同的编译选项? 它过去在 CCS 12.7 中是可以实现的。

    我不确定您的项目是如何设置的。 但可以通过多种方法设置构建选项。

    一个是在项目一级。 它将应用于该工程的所有文件部分。 请注意、工程编译器选项将仅适用于属于工程一部分的源文件、而不适用于链接进来的库的文件部分。 这些文件已经被预编译了。 当然、工程链接器选项也适用于库。

    然后还有特定于文件/文件夹的选项。 这些是在文件/文件夹级别设置的选项。 这些选项将覆盖项目级别的选项。 它用于使某些特定文件/文件夹具有与工程其余部分不同的选项。 一个常见的例子是优化级别。

    希望这有所帮助

    Ki

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

    我正在全球范围内设置-Wextra、因为我希望它在我们所有的项目代码中都处于活动状态。 但是、似乎 Simplelink SDK 的一部分也由 CCS 编译、使用了我的设置、并且由于-Wextra -Werror 设置而无法编译。 我在工程中未看到更改其设置的 Simplelink 文件、如何实现此目的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在工程中看不到用于更改其设置的 Simplelink 文件、我如何实现此目的?

    这些确切的文件是什么? 是生成的 SysConfig 文件吗?

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

    这种情况在我们使用 SDK 头的大多数地方发生:

    [24]“C:/ti/ti-cgt-armllvm_3.2.3.LTS/bin/tiarmclang.exe /repos/git/icdm2/source/firmware/Debug/syscfg -c @“git_Rev.txt"-mcpu=cortex-m4“-mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mlittle-endian -mthumb -oz -i“C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/kernel/tirtos7/packages @ /driverlib/serial.cpp -i“C:/repos/git/icdm2/source/firmware/Debug /ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source/ti/posix/ticlang -i“C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source -i“C:/repos/git/icdm2/source/firmware -ifpu=fpv4-sp-d

    [138]包含在/driverlib/serial.cpp:17 的文件中:
    [139]包含在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/drivers/gpio.h:268 中:
    [140]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/drivers/GPIO/GPIOCC26XX.h:60 中包含的文件:
    [141]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/devices/cc13x2_cc26x2/driverlib/IoC.h:66 中:
    [142]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/devices/cc13x2_cc26x2/driverlib/interrupt.h 中:66:
    [143]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source \ti\devices/cc13x2_cc26x2/driverlib/cpu.h:355:24:错误:未使用的参数'ui32NewBasepri'[-Werror、-Wunused-parameter]
    [144]CPUbasepriSet (uint32_t ui32NewBasepri)
    [145]             ^μ s
    [146]1 错误已生成。

    生成的文件中有许多错误。 我已经尝试将这些编译选项的编译选项设置为-wno-unused-parameter、但编译工具似乎会忽略该设置:


    [8]调用:ARM 编译器
    [9]“C:/ti/ti-cgt-armllvm_3.2.3.LTS/bin/tiarmclang.exe /ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source /repos/git/icdm2/source/firmware/Debug/syscfg -c @“git_Rev.txt"-mcpu=cortex-m4“-mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mlittle-endian -mthumb -i“C:/repos/git/icdm2/source/firmware /ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/kernel/tirtos7/packages -i“C:/repos/git/icdm2/source/firmware/Debug /ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source/ti/posix/ticlang -i“C @  


    [31]在 syscfg/ti_drivers_config.c:25 中包含的文件中:
    [32]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source \ti\drivers/aescbc/AESCBCCC26XX.h 中的文件中:81:
    [33]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/devices/cc13x2_cc26x2/driverlib/AES.h 中:68
    [34]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/devices/cc13x2_cc26x2/driverlib/interrupt.h 中:66:
    [35]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source \ti\devices/cc13x2_cc26x2/driverlib/cpu.h:355:24:错误:未使用的参数'ui32NewBasepri'[-Werror、-Wunused-parameter]
    [36]CPUbasepriSet (uint32_t ui32NewBasepri)
    [37]             ^μ s
    [38]在 syscfg/ti_drivers_config.c:86 中包含的文件:
    [39]在 C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source ti/drivers/dma/UDMACC26XX.h:115 中包含的文件:
    [40]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source \ti\devices/cc13x2_cc26x2/driverlib/UDMA.h:935:26:错误:未使用的参数'ui32Base'[-Werror、-Wunused-parameter]
    [41]uDMAIntRegister (uint32_t ui32Base、uint32_t ui32IntChannel、
    [42]              ^μ s
    [43]C:/ti/simplelink_cc13xx_cc26xx_sdk_8_30_01_01/source \ti\devices/cc13x2_cc26x2/driverlib/UDMA.h:971:28:错误:未使用的参数'ui32Base'[-Werror、-Wunused-parameter]
    [44]uDMAIntUnregister (uint32_t ui32Base、uint32_t ui32IntChannel)
    [45]               ^μ s
    [46]3 错误已生成。
    [47]gmake[1]:***[subdir_rules.mk:29:SYSCFG/ti_drivers_config.o]错误 1.

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

    您好、Matthias、

    我似乎已经在 CCS 中找到了一种方法、按文件/文件夹、如 KI 所述:

    • 右键单击要在其上应用标记的文件/文件夹


    • 应用要启用的选项:
    • 您现在应该看到它现在会根据警告构建与否、但即使它们是导入的、也不会考虑 SDK 文件。

    但是、由于方法被声明为内联、因此 cpu.h 仍然存在问题。 对于该参数、您可以选择忽略-Wunused-parameter、但它可能会破坏您尝试实现的目标:


    如果这对您有用、请告诉我。

    此致、

    Arthur

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

    再次尊敬的马蒂亚斯:

    我发现我们也可以禁用函数内联:  

    非常有用的工具。

    此致、

    Arthur