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.
工具/软件:Code Composer Studio
我正在设计一个库、我愿意利用 RTSC 系统使代码和特定于电路板的配置相互独立。 然后、一段代码可用于不同的配置。
以下是我计划的内容:
但问题出在哪里、我如何将生成的代码添加到 CCS 工程中、并使其编译并链接到工程代码文件?
你(们)好,Sasha。 感谢你的答复。
我知道@CustomHeader 属性、不想使用它、因为长主头文件仍由 XDC 生成。
“@模板”属性似乎是个好主意,但对我来说不起作用。 因为我的源代码是用多个命名空间用 C++编写的、其中的接口不能从 C 调用。如果我想使用 C 代码、我必须为这些接口创建可调用的 C 语言包装程序。
有没有其他方法可以实现我的目标?
我可以在 RTSC 工程中看到一些功能:
因此、我想我可以使用与生成自定义软件包或将一些脚本添加到软件包 configPkg 中相同的方式、以便可以在软件包中编译从模板生成的自定义源文件、然后与 CCS 工程的其他内容链接。 但这种方法是否可以实现?
我不理解您提出的解决方案。 如果这是您要执行的操作、您实际上无法将任何额外的文件添加到自动生成的软件包 configPkg 中。 此外,您已经有一个包含元模块和 genFile()的软件包,因此您不需要其他自定义软件包。
您唯一的问题似乎是如何将 genFile()生成的文件插入 CCS 项目。
在您的库包中,在调用 genFile()之前,您可以找到 CCS 中顶层项目目录的绝对路径。
您可以使用 Program.buildPackage -rtsc.eclipse.org/.../Program.html 获取主配置包的名称。 您已经知道它是'configPkg'、但不必对其进行硬编码。 然后、您可以找到该软件包 rtsc.eclipse.org/.../IPackage.html 的存储库的绝对路径、这将是 Debug 或 Release 目录。 从这里、您可以向上一级在顶部目录中创建 C++文件、CCS 应在顶部目录中自动选取并构建该文件。 以下是您访问项目顶部目录的方法:
xdc.loadPackage (Program.buildPackage).packageRepository +"../../";
您可能希望在运行模板之前创建一个初始 C++文件、以便 CCS 将其添加到其 makefile 文件中、然后模板将继续用新内容替换该文件的内容。
最后、我必须告诉大家、这是 XDCtools 的一种不同寻常的用法、我没有尝试过任何这种用法。 它可能工作、也可能不工作。 如果您决定尝试并遇到一些问题、请告诉我。
您好、Sasha。
感谢您的想法、我尝试直接在 CCS 项目目录中生成 CPP 文件。 它只能在增量编译中工作、也就是说、如果我从头开始编译工程、它会失败、然后我必须再次编译(现在变为增量)。 这也意味着我必须点击两次'build'来创建二进制文件、这使得构建工作变得很奇怪。 所以我不会采用这种方法。
我想在工程中预添加 CPP 文件并使用模板替换其内容应该可以防止此问题、但这种方法允许每个 CCS 工程手动添加初始 CPP 文件、这会使库不易使用。 因此、我必须放弃它。
但您指出、我可以使用'xdc.loadPackage (Program.buildPackage).packageRepository +"../../..." 跟踪实际项目位置。 这对我有很大帮助。
因此、我当前的解决方案是:
-源文件是在库包中编译的,因此在配置对象模型中不可更改给库用户。
-提供具有不同设置的多个库。
-用户代码使用单个头文件作为条目来访问多个库之一,该头文件包括在 CCS 工程中生成的中间头文件,并根据 cfg 模型确定实际使用的库。