Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE
Hello, in a previous project I used C2000ware 1.05.00, and was able to enable and trigger software interrupts from CLA1 to CPU1 via bitfields, like below:
Cla1SoftIntRegs.SOFTINTEN.bit.TASK1=1; Cla1SoftIntRegs.SOFTINTFRC.bit.TASK1=1;
This worked fine, but for a new project I'm trying to use C2000ware 4.01 and it seems like the definitions for these registers were removed for the F2837xD, for some reason. I've come across many threads relating to this, but so far I can't get anything to compile cleanly without manually editing C2000ware header files, or adding predefined symbols (like __TMS320C28XX_CLA1__).
Closest I seem to get is by using the driverlib api functions like so:
#include "driverlib.h" ... CLA_enableSoftwareInterrupt(CLA1_BASE, 1); CLA_forceSoftwareInterrupt(CLA1_BASE, 1);
This somehow compiles without errors, but if I look at cla.h (the driverlib file where these apis are defined), the function declarations are grayed out because neither __TMS320C28XX_CLA1__ nor __TMS320C28XX_CLA2__ are defined (trying "open declaration" on my function calls also doesn't work). I'm puzzled as to why I don't get any warning or error about unresolved symbols or implicit declarations.
Even if I modify cla.h to force the #if to evaluate true, I then run into more build issues (identifier "CLA_O_SOFTINTEN" is undefined, and function "__meallow" declared implicitly).
Is this still a defect in C2000ware, or is there something I'm missing?
Regards,
Mike