This is the mail archive of the
ecos-maintainers@sourceware.org
mailing list for the eCos project.
Re: posting requests for help
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