This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: DSR problem


    1.  Do we need ecos kernel to process DSR ?

Yes, at least you should select CYGPKG_KERNEL and
CYGFUN_HAL_COMMON_KERNEL_SUPPORT in standard configuration(see also
vectors.S file).

    2.  When I receive a character on serial port, my tx
         ISR returns, CYG_ISR_CALL_DSR

Unless you include eCos kernel package, basic package only support ISR and C
driver API services.

    3.  But the DSR are not called at all.

dito.

    4.  Can any one, explain me,  who takes care of
         calling DSR's in the absence of ECOS kernel

In my case, i simply insert following line into vector.S to enable calling
interrupt_end function which implement DSR service.

#define CYGFUN_HAL_COMMON_KERNEL_SUPPORT     // hack to add DSR support in
basic package
#ifdef CYGFUN_HAL_COMMON_KERNEL_SUPPORT
        // The return value from the handler (in r0) will indicate whether a
        // DSR is to be posted. Pass this together with a pointer to the
        // interrupt object we have just used to the interrupt tidy up
routine.

                              // don't run this for spurious interrupts!
        cmp     v1,#CYGNUM_HAL_INTERRUPT_NONE
        beq     l17f
        ldr     r1,.hal_interrupt_objects
        ldr     r1,[r1,v1,lsl #2]
        mov     r2,v6           // register frame

        THUMB_MODE(r3,10)

        bl      interrupt_end   // post any bottom layer handler
                                // threads and call scheduler
        ARM_MODE(r1,10)
	.global l17f
l17f:
#endif

It's work well.

Regards,

H.Shimizu


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]