This is the mail archive of the ecos-discuss@sourceware.org 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]

Cortex-M3 kernel failing certain kernel tests.


I'm testing an eCos port to an NXP Cortex-M3 part (very similar to the
existing LPC17xx port), and I'm stuck with some failing kernel tests:

   mutex3
   kmutex3
   stress_threads
   dhrystone   

The rest of the kernel tests all pass.
   
The interrupt controller and system tick timer are all built-in to the
Cortex-M3. That means the only difference between my port my port and
existing ports are some of the setup code, the memory layout, and the
UART used for diag output.

Can I assume that the LPC17xx port passes all the kernel tests?

These tests are run using a very minimal build with the mlqueue
scheduler (no io device drivers, no network, no file support, no
timeslicing).

All four of the failing tests end up hanging.  After the hang, the 1ms
system timer tick dsr continues to run.  The system tick interrupt is
the only one that's unmasked.  I've tried running the tests using
nothing but internal SRAM.  I've tried using external SDRAM.

I've tried disabling all the virtual vector stuff and using a trivial
hard-wired putc() function.  I've tried using different memories for
the application stacks, interrupt stack, and interrupt vector table.

Nothing seems to change: the same four tests keep failing in the same
manner.

I'm beginning to wonder if the common Cortex-M3 code works. Can
somebody say that they've seen the Cortex-M3 code in CVS pass all the
kernel tests?

------------------------------------------------------------------------
FWIW, here's exactly how things fail...


* dhrystone hangs without printing any output.

* stress_threads hangs after printing the version and compile date:

   INFO:<Stress threads test compiled on Sep 18 2013>
   <hangs>
   
* mutex3 and kmutex3 both fail test number 24 and then hang:

   ----- [24] New Cycle: 0x60, Threads 1a inactive, 2a run late, 3a run late -----
   INFO:<Thread 1 running>
   INFO:<Thread 2 running>
   INFO:<Extra thread 2a running>
   INFO:<Thread 3 running>
   INFO:<Extra thread 3a running>
   INFO:<Thread 1 exit>
   INFO:<Checking priority scheme: dynamic-default-inherit>
   INFO:<Extra thread 2a resumed>
   INFO:<Extra thread 2a locked>
   INFO:<Extra thread 2a unlocked>
   INFO:<Extra thread 2a exiting>
   INFO:<Thread 3 exit>
   INFO:<Extra thread 3a resumed>
   INFO:<Extra thread 3a locked>
   INFO:<EFAIL:<Extra thread did not run> Line: 346, File: [...]kernel/current/tests/mutex3.cxx
   <hang>

   ----- [24] New Cycle: 0x60, Threads 1a inactive, 2a run late, 3a run late -----
   INFO:<Thread 1 running>
   INFO:<Thread 2 running>
   INFO:<Extra thread 2a running>
   INFO:<Thread 3 running>
   INFO:<Extra thread 3a running>
   INFO:<Thread 1 exit>
   INFO:<Checking priority scheme: dynamic-default-inherit>
   INFO:<Extra thread 2a resumed>
   INFO:<Extra thread 2a locked>
   INFO:<Extra thread 2a unlocked>
   INFO:<Extra thread 2a exiting>
   INFO:<Thread 3 exit>
   INFO:<Extra thread 3a resumed>
   INFO:<Extra thread 3a locked>
   INFO:<EFAIL:<Extra thread did not run> Line: 353, File: [...]kernel/current/tests/kmutex3.c
   <hang>

-- 
Grant Edwards               grant.b.edwards        Yow! NANCY!!  Why is
                                  at               everything RED?!
                              gmail.com            


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


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