Yahoo Groups archive

Lpc2000

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

Message

Re: [lpc2000] Re: IRQ / FIQ status register general question.

2006-02-01 by Sten

Hi,

in your case it works. No doubt!

jayasooriah wrote:
> 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).
This is a special case in which you must setup FIQ state to use it.

> 
> 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.
Ok, I think I understood! You want to modify your special pointers/counters, used by the FIQ, from a
IRQ for example. This is quite tricky!

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


-- 
/************************************************
 Do you need a tiny and efficient real time
 operating system (RTOS) with a preemtive
 multitasking for LPC2000 or AT91SAM7?

   http://nanortos.net-attack.de/

 Or some open-source tools and code for LPC2000?

   http://www.net-attack.de/

************************************************/

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.