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.

[参考译文] CC1352P7:如何将 TI's 示例代码用作 Git 子模块?

Guru**** 2609955 points
Other Parts Discussed in Thread: CC1352P7, SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1568629/cc1352p7-how-to-use-ti-s-example-code-as-a-git-submodule

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

工具/软件:

您好、

我使用 Resource Explorer 中的 ns_CoAP_node (Wi-SUN) 代码作为工程示例。 我已作出修改、打算把它作为其他几个项目的基础。

我需要的是能够将这个修改后的代码用作主工程的子模块。 基本上、一个完整的项目的结构如下:

my_project/                         <- git project
├── ns_coap_node_modified/          <- git submodule
├── my_specific_application/
│   ├── my-application.c
│   ├── my-application.h
│   ├── libs/
│   └── ...

建议的方法是什么?

谢谢你。

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

    尊敬的 Eduardo:

    默认情况下、从 SDK 导入示例工程时、所有源文件及其修改内容仍位于原始位置、并链接到您的 CCS 工作区。 您可能已经看到这种情况、如果您打开项目的文件夹、它将大部分为空。  
    如果您现在导入示例工程的第二个副本、它将从 SDK 中提取修改后的文件。 因此、您可以使用 git 管理整个 SDK(您可能想要忽略 docs/)。

    您也可以拥有示例工程的完整副本、因此、您需要打开.projectspec 文件(例如,sdk_PATH\examples\rtos\LP_CC1352P7_1\ti\wisunfan\ns_coAP_node\tirtos7\ticlang\ns_coap_node_LP_CC1352P7_1_tirtos7_ticlang.projectspec) 、将    要复制到工作区中的文件的 action=“link"替换“替换为 action=“copy"。“。 现在、从 CCS 中导入示例工程时、您将获得文件副本、而不是链接。 您现在可以使用 git 管理您的项目。

    此致、

    Daniel

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

    尊敬的 Daniel:

    感谢您的建议、我可能会将示例中修改后的文件作为副本导入、这样我就不会修改原始文件、因此如果我需要返回到任何文件、我就拥有原始版本。

    关于工程架构、当我将示例导入 CCS 工作区时、该示例就会进行工程。 但为了能够在我前面提到的架构中使用此示例、我需要导入和修改示例、使其仅为包含文件的路径、并且“my_project"文件夹“文件夹应该是 CCS 识别为实际工程的文件夹。 我需要进行哪些必要的修改才能接触到该组织?

    此致、
    Eduardo。

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

    尊敬的 Eduardo:

    我想我没有完全遵循你想做的事情。  

    ns_coAP_node_modified 是示例的修改版本、您将使其成为 git 子模块、这是一个完整的 CCS 工程、以及链接器文件和 SysConfig 等

    然后在工程之外创建一些其他文件 (my-application.c)、这些文件由 ns_CoAP_node_modified 工程的 application.c 使用?

    my_project/                         <- git project
    ├── ns_coap_node_modified/          <- git submodule
    |   ├── application/
    |   |   ├── application.c
    |   |   ├── main.c
    │   ├── mbed/
    │   ├── rcp/
    |   ├── software_stack/
    │   ├── cc13x2.cmd
    │   ├── coap_node.sysconfig
    |   └── ...
    ├── my_specific_application/
    │   ├── my-application.c
    │   ├── my-application.h
    │   ├── libs/
    │   └── ...

    此致、

    Daniel

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

    尊敬的 Daniel:

    是的、这正是我想要做的。

    这是一个完整的 CCS 项目

    我认为这是要点。 在这种情况下、ns_coAP_node_modified 不应再成为完整的 CCS 工程、而应是将是 my_project 的新完整 CCS 工程的一部分、正确吗?

    此致、
    Eduardo。

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

    尊敬的 Eduardo:

    my_project 本身是否是一个项目? 如果您按照此处所述创建工程依赖项、可以吗?
    6.1.创建和管理工程—Code Composer Studio 20.3.0 文档

    此致、

    Daniel

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

    尊敬的 Daniel:

    我认为它应该起作用。 我尝试通过以下方式对其进行测试:

    1.我从 Resource Explorer 导入一个空工程 (empty_LP_CC1352P7_1_tirtos7_ticlang)、因此这是我们一直由 my_project 调用的工程;

    2、添加 ns_CoAP_node_modified 工程作为依赖项(空工程属性->依赖项->工程依赖项);

    3.右键点击 empty_LP_CC1352P7-1_tirtos7_ticlang、“Add files/folders“、然后:选择要链接的文件夹-> workspace_LOC、并选择 ns_CoAP_node_modified 的路径。

    以下是项目组织的外观:

    完成步骤 (3) 后、我没有修改代码中的任何内容、只是尝试了编译工程、我看到了一些仅编译 ns_CoAP_node_modified 时不会发生的错误。 我是否需要配置其他内容?

    此致、
    Eduardo。

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

    尊敬的 Eduardo:

    好的、我可以看到相同的结果。 问题似乎是 ti_drivers_config.h、它使用的是 CoAP 节点的定义、而不是空的定义。 因此、必须禁用两个 SysConfig 中的一个、并将所有必需的更改合并到单个 SysConfig 中。

    我禁止在空工程中生成这些文件、并使用 CoAP_node 的定义将 config_GPIO_LED_0 重命名为 empty.c 中的 CONFIG_GPIO_RLED。 但是、由于重新定义、这仍然会导致一些误差。 所以我不知道有一个直接的方法来做到这一点,我会做一些更多的研究,并回来给你。

    此致、

    Daniel

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

    尊敬的 Daniel:

    除了您提到的 SysConfig 中的这些定义之外、我还看到了一些由于“包含“选项而导致的其他错误。 ns_CoAP_node_modified 工程还有一些其他文件、其中包含 application.c 中已使用的 libs、但在编译时显示找不到这些文件。 我不清楚为什么、因为当我编译 ns_coAP_node_modified 时、不会发生这些错误。 您认为我是否需要向 Arm 编译器和/或 Arm 链接器标志添加任何内容?

    此致、
    Eduardo。

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

    尊敬的 Daniel:

    我想起了另一个问题。 遵循我们之前定义的架构:

    my_project/                         <- git project
    ├── ns_coap_node_modified/          <- git submodule
    |   ├── application/
    |   |   ├── application.c
    |   |   ├── main.c
    │   ├── mbed/
    │   ├── rcp/
    |   ├── software_stack/
    │   ├── cc13x2.cmd
    │   ├── coap_node.sysconfig
    |   └── ...
    ├── my_specific_application/
    │   ├── my-application.c
    │   ├── my-application.h
    │   ├── libs/
    │   └── ...

    如果使用空项目创建 my_project、并将 ns_coap_node_modified 添加为项目依赖项、则将从空项目调用的 main() 函数、对吗? 我需要调用 main() 函数是 ns_coap_node_modified 工程中的函数。

    此致、
    Eduardo。

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

    尊敬的 Eduardo:

    很抱歉耽误你的时间。 我还没有为自己工作、有多个重新定义和两个切入点。  
    如果 ns_coAP 工程是您要运行的可执行工程、为什么还需要上面的第二个工程? 能否将所需的源文件添加到 ns_coAP 工程中?


    我将看看是否可以让 CCS 团队的人员来看看这个。

    最好的应届毕业生

    Daniel

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

    尊敬的 Daniel:

    具体思路是 ns_coAP 工程用作任何新工程的基础。

    例如、如果我需要一个用于收集温度数据的器件和另一个用于收集湿度数据的器件、主代码是相同的 (ns_CoAP_node_modified)、区别在于每个传感器的库块。

    我希望 ns_coAP_node_modified 可以是 git 工程的子模块、以便轻松更新代码、然后添加或调整此代码中的任何内容、并将其应用于我们拥有的所有工程。

    此致、
    Eduardo。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    so ns_coAP_node_modified 是示例的修改版本、您将使其成为 Git 子模块、这是一个完整的 CCS 项目、包含链接器文件和 SysConfig 等
    [quote=“584464" url="“ url="~“~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1568629/cc1352p7-how-to-use-ti-s-example-code-as-a-git-submodule/6043437 报价、这正是我要做的。

    CCS 工程管理器实际上并不支持上述环境。 它不考虑嵌套项目、可能会导致各种问题。 嵌套项目可能可以进行调整以使其正常工作、但我不建议这样做。

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

    尊敬的 Ki:

    那么,我在上一个答复中提到的项目的建议程序是什么?

    此致、
    Eduardo。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以轻松更新代码、我需要添加或调整代码中的任何内容、并将其应用到我们拥有的所有项目中。

    我首先想到的是、为什么不是许多“主“工程可以作为工程依赖项的库工程、而是生成的库链接到所有这些工程。 您只需管理这个单个库工程。

    您还可以在此处了解您开始执行的操作:

    我认为这是这里的要点。 在这种情况下、ns_coAP_node_modified 不应再成为完整的 CCS 工程、而应是将是 my_project 的新完整 CCS 工程的一部分、正确?

    这应该会起作用。 您需要执行以下操作:

    因此必须禁用两个 SysConfig 中的一个、并将所有必需的更改合并到单个 SysConfig 中。

    您还需要清理提到的其他问题、如多个入口点。

    另一个重要注意事项是请记住、特定于 ns_CoAP_node_modified 工程的任何工程设置都不适用于您的“my_project"。“。 与“ns_CoAP_node_modified"相关“相关的源文件可能依赖于“ns_CoAP_node_modified"工程“工程设置中不再适用的包含搜索路径、构建变量和其他设置。 只会应用“my_project"中“中的工程设置。 您需要确保使用所需的“ns_coAP_node_modified"中“中的设置来设置“my_project"设置“设置。 您现在基本上只处理一个项目。

    谢谢

    Ki  

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

    尊敬的 Ki:

    许多“主“项目可以作为项目依赖关系的库项目

    但我在 ns_CoAP_node 工程中进行的一些修改位于 main.c、application.c 和 application.h 文件中。 我是否也可以将它们移动到该库中? 或者这些文件必须在应用程序 文件夹中?

    此致、
    Eduardo。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是否也可以将它们移动到此库中?

    是的、我建议将 ns_CoAP_node 工程的所有内容都移动到单独的静态库工程。 但是、我不能对 ns_CoAP_node 项目的当前结构进行评论、因为我对它不太熟悉。 我不确定是否严格依赖该结构。 我将推迟到丹尼尔关于这个。 但我想它会包括受影响的搜索路径、您可以在项目属性中进行调整。 我认为在 ns_coAP_node 静态库工程文件夹中放置应用程序文件夹没有任何好处。

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

    尊敬的 Ki:

    我将跟进此实施、并在我获得结果后立即回复您。 谢谢你。

    此致、
    Eduardo。

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

    尊敬的 Ki:

    我已将必要的文件移动到工程外部的文件夹、并将此文件夹链接到工程、似乎可以正常工作(至少我可以编译工程)。

    我移动了一些.h 和.c 文件以及.syscfg 文件。 移动.syscfg 文件会更改其在工程中的位置、但看起来该工程仍会编译。 CCS 是否在所有文件夹中寻找必要的文件?

    此致、
    Eduardo。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CCS 是否在所有文件夹中查找必要的文件?

    链接或添加到工程的任何文件和文件夹都被视为工程的一部分。

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

    尊敬的 Ki:

    我将另外一些文件移动到链接到工程的文件夹中、其中一些文件包括工程中的头文件。

    当我尝试编译工程时、编译器说无法找到我包含的这些文件。

    如何解决此问题?

    此致、
    Eduardo。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“584464" url="“ url="~“~/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1568629/cc1352p7-how-to-use-ti-s-example-code-as-a-git-submodule/6080251

    当我尝试编译工程时、编译器说无法找到我包含的这些文件。

    如何解决此问题?

    [/报价]

    确保将这些包含文件的新路径添加到包含搜索路径列表中。

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

    很抱歉、我没有正确解释。

    我移至链接文件夹的文件包括工程中的文件。

    我看到的错误来自链接文件夹中的这些文件、它们试图包含工程文件。 如果链接的文件夹不是工程、则无法配置搜索路径列表。

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

    一般工程属性应应用于链接文件夹中的文件。 您还可以根据每个文件/文件夹设置属性。

    您能否显示在控制台中看到的确切错误文本?

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

    尊敬的 Ki:

    工程和静态库各自具有一个同名的文件夹。 我改变了这个,它现在正在工作,我只需要修复一些包括.

    感谢您的支持。

    此致、
    Eduardo。