This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

MULTIPLE CALL TO SEGMENT

Hi All,
I've a warning message : MULTIPLE CALL TO SEGMENT L15
The problem comes from 2 different ISRs that call the same function.
What I dont understand is that both callers are ISRs and therfore the called function will not be called at the same time.
I use keil 7.07 for an2131 cypress (ezusb),
here is my code :

#pragma NOAREGS

static void Check_Data_Received(unsigned char data_received)
{
...
MIDI_In_Add_Buffer(data_received, &MIDI_In_From_Con);
...
}

static void MIDI_In_Add_Buffer(unsigned char data_in, Midi_In_Struct *midi_struct)
{
...
}

#pragma AREGS

static void serial_port_0_isr (void) interrupt COM0_VECT using 1
{
BYTE data_received;
...
Check_Data_Received(data_received);
...
}

void ISR_Ep2out(void) interrupt 0
{
..
MIDI_In_Add_Buffer(OUT2BUF[index+frame+1], &MIDI_In_From_Usb);
}

The warning is as follow :

*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_MIDI_IN_ADD_BUFFER?ITR
CALLER1: ?PR?SERIAL_PORT_0_ISR?ITR
CALLER2: ?PR?USB_JUMP_TABLE?USBJT

Any help greatly appreciated

Parents
  • "both callers are ISRs and therfore the called function will not be called at the same time."

    Remember, it's only a Warning; the Linker is just telling you that it is not certain that it's safe - but that doesn't necessarily mean that it is unsafe in your particular application.

    If you are absolutely 101% completely & totally sure of that (see Erik's note), then you're OK, aren't you...?

Reply
  • "both callers are ISRs and therfore the called function will not be called at the same time."

    Remember, it's only a Warning; the Linker is just telling you that it is not certain that it's safe - but that doesn't necessarily mean that it is unsafe in your particular application.

    If you are absolutely 101% completely & totally sure of that (see Erik's note), then you're OK, aren't you...?

Children
No data