Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
大家好、在前面的项目中、我使用了 C2000ware 1.05.00、并且能够通过位字段启用和触发从 CLA1到 CPU1的软件中断、如下所示:
Cla1SoftIntRegs.SOFTINTEN.bit.TASK1=1; Cla1SoftIntRegs.SOFTINTFRC.bit.TASK1=1;
这种情况很好、但对于新项目、我尝试使用 C2000ware 4.01、出于某种原因、似乎已删除 F2837xD 的这些寄存器定义。 我遇到过许多与此相关的线程、但到目前 为止、如果不手动编辑 C2000ware 头文件或添加预定义符号(如__ TMS320C28XX_CLA1__)、我无法清晰地编译任何内容。
我似乎最接近的方法是使用如下所示的 driverlib API 函数:
#include "driverlib.h" ... CLA_enableSoftwareInterrupt(CLA1_BASE, 1); CLA_forceSoftwareInterrupt(CLA1_BASE, 1);
这在某种程度上编译没有错误、但如果我查看 cla.h (定义了这些 API 的 driverlib 文件)、函数声明将灰显、因为_ TMS320C28XX_CLA1__和 _ TMS320C28XX_CLA2__都未定义(在我的函数调用上尝试"打开声明"也不起作用)。 我很难理解为什么我没有收到任何有关未解析符号或隐式声明的警告或错误。
即使我修改 cla.h 以强制#if 求值为 true、我也会遇到更多 构建问题(标识符"CLA_O_SOFTINTEN 未定义、 函数"_MEALLOE"隐式声明)。
这是否仍然是 C2000ware 中的缺陷、或者我是否遗漏了什么?
此致、
Mike