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]

Re: ref to previous question-'calling path questions, thanks'


"Qiang Huang" <jameshq@hotmail.com> writes:

> Thanks gary. But whenever IRQ/FIQ/SWI/other exception occurs ecos
> operating mode will be switched from supervisor mode to
> IRQ/FIQ... mode afterward mode will be switched back to supervisor
> mode ASAP, but I have seen some code which perform saving
> pre-exception mode registers and the routine return_from_exception
> also determine which mode to switched back to (supervisor mode/other
> non-user modes) before returning back from this routine. So what
> happens?
> How to grasp the last few statement in return_from_exception routine
> which will determine the operating mode to switch back to? Thanks a
> lot for your help.

At one point RedBoot was upgraded to be able to load and debug
non-ecos applications. Specifically, applications built with GCC and
newlib. Since it was possible that these applications would switch to
different modes, the exception handling code was changed to preserve
all of the previous CPU mode and restore it. This feature is
irrelevant to ecos, but it doesn't cause any problems either, so it
remain. I believe the Intel XScale releases still make use of it.


-- 
Nick Garnett                                 eCos Kernel Architect
http://www.ecoscentric.com            The eCos and RedBoot experts


-- 
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]