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.
Message
Re: IRQ / FIQ status register general question.
2006-01-31 by jayasooriah
Attachments
- No local attachments were found for this message.