20.21 Relocatable Vector Information (interrupt_vector[])
Note, the cfg600px does not generate code to initialize the interrupt control registers, the causes of interrupts, etc. for the interrupts defined here. These initialization need to be implemented in the application.
Note Since the vector number from 1 to 8 are reserved by the RI600PX, do not define these vectors. And do not define the vectors which are reserved by the MCU specification.
interrupt_vector[ <1. Vector number> ] { entry_address = <2. Interrupt handler entry address (entry_addreess)>; os_int = <3. Kernel interrupt specification (os_int)>; pragma_switch = <4. Switch passed to pragma directive (pragma_switch)>; }; |
- Description
Interrupts whose interrupt priority level is lower than or equal to the Kernel interrupt mask level (system_IPL) must be defined as the kernel interrupt, and the other interrupts must be defined as the non-kernel interrupt.
Note, when the Kernel interrupt mask level (system_IPL) is 15, all interrupts for relocatable vector must be defined as the kernel interrupt.
Interrupts whose interrupt priority level is lower than or equal to the Kernel interrupt mask level (system_IPL) must be defined as the kernel interrupt, and the other interrupts must be defined as the non-kernel interrupt.
Note, when the Kernel interrupt mask level (system_IPL) is 15, all interrupts for relocatable vector must be defined as the kernel interrupt.
- Description
The cfg600px outputs "#pragma interrupt" directive to handle the function specified by entry_address as a interrupt function to the system information header file kernel_id.h.
The switches passed to this pragma directive should be specified for pragma_switch.
The cfg600px outputs "#pragma interrupt" directive to handle the function specified by entry_address as a interrupt function to the system information header file kernel_id.h.
The switches passed to this pragma directive should be specified for pragma_switch.
- Definition range
The following can be specified. To specify multiple choices, separate each with a comma. However, "ACC" and "NOACC" cannot be specified at the same time.
The following can be specified. To specify multiple choices, separate each with a comma. However, "ACC" and "NOACC" cannot be specified at the same time.
F: The "fint" switch that specifies a fast interrupt is passed. Note, a fast interrupt must be handled as non-kernel interrupt (os_int = NO).
NOACC: The "no_acc" switch that does not guarantee the ACC register in the interrupt handler is passed
Note 2 When either "CMT0", "CMT1", "CMT2" or "CMT3" is defined as Selection of timer channel for base clock (timer), it is treated that "interrupt_vector[]" is implicitly defined by the following specification.