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]

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


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