From: Jonathan Larmour <jifl@jifvik.org>
To: David Somerton <dsomerton@commtech.com.au>
Cc: ecos-maintainers@ecos.sourceware.org
Subject: Re: posting requests for help
Date: Tue, 23 May 2006 11:34:00 -0000 [thread overview]
Message-ID: <4472ED5F.8040801@jifvik.org> (raw)
In-Reply-To: <B967C997C2BE2D48A6BBE14078F79BD6014199C9@ntserver.commtech.com.au>
David Somerton wrote:
> Hello,
>
> where i work eCos is used.
> there is now nobody left from the original people who chose this OS.
> we may not subscribe to mailing lists.
> i read the faq on sending to the list without subscribing, but could
> not understand it at all.
It's quite simple - just send to the list, but warn people to include you
in their replies (although you can also view the online web archives in
case someone didn't).
> i only want to ask a question, why do you make it so difficult.
> not everybody is a ecos or linux genius.
I think thousands of subscribers and larger numbers of eCos users can
testify to the fact you don't need to be a genius.
> the question, in case you feel like posting it for me is
>
> ASSERT FAIL: <19>serial.c[1128]serial_data_xmt_req() Attempting new
> block transfer while another is running
> ASSERT FAIL: <19>serial.c [1128] serial_data_xmt_req()
> Attempting new block transfer while another is running
>
> this happens when enabling rts/cts handshaking.
>
> I have tried looking at the source for serial.c, but i cannot
> comprehend it.
> It seems extremly complex for a serial driver.
It's a generic driver supporting a variety of hardware features, in a
variety of ways. Bear in mind that if no-one is reporting the same problem
as you, the chances are that your problem is not in generic code. It is
probably in your underlying hardware driver.
It is worth noting that in your case, whoever wrote the underlying hardware
driver chose to use block transfer mode, not the more normal
character-by-character mode. That already makes it more complex than a
standard serial driver. I think I could easily infer from the message that
serial_data_xmt_req() has been called when another xmt block transfer is
running. The underlying driver should be following every
serial_data_xmt_req() call with serial_data_xmt_done(), but this time it is
clearly doing serial_data_xmt_req() twice instead which is wrong, hence the
assert.
Try setting breakpoints on serial_data_xmt_req, serial_data_xmt_done and
cyg_assert_fail (to catch the state when the assert triggers) and analyse
what you see, bearing in mind that it is the underlying driver that you
really need to be debugging, not the generic serial.c stuff.
Jifl
--
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine
prev parent reply other threads:[~2006-05-23 11:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-23 1:55 David Somerton
2006-05-23 11:34 ` Jonathan Larmour [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4472ED5F.8040801@jifvik.org \
--to=jifl@jifvik.org \
--cc=dsomerton@commtech.com.au \
--cc=ecos-maintainers@ecos.sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).