Yahoo Groups archive

Lpc2000

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

Message

Re: [lpc2000] Re: ARM_UCOS port and the use of stmfd/ldmfd

2005-09-21 by 42Bastian Schick

David Hawkins <dwh@...> schrieb am Tue, 20 Sep 2005 17:33:45 
-0700:

>
>> I guess you could do that, but that would add extra overhead to the
>> SWI calls.
>>
>> AFAIK, the problem only applies to a few encodings of ldm/stm that you
>> don't use in normal use anyway. Therefore I don't see much need to
>> jump through hoops to accomodate it.
>
> Thats what I am trying to determine.
>
>> For calling APCS compilant (ie. C generated isrs) you do not have to
>> save all registers, only r0..r3. The called function will save any
>> other registers it needs itself.
>
> Right, but if you are running an RTOS, then the C generated ISR
> code is insufficient, since a context switch may occur as a
> consequence of the interrupt.

For most applications the interrupt latency is interresting, so
commercial RTOS' save at first only the registers a APCS compliant
function will not save (i.e. r0-r3, lr_sys,lr_irq).
Only if the ISR causes a re-schedule the rest is also saved.

The reason is simply, that not every ISR causes a re-schedule and the time
in front of the ISR should be kept short.


-- 
42Bastian Schick

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.