Keil™, An ARM® Company

Technical Support

L166: ERROR 124 (INTERRUPT NUMBER ALREADY USED)


Information in this article applies to:

  • C166 Version 3.12
  • C166 Version 4.04

SYMPTOMS

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

*** ERROR L124: 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.

To resolve this error, remove the duplicate functions from your program and recompile.

MORE INFORMATION

Last Reviewed: Friday, July 15, 2005


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