#pragma interrupt/vect and the __interrupt and __interrupt_brk keywords of the CA78K0R are converted into #pragma interrupt/interrupt_brk of the CC-RL.
The format of an interrupt function of the CA78K0R is as follows.
#pragma interrupt(vect) interrupt-request-name function-name function-name [Stack-change-specification] [{Stack-usage-specification | No-change-specification | Register-bank-specification}] |
The format of an interrupt function of the CC-RL is as follows.
#pragma interrupt [(] function-name [([vect=address][,bank=register-bank][,enable={true|false}])][)] #pragma interrupt_brk [(] function-name [([bank=register-bank][,enable={true|false}])][)] |
__interrupt is converted into #pragma interrupt and __interrupt_brk is converted into #pragma interrupt_brk. |
"interrupt-request-name" is converted into "vect=address" as a macro that indicates the address. The macro value is defined by iodefine.h. |
Since "Stack-change-specification", "Stack-usage-specification", and "No-change-specification" do not exist in the CC-RL, the CcnvCA78K0R outputs a message and deletes them. |
When a macro or typedef is used in declaration or definition of an interrupt function using the __interrupt or __interrupt_brk keyword, the function name may be interpreted erroneously. Perform conversion after expanding the macro or typedef in advance. |
If there is a #pragma directive and a description of an interrupt function using a keyword for the same function, converting both of them into #pragma directives sometimes generates duplicate #pragma directives after conversion and a compile error will occur. In this case, delete the duplicate description. |
When omitting parameters of a function declaration in which the __interrupt or __interrupt_brk keyword is specified, a compile error will occur in the CC-RL. The void type has to be written as the parameter type. |