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.

[参考译文] TMS320F28379D:无法使用 DCL 示例构建工程

Guru**** 2539650 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1389773/tms320f28379d-unable-to-build-a-project-with-dcl-example

器件型号:TMS320F28379D
Thread 中讨论的其他器件: C2000WARE

工具与软件:

尊敬的专家:

我们 将 TMS320f28379D 与 CCSv7配合使用来设计一款使用两个串联 PI 控制器的双环路控制器。 我在 DCL 文件夹(c:\ti\c2000\C2000Ware_1_00_03_00\libraries\control\DCL\c28\examples)中看到了一些示例、其中提供了 F28069的示例。

您能否告诉我们要使用哪一个以及应使用什么 include 文件:DCL.h 或 DCLF32.h? 我们已使用了#include "F28x_Project.h"、#include "DCL.h";F28069_PID 示例、以表示属性>包含选项 C:\ti\c2000\C2000Ware_1_00_03_00\libraries\control\DCL\c28\include、但 我们无法构建工程。

谢谢你。

此致、
阿奇·A·.

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

    您好、Archie:

    您是否可以尝试同时包含 DCL.h 和 DCLF32.h? 请注意、如果您使用控制器的汇编版本、则还需要复制/引用 DCL 源文件夹中的.asm 文件。

    此致!

    Sen Wang

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

    您好、Sen:

    谢谢你。

    在 尝试运行 example_f28069_pid.c 时 通过添加  #include "DCL.h"   #include "DCLF32.h"  显示的错误为"../main.c"、第14行:致命错误#1965:无法打开源文件"DCLF32.h"和 if  #include "DCLF32.h"被注释掉、显示了以下错误。

        首次引用了未定义的
     符号        保存在文件中    
     ---     -------
     _DCL_runClamp_C1 ./main.obj    
     _DCL_runPID_C4 ./main.obj    

    错误#10234-D:未解析的符号仍存在
    错误#10010:链接过程中遇到错误;未构建"picontrolertest1.out"

    有什么想法要解决? 谢谢你。

    此致、
    阿奇·A·.

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

    您好、Archie:

    是的、DCL_runClamp_C1和 DCL_runPID_C4都是汇编函数、请在 c2000ware_path\libraries\control\DCL\c28\source 中找到其汇编实现。 粘贴到工程目录中或添加路径作为 include 选项。

    此致!

    Sen Wang

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

    您好、Sen:

    我们仍然收到错误:

    您能进一步帮助吗?

    谢谢你。

    此致、
    阿奇·A·.

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

    您好、Archie:

    是的、我看到 CCS 左侧的文件结构包含一个"DCL32.h"文件。 尽管如此、我们没有名为 DCL32.h 的文件 您能否检查此文件是否从"DCLF32.h"意外重命名?  

    谢谢!

    Sen Wang

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

    尊敬的 Sen:

    感谢您的支持。

    这次我们使用的是 C2000版本5、其中"DCLF32.h"可用、并附加了错误消息:

    谢谢你。

    Regads、
    Archie

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

    您好、Archie:

    DCL_runClamp_C1和 DCL_runPID_C4都是汇编函数、请在 c2000ware_path\libraries\control\DCL\c28\source 中找到其汇编实现。 粘贴到工程目录中或添加"source"路径作为包含选项。

    此致!

    Sen Wang

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

    尊敬的 Sen:

    我已经添加了 DCL_Clamp_C1.asm 和 DCL_PID_C4.asm 文件、构建项目时没有错误、但显示一条警告:

    发现此错误- TMDSCNCD28335:我在执行程序后出现错误。 但是、 我无法理解帖子中给出的解决方案。 上文提到了在主程序中直接写入控制器结构中的系数。

    在这个例子中、我尝试执行控制器的 example_f28069_pid.c 已经在 main ()中初始化、而 DCL_PID pid1 = PID_DEFAULTS;是全局定义的。

    此外、参考 DF22示例、控制器在 main ()中初始化、DCL_DF22 controller1 = DF22_defaults;DCL_DF22 controller2 = DF22_defaults;已定义;但在此处初始化数据数组。

    是否需要初始化数据阵列来删除警告? 我不清楚连接器命令文件。

    此致、
    阿奇·A·.

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

    您好、Archie:  

    Richard 在这篇文章你发现也解释了如何初始化 DCL strcture。

    DCL 定义了一个名为"dclfuncs"的存储器段、该段让用户可以将该段映射到 链接器脚本中指定的存储器扇区中。 在本例中、您的链接器脚本似乎是 F2837xD_Headers_nonBIOS_CPU1.cmd (任何以.cmd 扩展名结尾的文件)、请转到此部分、并将以下行添加到各部分中:

    dclfuncs  :> RAMGS0,  page = 1.   

    请将 RAMGS0更改为 在链接器脚本中定义的任何存储器扇区。 并更改存储器扇区所在页的页码。

    正如 Richard 所说、这只是一条警告、默认情况下、编译器会将存储器段放置在它认为合适的任何扇区中(如果未指定)。

    此致!

    Sen Wang

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

    您好、Sen:

    感谢你的帮助。

    提供的解决方案现在可以解决该问题、在构建程序时不会出现任何错误或警告。

    此致、
    阿奇·A·.