Problem with decrementer interrupt

sjoyeau at wanadoo.fr sjoyeau at wanadoo.fr
Tue Feb 24 18:54:14 EST 2009


Sumedh,

I've just noticed you are using the "bla" instruction, which use absolute
target address: are you sure the C code gets even be executed ?
I don't know how the compiler successfully assemble your code because the
binary is supposed to be position independant code (PIC): you should rather
use "bl" instruction (relative branch).

--
sj

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

>
> I have initialised to stack pointer(r1) properly...actually...i went
> thru the object dump...bt when i juz use
>
>  bla <function_name_handler>
>
> the link register is not getting pushed on to the stack in the prolog
> of that function...so the stack is basically not coming into the
> picture...
> @IRQ originator, that doesn't seem to be a problem...
>
> The only thing that i am able to think of is that when i do a "bla",
> the return address is not getting stored in link register...and i m
> not able to figure out why...
>
> Regards,
> Sumedh
>
> On Mon, Feb 23, 2009 at 11:03 PM, sjoyeau at wanadoo.fr <sjoyeau at wanadoo.fr>
> wrote:
> > 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.
> >
>
>
>


-- 
------------------
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/20090224/9a8786f1/attachment.htm>


More information about the Linuxppc-dev mailing list