[ECOS] Question about 'plf_abort_isr' handler

Sergei Gavrikov w3sg@SoftHome.net
Fri Jan 19 14:49:00 GMT 2007


Hello eCos veterans,

I did found one cool thing was applied for some (old?) targets

<plf>_misc.c:<plf>_abort_isr(...)

and that ISR handler has the 3rd parameter (HAL_SavedRegisters *regs).

It seems (I don't known) that is a deprecated feature, but I'd liked it,
because I have no JTAG for my target, my question is, What is a modern
fashion for such a CTRLC_SUPPORT? I do find this is a nice alternative
method to wake up GDB ;) My target does have a button had been wired to
an EXTINT.

I did this, look at that, please, and it works for me (but it seems that
I lose the highest CPU frame info)r. What did I miss?

On Press that `Abort' button, I get in GDB

    Program received signal SIGINT, Interrupt.
    [Switching to Thread 3]
    cyg_hal_user_break (regs=0x0) at current/src/hal_misc.c:138
    138 CYGARC_HAL_GET_RETURN_ADDRESS_BACKUP(_cyg_hal_compiler_dummy);
    Current language:  auto; currently c
    (gdb) bt
    #0  cyg_hal_user_break (regs=0x0) at current/src/hal_misc.c:138
    #1  0x810192cc in olpcl2294_abort_isr (vector=14, data=0)
        at current/src/olpcl2294_misc.c:84
    #2  0x81010430 in IRQ ()
    #3  0x81010430 in IRQ ()

This is my implementation

    #ifdef CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
    static cyg_interrupt abort_interrupt;
    static cyg_handle_t abort_interrupt_handle;

    static cyg_uint32
    myplf_abort_isr (cyg_vector_t vector, CYG_ADDRWORD data)
    {
        cyg_hal_user_break ((CYG_ADDRWORD *) 0);
        cyg_drv_interrupt_acknowledge (CYGNUM_HAL_INTERRUPT_EINT0);
        return CYG_ISR_HANDLED;
    }
    #endif

any help would be appreciated

Thanks,

      Sergei

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