Keil™, An ARM® Company

Technical Support

RTX166: INTERRUPT NUMBER ALREADY USED LINKER ERROR


Information in this article applies to:

  • RTX166 Version 3.10a

SYMPTOMS

I receive the following linker error when I link my RTX166 program.

*** ERROR 124: INTERRUPT NUMBER ALREADY USED

What causes this message and how can I correct it?

CAUSE

This message is caused when the linker detects that there are two interrupt service routines for the same interrupt trap.

RESOLUTION

Refer to the Interrupt Procedures section of the linker MAP file and look for interrupt procedures with the same interrupt number:

INTERRUPT PROCEDURES OF MODULE:  vsfd (MAIN)


INTERRUPT PROCEDURE               INT  INTERRUPT NAME
=====================================================
rtx_nmi_handler                     2  ---
rtx_btrap_handler                  10  ---
NMI_trap                            2  ---
STKOF_trap                          4  ---
STKUF_trap                          6  ---
Class_B_trap                       10  ---
?C_RESET                            0  RESET
rtx_167int_16                      16  ---
rtx_167int_17                      17  ---
rtx_167int_18                      18  ---
rtx_167int_19                      19  ---
rtx_167int_20                      20  ---
.
.
.
rtx_167int_70                      70  ---
rtx_167int_71                      71  ---
rtx_stkovf_handler                  4  ---
rtx_stkunf_handler                  6  ---

As you can see in the above listing,

  • rtx_nmi_handler and NMI_trap have interrupt number 2,
  • rtx_stkovf_handler and STKOF_trap have interrupt number 4,
  • rtx_stkunf_handler and STKUF_trap have interrupt number 6.

The NMI_trap, STKOF_trap, and STKUF_trap interrupt service routines are created when you include the TRAPS.C file from the \c166\lib directory. Remove this file from your project and re-compile your program.

Last Reviewed: Sunday, March 12, 2000


Did this article provide the answer you needed?
 
Yes
No
Not Sure