This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: ref to previous question-'calling path questions, thanks'
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: "Qiang Huang" <jameshq at hotmail dot com>
- Cc: ecos-discuss at sourceware dot org
- Date: 03 Oct 2006 14:57:31 +0100
- Subject: Re: [ECOS] ref to previous question-'calling path questions, thanks'
- References: <BAY103-F2294CFD1B2EF7C2AFE01E5A61C0@phx.gbl>
"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