Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: IRQ / FIQ status register general question.

2006-01-31 by jayasooriah

When doing data transfers on FIQ and using FIQ bank (eg a pointers and
a byte count), then you have no choice but to set up, and/or examine
these in "application code" (meaning code not running in FIQ context).

Often completion of transfer triggers a (lower priority) IRQ, and in
this case, the code running in IRQ context peeks/pokes registers in
the FIQ bank by switching to FIQ and then back to IRQ.

Summary: there is nothing wrong at all with switching banks in any
code segment (not just in startup code) provided you leave the
exception in the same state that you entered in.  (You can leave in a
different mode if you know what you are doing but I am not sure the
behaviour can be generalised across all ARM implementations.)

--- In lpc2000@yahoogroups.com, Sten <list@n...> wrote:
> it is allowed to switch context manually, during starup
> for example. But I think it is not recommended to do this
> in application code. You must initialize all modes you
> want to use (FIQ, IRQ, USR, SVR, SYS) or modes that might
> be used (for you) (ABT, UND) during startup.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.