This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: JFFS2 and cyg_thread_delay
- From: "liu hua" <rongye_liu at hotmail dot com>
- To: andrew at lunn dot ch
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Thu, 29 Jun 2006 11:34:52 +0800
- Subject: Re: [ECOS] JFFS2 and cyg_thread_delay
- Bcc:
Think your help.
When I use ASSERT and trace my ecos-app, it is hanged in Cyg_Mutex::lock()
each time. It may seem be that one mutex is not be initiated. But I cannt
know what it is.
Following is the TRACE result:
TRACE: mlqueue.cxx [ 89]
Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation() {{enter
TRACE: mlqueue.cxx [ 110]
Cyg_Scheduler_Implementation::Cyg_Scheduler_Implementation() }}return void
TRACE: except.cxx [ 95]
Cyg_Exception_Control::Cyg_Exception_Control() {{enter
TRACE: except.cxx [ 107]
Cyg_Exception_Control::Cyg_Exception_Control() }}return void
TRACE: mutex.cxx [ 92] Cyg_Mutex::Cyg_Mutex()
{{enter
TRACE: mutex.cxx [ 130] Cyg_Mutex::Cyg_Mutex()
}}return void
init bitbang i2c bus...ok!
TRACE: clock.cxx [ 87] Cyg_Counter::Cyg_Counter()
{{enter
TRACE: clock.cxx [ 87] Cyg_Counter::Cyg_Counter()
}}RETURNING UNSET!
TRACE: clock.cxx [ 432] Cyg_Clock::Cyg_Clock()
{{enter
TRACE: clock.cxx [ 432] Cyg_Clock::Cyg_Clock()
}}RETURNING UNSET!
TRACE: intr.cxx [ 86] Cyg_Interrupt::Cyg_Interrupt()
{{enter
TRACE: intr.cxx [ 86] Cyg_Interrupt::Cyg_Interrupt()
((vector=51, priority=1, data=009ae0a4, isr=000e1a6c,
dsr=000e1a94))
TRACE: intr.cxx [ 109] Cyg_Interrupt::Cyg_Interrupt()
}}return void
TRACE: clock.cxx [ 838] Cyg_RealTimeClock::Cyg_RealTimeClock()
{{enter
TRACE: intr.cxx [ 395] void Cyg_Interrupt::attach()
{{enter
TRACE: intr.cxx [ 456] void Cyg_Interrupt::attach()
}}return void
TRACE: intr.cxx [ 659] static void
Cyg_Interrupt::unmask_interrupt() {{enter
TRACE: intr.cxx [ 672] static void
Cyg_Interrupt::unmask_interrupt() }}return void
TRACE: clock.cxx [ 838] Cyg_RealTimeClock::Cyg_RealTimeClock()
}}RETURNING UNSET!
TRACE: mutex.cxx [ 216] cyg_bool Cyg_Mutex::lock()
{{enter
ASSERT FAIL: <FFFF>mutex.cxx[320]cyg_bool Cyg_Mutex::lock() Bad this
pointer
ASSERT FAIL: mutex.cxx [ 320] cyg_bool Cyg_Mutex::lock()
Bad this pointer
From: Andrew Lunn <andrew@lunn.ch>
To: liu hua <rongye_liu@hotmail.com>
CC: ecos-discuss@ecos.sourceware.org
Subject: Re: [ECOS] JFFS2 and cyg_thread_delay
Date: Tue, 13 Jun 2006 17:46:59 +0200
On Tue, Jun 13, 2006 at 11:31:13PM +0800, liu hua wrote:
> hi,
>
> I have met a trouble problem when using JFFS2 file system.
>
> My platform is ARM9 , 16M FLASH (Intel 28F128). First, it run eCos with
> JFFS2 nomally (mount/read/write/umount,etc).
>
> But recent I find that when I create a file or write a file, the
> cyg_thread_delay cannot run normally. Before I write a
> file,cyg_thread_delay(100) can delay about 1 second. But after I write
a
> file and close it, cyg_thread_delay(100) or cyg_thread_delay(10000)
return
> without any delay!
>
> What happen? How I solve it? I wish get help from anyone!
You have probably overflowed your stack and corrupted a thread
structure. Enable stack checking in the infra package.
Andrew
_________________________________________________________________
免费下载 MSN Explorer: http://explorer.msn.com/lccn/
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss