This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]