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.
Dear Champs,
I am asking this for our customer.
In 6.9.15 The INTERRUPT Pragma of the compiler doc (https://www.ti.com/lit/ug/spru514w/spru514w.pdf?ts=1630324430532&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FC2000-CGT), I want clarify usages.
1) For interrupt C28x ISR and CLA task,
If #pragma INTERRUPT is used, does it matter with or without interrupt?
That is, are below a) b) c) the same?
a) interrupt void Cla1Task1()
b)
#pragma INTERRUPT (Cla1Task1)
interrupt void Cla1Task1()
c)
#pragma INTERRUPT (Cla1Task1)
void Cla1Task1()
2) Likewise, for CLA background, are below the same?
a)
#pragma INTERRUPT(Cla1Task8_background, "BACKGROUND");
interrupt void Cla1Task8_background()
b)
#pragma INTERRUPT(Cla1Task8_background, "BACKGROUND");
void Cla1Task8_background()
I tried to build both the above and did not find anything different, but I still want to confirm again.
3) In the example shown on the page 123, there is a ";" on the end of #pragma INTERRUPT. Does it matter if ";" is used or not? I don't see a ";" with other #pragma usages.
#pragma INTERRUPT(task_name, "BACKGROUND");
void task_name(void) {...}
4) If I define
#pragma INTERRUPT(Cla1Task8_background, "BACKGROUND");
interrupt void Cla1Task8_background()
in the .h file, I only need to use extern without #pragma statement, is it right?
extern interrupt void Cla1Task8_background();
Wayne Huang
Hi Wayne,
1) 2) your observations are correct. All of these are different ways of defining a function as an ISR.
3) The semicolon appears to be a typo, let me loop in the compiler team to be sure
4) Correct, no need to add the PRAGMA in the .h file
Thanks,
Ashwini
In the example shown on the page 123, there is a ";" on the end of #pragma INTERRUPT. Does it matter if ";" is used or not?
No.
Thanks and regards,
-George