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