[ECOS] CYG_ASSERTCLASS() fail when use wallclock->dallas->ds1307 device driver
Fri Oct 20 09:02:00 GMT 2006
As I use the ds1307 driver on my target, I configure to use the generic
I2C API to access the ds1307 chip.
the application failed in a assertion. I debugged it and find the cause, see
the call stack below:
-CYG_ASSERTCLASS( this, "Bad this pointer");
-line198: if( locked && owner == NULL ) return false;
Here, 'owner' of the mutex is NULL, cause assertion failed.
Since the driver is initialized in class construction stage before scheduler
runs, there is no thread context yet, then the owner is a 'NULL' thread.
So how to handle it?
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss