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/TMS320C6713B:只需发布部分源代码

Guru**** 2391415 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/808376/ccs-tms320c6713b-just-release-a-portion-of-source-codes

器件型号:TMS320C6713B

工具/软件:Code Composer Studio

您好!

我想向 客户发布部分源代码、以便他们可以自行开发一些功能。 如何通过将大多数源代码编译为.obj 等特定格式 并 仅向  客户发布.c 文件来开发其自己的函数、从而隐藏这些源代码、 然后、我们的客户可以将其.c 文件与我们的特定格式文件一起编译、以获取.hex 文件。

例如

如果我的项目中有两个分别名为 Company.c 和 Customer.c 的.c 文件。

我想将整个项目发布给我的客户、其中将 compine.c 编译为特定的格式、例如 compine.obj

我们的客户可以在 Cousomer.c 中开发一些函数 、而这些函数在 Company.c 中被调用

最后、客户可以编译整个项目以通过 CCS 获得.hex

可以这样做吗?  

非常感谢您的帮助!



 

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

    Jason、

    这样做的一种方法是:

    制作项目的副本、以免丢失任何内容

    在这个项目中、您可以看到我有 blink.c 和 john.c

    Debug 文件夹中的每个源文件都有目标文件。  

    接下来、我将 john.obj 拖动到项目的根目录中。  现在、john.obj 是我的项目的源文件、然后我删除了 john.c (首先更安全、只排除 john.c)。

    我可以很好地构建这个项目。  我现在可以共享它、而不是为 john.c 的内容提供 C 源代码

    此致、

    John

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

    您好!

    尽管共享特定目标文件可能起作用、但执行此作业的合理方法是创建库。 这样、您就必须创建具有输出类型静态库的单独项目、将源代码移动到那里并生成该库。 构建完成后、您可以在项目中使用它、因此可以与客户共享。 通过这种方式、我们可以从 TI 获得共享代码、LIE DSPLIB 等。

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

    您好、John

    感谢您的回答。 我认为这是一种正确的方法,但它不适用于我的项目。 当我使用.obj 代替原始.c 文件时,CCS 在“链接”期间显示错误‘未定义符号’。 未定义的符号是原始.c 文件中的函数。

    请允许我提出更多问题。 如果我想用相应的.obj 替换.c 文件、应该修改.pjt 文件还是 lnk.cmd。 如果是、您能告诉我如何操作。

    非常感谢您的友好回复!

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

    您好、太棒了

    感谢您的回答、我也考虑了库方法。 我知道、我们可以创建和发布库、以便用户可以在开发新函数时调用库中的函数。 但是、在我的例子中、由客户开发的函数被调用在隐藏的库或.obj 文件中。

    例如

    在 A.c 中、函数 FUNCK_B()被调用、其中 FUNCK_B()在 B.C.中开发

    关键问题是由客户在 B.C 中开发的函数 FUNCK_B()将在隐藏部分(A.c)中调用。

    这是否可以通过使用库方法实现?

    非常感谢您的友好回复!

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

    拉格里奇的建议是正确的方法。  在.obj 文件中进行交换是一种快速方法、但构建库更好。

    我看到您在答复中提到了.pjt 文件。  您是否正在使用 CCSv3.x?  我不知道我的方法会在该版本中起作用、因为它是完全不同的构建系统。  您可能需要将.obj 文件添加到通过工程选项传递给链接器的项目中。

    John

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

    当然、这是可能的。 对于您的情况、您只需向您的库中声明被调用函数原型、并要求客户根据这些原型开发其函数。 就是这样。