This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Timecritical interrupt-debuging ... printf in DSR's ... Cyg_Scheduler_Implementation::rem_thread() ... cyg_assert_fail()
- From: "Oliver Munz" <oli at snr dot ch>
- To: <ecos-discuss at sources dot redhat dot com>
- Date: Mon, 4 Jul 2005 23:45:30 +0200
- Subject: [ECOS] Timecritical interrupt-debuging ... printf in DSR's ... Cyg_Scheduler_Implementation::rem_thread() ... cyg_assert_fail()
- Reply-to: "Oliver Munz" <oli at snr dot ch>
Hi
To debug an USB-driver, I used diag_printf(). Unfortunatly this function
blocks my DSR longer then the USB-specifications allowed to. So I tryed to
send the debug-output over the standard at91-serial-driver, configurated
with a 2kByte buffer.
This works fine a short time and fail:
CYG_ASSERT( ((queue_map & (1<<pri))!=0) == ((!run_queue[pri].empty())!=0),
"Map and queue disagree");
in:
7 cyg_assert_fail() at e:\ecos\packages\infra\current\src\buffer.cxx:737
6 Cyg_Scheduler_Implementation::rem_thread() at
e:\ecos\packages\kernel\current\src\sched\mlqueue.cxx:323
5 Cyg_Condition_Variable::wait_inner() at
e:\ecos\packages\kernel\current\src\sync\mutex.cxx:636
4 serial_write() at
e:\ecos\packages\io\serial\current\src\common\serial.c:362
3 cyg_io_write() at e:\ecos\packages\io\common\current\src\iosys.c:178
I don't know if it's allowed to use the buffered IO from ISR and DSR's. If
everybody know's if it should work or not in threory, let me know.... Im
also intressted in other hints how to debug driveres...
Thanks
Oliver Munz
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss