This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
SMP porting for the ARM architecture
- From: Luca dot Fossati at esa dot int
- To: ecos-discuss at ecos dot sourceware dot org
- Date: Mon, 12 Nov 2007 14:33:09 +0100
- Subject: [ECOS] SMP porting for the ARM architecture
Hello,
I'm working on a simulator platform for multi-processor systems; since we
would like to run eCos on this platform, sone modifications to this OS are
necessary. We have been successfully able to create a new target (by
slightly modifying the ARM-PID one) and there were no problems running
eCos on a single processor environment. We then tried to modify it by
adding SMP support for the ARM processor; this, unfortunately, has proven
more difficult then we thought: even with only one processor (but with
CYGPKG_HAL_SMP_SUPPORT define enabled) the system hangs after a while: it
seems that the interrupt_end routine acquires the lock too many times. In
particular when commenting out line 344 in
packages/kernel/current/src/intr/intr.cxx:
#ifdef CYGPKG_KERNEL_SMP_SUPPORT
Cyg_Scheduler::lock();
#endif
everything seems to work again; with that line after a while, the system
stops calling any DSR routine (that because the lock doesn't decrement to
0) and the execution hangs. Of course I don't think that commenting out
that line is the right solution, but I really have no clue to where the
problem can be. Does anyone has any idea?
Thank you very much
Best Regards
Luca
P.S.
In case you need them, I might try to post online the patches I make to
eCos both to add the new target and to add SMP support for the ARM
processor; moreover by the end of next week we should be able to release
our simulation platform; in the meanwhile some details on it can be found
on trac.elet.polimi.it/resp
Luca
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss