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.

[参考译文] TMDSCNCD28379D:不包括从其他 CPU 构建文件

Guru**** 2410720 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1542529/tmdscncd28379d-excluding-files-from-being-build-from-other-cpu

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

工具/软件:

您好、

在我的项目中、我同时使用 CPU、另外还有两个 CPU 之间共享的文件。

为了不必维护一个文件的两个副本、我将文件夹中的文件相互链接、而不是复制它们。

为了使其正常工作、我必须在另一个 CPU 的 Build Include 选项中包含 CPU 源文件的文件夹。 如下所示:

因此、两个 CPU 的构建选项中都包含“DCDC_CPU1/Headers"和“和“dcdcdc/Headers"。“。

   

但是、CPU1 中有一些文件依赖于 CPU1 上生成的源(由 SysConfig 自动生成的头文件)。 因此、编译 CPU2 时、我收到某些标识符未定义(在 CPU1 上定义、CPU2 不可见)的错误。 链接文件示例、请注意 Generated Source 文件夹 :

如果我也在 CPU2 中包含包含 CPU1 自动生成文件的文件夹、CPU2 SysConfig 自动生成的文件将被屏蔽、这将导致其他问题。

处理这种情况的正确方法是什么? 我尝试将 CPU2 中链接/引用的文件重命名为不同的文件。 例如、将 CPU1 的“board.h"链接“链接文件重命名为“cpu1_board.h",“,以便、以便解决上述问题。 即使这种重命名不会破坏两个文件之间的链接、编译器也无法查看/找到新文件、即“cpu1_board.h"</s>“

此问题的解决方案是否优于每个 CPU 上每个文件的两个副本(在构建选项中不共享相同的文件夹位置)?

谢谢你

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

    您好、

    通常、我们会为每个 CPU 创建单独的项目、因为它们具有不同的链接器命令文件、不同的预定义符号和可能发生冲突的初始设置。  但是、您可以通过使用两种不同的编译配置(右键点击工程>编译配置)将所有这些内容保存在一个工程中。 您可以为每个 CPU 内核创建两个编译配置、并排除/包含必要的文件。

    此致、

    马特

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

    您好、

    这里可能存在一些沟通错误。 我正在处理两个不同的(单独的)项目。 如果更改编译配置允许在编译过程中屏蔽某些头文件/源文件、那么这可能是解决我遇到的问题的可行解决方案。  

    最后、我为共享文件创建了一个单独的文件夹、这样当这两个工程的编译路径中都包含该文件夹时、其他源代码/标头就不会对另一个工程可见。 这种方式将会存在一些范围问题。 可通过使用预处理器命令进行解析。

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

    您好、

    对不起,我误解了这个问题。

    您的方法是声音。 添加预定义符号(即“CPU1"和“和“CPU2")“)以及预处理器命令(“#ifdef CPU1“)是解决范围 问题的理想方法。  

    此致、

    马特