This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Simple serial interrupt question (Atmel AT91)
- To: harri dot siirtola at vtt dot fi
- Subject: Re: [ECOS] Simple serial interrupt question (Atmel AT91)
- From: Jonathan Larmour <jlarmour at redhat dot com>
- Date: Thu, 21 Jun 2001 11:35:06 +0100
- Cc: ecos-discuss at sources dot redhat dot com
- Organization: Red Hat UK Ltd.
- References: <3.0.32.20010611094314.00984ce0@vttmail.vtt.fi>
[ bit late I know ]
harri.siirtola@vtt.fi wrote:
>
> I have my interrupt-driven serial I/O almost working. It uses a DSR routine
> and is modified from PID serial implementation. I try to send a short
> string to this port (AT91X40 port 1, secondary) with cyg_io_write(). The
> problem is:
>
> Running without breaks results to the first two characters to appear at the
> port. Setting a breakpoint to my xxx_serial_putc() gives the whole string,
> char by char of course.
>
> So, what does the breakpoint execution do (with interrupt acknowledge or
> something else) that I should add to my implementation?
With a breakpoint, the serial port uses polled mode, not interrupts, so it
wouldn't ack the interrupt. It would just test the status and read bytes.
> BTW, trying to send the string in a loop, xxx_serial_start_xmit() seems to
> be called once for each cyg_io_write() call but xxx_serial_stop_xmit() is
> called once before the first cyg_io_write() call. What's the role of these
> functions?
start_xmit ensures the transmitter is going. Generally, it makes sure the
"TX holding register empty" interrupt is enabled. stop_xmit disables it
when we don't want to send anything more - otherwise you'll keep on getting
that interrupt while its empty even though you've nothing to send.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine
Come to the Red Hat TechWorld open source conference in Brussels!
Keynotes, techie talks and exhibitions http://www.redhat-techworld.com/