
On Tuesday 12 January 2010 23:27:28 jiri.kubias@gmail.com (sysless@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@cmp.felk.cvut.cz www: http://cmp.felk.cvut.cz/~pisa university: http://dce.felk.cvut.cz/ company: http://www.pikron.com/ ---