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.

[参考译文] CC1311R3:符号'NULL'无法解析且其他 CCS 链接器 FU***未初始化

Guru**** 2343770 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/1490294/cc1311r3-symbol-null-could-not-be-resolved-and-other-ccs-linker-fu-ups

部件号:CC1311R3
主题:SysConfig 中讨论的其他器件

工具/软件:

大家好:  

我在 CCS 编译器/链接器/索引器或任何情况下都有问题。  

基本上是在随机时间点、CCS 工程决定不再工作、我会收到错误信息:

无法解析符号"NULL"

是的、这种情况发生在以前正常工作的项目中、有一天我会收到所有类型的链接器错误。 它与 NULL 不被识别,然后每当我打开另一个文件所有类型的#defines 等不被识别,有时它"解决自己"有时我必须从头开始设置整个项目... 是的、这仅发生在"打开的"文件上。 对于我在 CCS 中打开的文件、只会抛出"NULL "错误、一旦找到其中一个错误、就不会消失。  

我刚刚完成了 CCS 的全新安装(12.8.1) 以及 SimpleLink SDK 8.30.1-01、SysConfig 1.21和编译器 GCC 9.2.1 LFS 等。  

最大 Grretings

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

    您好、Max、

    请您为我确认:

    • 您 执行了 CCS 的全新安装(12.8.1) 以及 SimpleLink SDK 8.30.1-01、SysConfig 1.21和编译器 GCC 9.2.1 LFS。
    • 从该 SDK 导入示例工程
    • 遇到链接器错误  

    您可以 右键点击工程名称->选择"Properties"->"General"->"Products" 、然后双击 SDK 版本。 接下来、请点击"Preferences"、如下所示:

    接下来、应打开以下窗口:



    请检查是否仅添加了 SDK、CCS、编译器和 SysConfig 的正确安装目录的路径。 然后单击下面的"刷新"并检查预期显示的版本。
    接下来、您需要应用这些更改。

    如果您安装了多个 SDK 版本、请使用第一个窗口 、根据工程的导入位置在这些版本之间进行切换。

    这样、我们可以确保编译器使用从 SDK 链接的正确库文件。

    如果设置正确、请告知我。

    此致、
    Theo  

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

    您好、Max、

    您能解决这些问题吗?

    此致、
    Theo

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

    尊敬的 Theo:  

    "对不起,我不知道该怎么办。"  

    令人遗憾的是、问题仍然存在。

    1.是的、我全新安装了 CCS 12.8.1和 SDK 等版本、如屏幕截图所示。  

    2.从 Resource Explorer 导入的"清理"工程中没有收到链接器错误(顺便说一句、这在12.6到12.8之间变得极其不稳定、导致 CCS 崩溃的几率为50/50)。 到目前为止一切顺利。  

    3、我们以"空"工程示例作为 工程的起点、更新 SysConfig、将 main_tirtos.c 替换为自己的、放入 src 文件夹并链接到我们自己的公司"lib"源文件。   

    4.这是事情得到的... 奇怪。 工程编译没有问题。但如果我打开、例如"lib"文件夹中的驱动程序文件或 SysConfig 自动生成的文件之一(如 ti_drivers_config.c)、会收到加载的"Symbol cannot be resolved"错误。  

    事情是,按照符号"F3"仍然有效,一切都是明确定义! 如果我只关闭文件(WTF???)、问题就会消失 我看不到的东西不会伤害我??) 并在执行清理/重新编译工程之前、从"Problems"选项卡中手动删除错误、然后一切都正常再次运行。 此外、如果您再次点击一些位、例如在自动生成的文件中、包括 stdint.h 不是问题、但不能包含 stddef.h (应定义 NULL、bool、TRUE 和 FALSE 等内容)!  

    我们有几个工程、它们的行为都相同、它们以前在 CCS 12.6和 SDK 7.10/7.40下运行正常。 然后我们更新为12.8和8.30、现在收到了这些链接器错误。  

    你好

    最大值

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

    您好、Max、

    很遗憾听到这个消息、我将尽力帮助您解决这个问题。
    请在下面查看我的评论。


    1.是的、我全新安装了 CCS 12.8.1和 SDK 等版本、如屏幕截图所示。  
    非常感谢。 这看起来一切都很好、它可以找到所需的工具版本。

    2.从 Resource Explorer 导入的"清理"工程中没有收到链接器错误(顺便说一句、这在12.6到12.8之间变得极其不稳定、导致 CCS 崩溃的几率为50/50)。 到目前为止一切顺利。  
    您是指 Clean Projects 是任何示例工程还是仅指空工程?
    您能解释一下通过导入工程使 CCS 崩溃是什么意思吗? 您能给我一些重现此问题的步骤吗? 很遗憾、我从未体验过。

    3、我们以"空"工程示例作为 工程的起点、更新 SysConfig、将 main_tirtos.c 替换为自己的、放入 src 文件夹并链接到我们自己的公司"lib"源文件。
    4.这是事情得到的... 奇怪。 工程编译没有问题。但如果我打开、例如"lib"文件夹中的驱动程序文件或 SysConfig 自动生成的文件之一(如 ti_drivers_config.c)、会收到加载的"Symbol cannot be resolved"错误。  

    感谢您提供详细信息。

    • 您可以检查一下当右键点击工程名称-> Properties -> Arm Linker -> File Search Path (如果缺少任何内容)吗?
    • 您是否还可以检查原始项目主项与主项是否缺少包含?

    如果您没有看到明显的源文件夹丢失、请帮助我测试以下内容:
    1.将要从 SDK 中使用的空工程导入新的工作区。 根据需要更改 SysConfig 并进行编译。 如果没有编译错误、右键点击工程名称-> Export -> General (Archive File)->选中 Resolve and export linked resources 复选框、然后将工程保存为 zip。
    2.打开一个新的工作区并使用"Project -> Import CCS Project"->"Using option Select archive file"导入压缩的空工程。
    3、尝试添加 main 和 source、查看链接器是否再次发生错误。

    当您将该工程作为 zip 以及解析的资源使用时、它会在本地复制所有库、这有助于我们了解工程中是否缺少 include、当链接器指向整个 SDK 时会自动进行校正。 在此测试中、它只能访问导出的库文件。

    此致、
    Theo

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

    尊敬的 Theo:  

    感谢您的快速答复、非常感谢。  

    2.从 Resource Explorer 导入的"清理"工程中没有收到链接器错误(顺便说一句、这在12.6到12.8之间变得极其不稳定、导致 CCS 崩溃的几率为50/50)。 到目前为止一切顺利。  
    您是指 Clean Projects 是任何示例工程还是仅指空工程?
    您能解释一下通过导入工程使 CCS 崩溃是什么意思吗? 您能给我一些重现此问题的步骤吗? 很遗憾、我从未体验过。

    抱歉、解释不正确。 Rückmeldung 导入效果非常好、在 CCS 中打开 Resource Explorer 或在 Resource Explorer 中导航会导致 CCS 无响应(德语中为"Keine n ü ")、然后我看到旋转的蓝色鼠标光标。 然后、CCS 关闭或尝试向 Microsoft 发送崩溃报告。 我没有更多的步骤要重现、这有点随机、从打开资源管理器、导航目录树、或者只是调整目录树显示元素的大小、都是如此。   

    "清理"工程是指 Resource Explorer 中的任何未修改的工程、即 TI 提供的工程。 我通常使用"空"示例进行测试、但我想我也尝试了其中一个射频示例。 它已经无法解决 stddef.h 和 stdbool.h 包含的问题、但在编译时似乎不会出现问题、只有在尝试使用 F3打开声明时才会出现。   

    我将尝试您明天建议的所有步骤、并返回结果。  

    您好、  

    最大值

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

    您好、Max、

    2. 我认为您在使用 Resource Explorer 时遇到的问题是由与服务器的连接限制引起的。 资源管理器未在本地运行。

    关于这个主题、我最好的建议是改用选项"Project -> Import CCS Projects..." 直接从本地安装的 SDK 导入工程。  在同一器件上使用多个 SDK 时、这也简化了依赖项管理。

    关于一般问题、似乎只是 IDE 扫描工程并按照指示操作时出现的问题、因为链接器似乎最终找到了所需的所有内容。
    您还可以尝试打开显示错误的文件并使用 F5强制项目刷新。

    此致、
    Theo

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

    尊敬的 Theo:  

    因此、我想我已经能够解决问题、但仍然不知道是什么原因造成的。  

    基本上我做的两个不同的 tings 是:  

    1.使用"导入..." 而不是"从文件系统打开项目"。  

    2.在项目中创建文件夹并通过项目链接到各个文件->右键单击->"添加文件..." 函数而不是链接到整个文件夹(用于驱动程序等外部文件)

    如果我转到"Project"->"右 键点击"->"Index"->"Search for unresolved include"、我仍然收到很多找不到的文件:stddef.h、stdbool.h 以及任何看起来像这样的文件  

    #include DeviceFamily_constructPath (startup_files/ccfg.c)

    TI 示例工程也都存在此问题、但似乎仍然有效。  

    如果我按 F3而不是 NULL 或 bool、我仍然会得到结果   、但编译器似乎没有问题、并且在编译过程中没有收到错误消息。  

    至于 Resource Explorer 导致 CCS 崩溃、这有点烦人、但不是我的主要问题(尤其是因为我希望现在可以运行当前的工程、所以不必设置新工程)。 我只是觉得您的 QA 可能会感兴趣。  

    感谢你的帮助。  

    你好

    最大值