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.

[参考译文] TMS320F28377D:在 C2000ware 中断开 CLA 软件中断

Guru**** 2966500 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1161016/tms320f28377d-cla-software-interrupts-broken-in-c2000ware

器件型号:TMS320F28377D
主题中讨论的其他器件: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

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

    尊敬的 Mike:

    您可以忽略 CCS 中的传播部分。 这些函数位于#ifdef  __TMS320C28XX_CLA2__下,因此只 能从 CLA 代码访问它们。 此宏在编译.cla 文件时由编译器设置。

    此致、

    Veena

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

    您好、Veena、

    当我打印预处理器宏时、我不会看到 __TMS320C28XX_CLA2__或 __TMS320C28XX_CLA1__

    此外、我还认为 F2837xD 具有1类 CLA?

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

    是的、 F2837xD 具有1类 CLA。 宏仅在编译.CLA 文件时由编译器设置。 在编译.c 文件时未定义。 因此、这些函数只能从.cla 文件访问、而不能从.c 文件访问

    此致、

    Veena