[ECOS] Undefined hal_interrupt_stack_call_pending_DSRs

leslie egeus@rocketmail.com
Sun Sep 19 17:12:00 GMT 2004


Hi,

I am using ARME7T. The following defined in my
packages/hal/arm/arch/current/src/vectors.S:

FUNC_START_ARM(hal_interrupt_stack_call_pending_DSRs, r1)
        stmfd   sp!,{r4,r5,lr}
        // Disable interrupts
        mrs     r4,cpsr                 // disable IRQ's
        orr     r2,r4,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
        bic     r5,r4,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
        msr     cpsr,r2
        // Switch to interrupt stack
        mov     r3,sp                   // save old stack pointer
        ldr     sp,.__interrupt_stack
        stmfd   sp!,{r3}                // stored at top of interrupt
stack
        ldr     r2,.irq_level           // current number of nested
interrupts
        ldr     r3,[r2]
        add     r3,r3,#1                // bump nesting level
        str     r3,[r2]
        msr     cpsr,r5                 // enable interrupts

        THUMB_MODE(r1,20)

        bl      cyg_interrupt_call_pending_DSRs


        ARM_MODE(r1,22)

        // Disable interrupts
        mrs     r1,cpsr                 // disable IRQ's
        orr     r2,r1,#CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE
        msr     cpsr,r2

        // Move back to the thread stack.
        ldr     r2,.irq_level
        ldr     r3,[r2]
        sub     r3,r3,#1                // decrement nesting level
        str     r3,[r2]
        ldr     sp,[sp]                 // This should be the saved
stack pointer
        msr     cpsr,r4                 // restore interrupts to
original state

#ifdef __thumb__
        ldmfd   sp!,{r4,r5,lr}          // return
        bx      lr
#else
        ldmfd   sp!,{r4,r5,pc}          // return
#endif // __thumb__
#endif // CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
        
I looked thru the other arch, there are also similar codes defined in
the vectors.S. Is that defining the function in assembly? If vectors.S
is not the problem where else should I probably modify to remedy the
problem? Thanks!

Rgds,
Leslie


--- Gary Thomas <gary@mlbassoc.com> wrote:

> On Sun, 2004-09-19 at 10:34, leslie wrote:
> > hello,
> > 
> > I posted my problem earlier regarding this error I got while
> installing
> > GoAhead Webserver for eCos:
> > 
> > /root/cvs/ecos/packages/kernel/current/src/intr/intr.cxx:595:
> undefined
> > reference to `hal_interrupt_stack_call_pending_DSRs'
> > collect2: ld returned 1 exit status
> > make: *** [webs] Error 1
> > 
> > I was told that the hal_interrupt_stack_call_pending_DSRs
> referenced by
> > the kernel is not defined in my vector.S. 
> > 
> > Surely it was not defined there... How do I define this macro in
> > vector.S? I searched thru the archive there were similar cases but
> no
> > solution. Thanks for the help! 
> 
> Try looking at all of the standard architectures - this is most 
> certainly defined in each of their version of "vectors.S".  e.g.
>   .../hal/powerpc/arch/current/src/vectors.S
>   .../hal/arm/arch/current/src/vectors.S
>   .../hal/mips/arch/current/src/vectors.S
> etc.
> 
> What hardware architecture [i.e. processor] are you using?
> 
> -- 
> Gary Thomas <gary@mlbassoc.com>
> MLB Associates
> 
> 



	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list