Problem with decrementer interrupt

sumedh tirodkar sumedhtirodkar at gmail.com
Tue Feb 24 05:02:04 EST 2009


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.
>



More information about the Linuxppc-dev mailing list