This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: EB40LS ping_test problem
- From: RandyLin at mxic dot com dot tw
- To: ecos-discuss at sources dot redhat dot com
- Date: Wed, 24 Sep 2003 17:59:34 +0800
- Subject: Re: [ECOS] EB40LS ping_test problem
Yes, u are right!
The clocktruth is ok, but tm_basic is not.
I enable ASSERT, and got the message:
================================================================
Init device 'cs8900a_eth0'
ASSERT FAIL: <1>at91_misc.c[243]hal_interrupt_set_level() Invalid level
================================================================
I found the code in if_cs8900a.c:
cyg_drv_interrupt_create(cpd->interrupt,
0, // Priority - what goes here? <== ???
(cyg_addrword_t)cpd, // Data item passed to
interrupt handler
(cyg_ISR_t *)cs8900a_isr,
(cyg_DSR_t *)cs8900a_dsr,
&cpd->interrupt_handle,
&cpd->interrupt_object);
cyg_drv_interrupt_attach(cpd->interrupt_handle);
Is this a bug? hal_interrupt_set_level accept level between 1~7
after change the priority, run tm_basic:
=================================================================
Confidence
Ave Min Max Var Ave Min Function
====== ====== ====== ====== ========== ========
445.88 397.46 708.01 28.58 65% 35% Create thread
65.37 64.45 65.43 0.11 93% 6% Yield thread [all suspended]
53.77 53.71 54.69 0.11 93% 93% Suspend [suspended] thread
54.93 54.69 55.66 0.37 75% 75% Resume thread
61.77 61.52 62.50 0.37 75% 75% Set priority
1.95 1.95 1.95 0.00 100% 100% Get priority
110.35 110.35 110.35 0.00 100% 100% Kill [suspended] thread
65.37 64.45 65.43 0.11 93% 6% Yield [no other] thread
73.23 72.27 73.24 0.03 98% 1% Resume [suspended low prio]
thread
54.87 54.69 55.66 0.30 81% 81% Resume [runnable low prio]
thread
71.75 69.34 72.27 0.52 48% 1% Suspend [runnable] thread
65.37 64.45 65.43 0.11 93% 6% Yield [only low prio] thread
53.77 53.71 54.69 0.11 93% 93% Suspend [runnable->not
runnable]
110.35 110.35 110.35 0.00 100% 100% Kill [runnable] thread
69.34 69.34 69.34 0.00 100% 100% Destroy [dead] thread
166.99 161.13 429.69 8.21 98% 98% Destroy [runnable] thread
281.83 276.37 545.90 9.73 96% 96% Resume [high priority] thread
hangs here....?
I think it block at cyg_semaphore_wait(&synchro) in run_thread_switch_test
();
I am still tracing.
> It's seems that arpintr is not scheduled.
> I think this is the problem, but I don't know why?
> BTW, I change the priority to 3 in pint_test.c cyg_thread_creat()
> because program hangs if priority >=7.
It should like something more fundamental is wrong. Maybe you clock is
not working. Try running the test program clocktruth and tm_basic. See
if they work correctly.
Andrew
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss