Re: volani funkci z obsluhy preruseni LPC23xx

pisa@cmp.felk.cvut.cz (sysless@pandora.cz) pisa at cmp.felk.cvut.cz
Wed Jan 13 02:26:51 CET 2010


On Tuesday 12 January 2010 23:27:28 jiri.kubias at gmail.com (sysless at pandora.cz) 
wrote:
> Coz  pro beh aplikace je to jedno, ale hodi se to pri debugovani. Zvetsil
> jsem STACK_SIZE z 0x400 na 0x600 a vysledek je bezezmen.
>
> Jestli najdu nejaky LpcEurobot tak to na nem zkusim, abych vyloucil
> zavislost na HW.
>
>
> Jirka

Zdravím,

tahle změna ničemu nepomůže. IRQ má na klasickém ARMu (ne Cortex-M)
vlastní zásobník. Ten je v sysless nastavený na velmi malou hodnotu
(32 byte). Je potřeba zkusit změnit definici v

sysless/arch/arm/mach-lpc21xx/libs/boot/startup.S

       .equ    IRQ_Stack_Size, 0x00000020

Nebo je potřeba implementovat nested IRQ stack s uložením
potřebných dat z registrů zpět do systémového zásobníku
a přepnout po dobu běhu IRQ do systémového módu.
Pak lze využít paměť alokovanou pro systém/aplikaci a i přijímat
další IRQ. Ovšem návrat je dost komplikovaný znamená maskování IRQ
restauraci registrů IRQ módu, přechod na IRQ mód a z něj návrat.
Takže to má velký overhead.

S pozdravem,

                Pavel Pisa
    e-mail:     pisa at cmp.felk.cvut.cz
    www:        http://cmp.felk.cvut.cz/~pisa
    university: http://dce.felk.cvut.cz/
    company:    http://www.pikron.com/

---


More information about the Sysless mailing list