Problem with decrementer interrupt

sjoyeau at wanadoo.fr sjoyeau at wanadoo.fr
Tue Feb 24 04:33:10 EST 2009


Hi Sumedh,

You may check the context in which your CPU in running the C code from
interrupt context (ie stack pointer (r1), kernel locks disabling
rescheduling etc..) and double check the IRQ originator (the decrementer) is
acknowlegded somewhere your handler before enabling back interrupts, else
your handler gets fired.

--
sj

2009/2/23 sumedh tirodkar <sumedhtirodkar at gmail.com>

> Alright...I am trying to develop a system of my own..
> Consider that i am not using any linux kernel...I m writing some
> program right from scratch.........
> The major steps that i have taken are...
>
> 1. Started with a assembly file...
> 2. Have relocated the interrupt handlers to there respective
> positions...The interrupt handlers are written in assembly language...
> 3. Initialised Decrementer register to get an interrupt after some
> interval...
> 4. Jump to some function using
>
>    bl <function_name_main>
>
>    function_name_main which will have a infinite while loop..
> This works fine i.e. the interrupts(decrementer interrupt to be more
> specific) work fine...I have initialised serial port to get the
> output...
>
> Now, the problem that i am facing....
>
> If in interrupt handler of the decrementer, i make a call to some C
> function in some other C file...using the follwing statement...
>
> Dec_handler:  /* I have relocated this to interrupt vector address of
> decrementer interrupt*/
>     /*code to print using serial port*/
>     bla <function_name_handler> /*code to call some function in C file*/
>     /*code to print using serial port---but i m never able to see this
> output*/
>     RFI
>
> This starts creating a problem...somehow we dont return to this code
> after the end of the function_name_handler...
> Consider the following code for the function_name_handler:
> void function_name_handler(void)
> {
>   /*Some action*/
> }
>
> So, if its possible for anyone to help me with this...please reply...
>
> Regards,
> Sumedh
>
>
> On Mon, Feb 23, 2009 at 8:18 PM, Matt Gessner <mgessner at gmail.com> wrote:
> >
> >
> > On Mon, Feb 23, 2009 at 8:03 AM, sumedh tirodkar <
> sumedhtirodkar at gmail.com>
> > wrote:
> >>
> >> I am using PowerPC 7447A...I am trying to port SA-RTL on PowerPC...
> >
> > What I said earlier was: You need to tell people what cpu you're using,
> what
> > linux kernel, etc etc etc.
> >
> > Fine, we know the CPU.  What kernel are you using?  Is it ancient?
> >
> > I doubt the information below is going to be useful...
> >
> >>
> >> I am using
> >>
> >> bla <function_name>
> >>
> >> from the assembly code to call the function in C file...This i am
> >> doing from interrupt handler of the decrementer...
> >> If any more details are required, please let me know...
> >
> >
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>



-- 
------------------
Sylvain JOYEAU
Freelance Engineer
Software RT-OS R&D
sylvain.joyeau at gmail.com
Tél: +33-(0)667 477 052
"A good idea is one side of the coin. The other side is the practical
usefulness". J. Liedke.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20090223/ba63a495/attachment.htm>


More information about the Linuxppc-dev mailing list