主题中讨论的其他器件:SysConfig、 C2000WARE
工具与软件:
我将 C28x MCU 与 SysConfig 配合使用(下面的屏幕截图中显示了软件发布信息)。

在 main()中、我通常会调用 C2000Ware_libraries_init ()。
在 SysConfig 中、我添加了一个名为"transentCaptureModule1"的 TCM 资源、如下所示、以及一个具有适当名称的缓冲区。

我还添加了
DCL_runTCM (&transientCaptureModule1、dq0AbcInputsComplement.id.newestOutputPU);
中断处理程序、它正在处理我要捕获的值。
i ARM 瞬变 CaptureModule1并且它进入 TCM_ARIMED 模式。 创建条件以触发 transientCaptureModule1后 、模式更改为 TCM_COMPLETE、表示它已捕获数据流。 我遇到的唯一问题是、任何地方似乎都没有任何捕获的数据。
我没有看到任何代码(我的代码或来自 SysConfig 的代码)将由名为 transentCaptureModule1_arr 的 SysConfig 分配的缓冲区与 transentCaptureModule1相关联。
SysConfig 为 c2000ware_libraries.c 中的 transentCaptureModule1_arr 的分配提供了适当的代码、并在 c2000ware_libraries.h 中提供了外部引用、但我从未看到缓冲区与 TCM 结构关联的位置。
SysConfig 会为 TCM 模块生成初始化代码、但不会 引用 transentCaptureModule1_arr、也不会引用我可以看到的任何其他数组存储。 添加 IIN、在编译和链接时没有错误、CCS 表达式窗格会在我尝试查看缓冲区时指出缓冲区不存在、但链接映射文件中没有提及缓冲区、因此确认缺少缓冲区。 我猜缓冲区是在链路中被丢弃的、因为它从未被使用过。
我缺少什么? 我找不到 TI 提供的任何展示如何使用该模块的示例程序。 DCL 用户指南也没有显示任何有关如何使用此模块的示例。 我猜是 SysConfig 不会为此模块生成完整的初始化集、尽管它确实提供了一个 init 函数并进行调用。
SysConfig 生成的代码位于 C2000Ware_libraries.c 中、如下所示:
//
// DCL TCM
//
//
// transentCaptureModule1变量
//
TCM 瞬态 CaptureModule1 = tcm_defaults;
FDLOG 瞬态 CaptureModule1_fdlog = FDLOG_DEFAULTS;
float32_t 瞬态 CaptureModule1_arr[1000];
void transentCaptureModule1_init (){
//
// transentCaptureModule1设置
//
DCL_initTCM (
瞬态捕获模块1 (&S)、
TransentCaptureModule1_fdlog.fptr、
1000、
100、
0.88、
1.01
);
DCL_armTCM (&transientCaptureModule1);
}
void tcm_init (){
暂存 CaptureModule1_init();
}
当我在捕获完成后查看 CCS 中的 TCM 结构时、指针仍然初始化为全零。 我缺少什么?
以下是触发捕获后的表达式窗格:

如果您有一个很好的示例程序、请告知我、因为我还没有找到它。 DCL 参考手册非常详细地介绍了该模块的工作原理、但并未提供有关如何使用该模块的示例。 它似乎也不知道 SysConfig 分配一个的能力。
谢谢!
Don