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

Returning from interrupt to a specified address in main

I'm quite new to context switch and embedded software development. I'm developing a standalone application (no OS) with aduc7026 and keil uVision3. My problem is that at the end of an uart messagge, which I must receive by interrupt, depending on the content of the messagge I've to return return in main in the state saved before entering in the ISR or I've have to return in a specified point where a funcion call is executed.

Hoping that I've been clear. Does anyone have suggestions?

Thank ìs in advance,

Matteo

Parents
  • "If understand this correctly, your main loop is too slow to ensure a fast enough response to a message. "

    The problem isn't the speed but the fact that receving a messagge is more important than executing other task.

    " Use interrupts then. Structure the fast message handler as an ISR and trigger the corresponding interrupt when you receive the message. Assign interrupt priorities accordingly. "

    This is a nice solution, however doesn't meet the requirements to restart from that function because after the interrupt the execution restart from the point where the code was executing...

Reply
  • "If understand this correctly, your main loop is too slow to ensure a fast enough response to a message. "

    The problem isn't the speed but the fact that receving a messagge is more important than executing other task.

    " Use interrupts then. Structure the fast message handler as an ISR and trigger the corresponding interrupt when you receive the message. Assign interrupt priorities accordingly. "

    This is a nice solution, however doesn't meet the requirements to restart from that function because after the interrupt the execution restart from the point where the code was executing...

Children
  • This is a nice solution, however doesn't meet the requirements to restart from that function because after the interrupt the execution restart from the point where the code was executing.

    If you have this kind of a problem, then your program is a mess already. Adding another layer of mess might make it work, but the whole thing won't be pretty.
    A clean rewrite is not an option, is it?

  • " Use interrupts then. Structure the fast message handler as an ISR and trigger the corresponding interrupt when you receive the message. Assign interrupt priorities accordingly. "

    This is a nice solution, however doesn't meet the requirements to restart from that function because after the interrupt the execution restart from the point where the code was executing...
    yes, it does for ONE instruction and then it executes "the fast message handler as an ISR "

    Erik