[elektro] PIC32 ISR szívás
F-I
flaist at gmail.com
Sat Feb 25 19:19:06 CET 2012
Hi!
Most nézem, egy hete megjelent a C32 2.02a verzió, kijavították ezt a hibát.
Persze jó ködösen írják le, nehogy már halandó kikövetkeztesse, mikor is jelentkezik a probléma.
Fixed in v2.02
C32-507:
The compiler now generates Interrupt Service Routine code that uses registers $v0/$v1 to save the HI/LO accumulator pair.
Egy idöben sűrün néztem az upgrade-eket, mind addig, mig egyszer be nem szoptam egy olyat, hogy az új verzótól nem indult el az egyik fejlesztés.
Persze amikor ezt a fejlesztést újból fordítottuk (upgrade után 1-2 hónap), már elfelejtődött, hogy volt upgrade.
Szintén pár napig kerestük a hibát, a lokalizálás után felraktuk Technical Support-ra majd jelezték, hogy tudnak róla, majd javítják.
----- Original Message -----
From: F-I
To: elektro at tesla.hu ; retro at lists.tmp.hu
Sent: Saturday, February 25, 2012 3:53 AM
Subject: PIC32 ISR szívás
Hi!
Már 2 napja szívok egy PIC32 IT rutinnal, most lehet, hogy rájöttem a hibára.
A jelenség az volt, ha betettem egy csupasz (nincs funkció hivás benne) IT rutinba egy osztást vagy szorzást, akkor elszállt progi.
A fura az volt, ha 2-es kerek számmal csináltam akkor nem.
Neztem a disassembly listát, és kiderült, azért mert ilyenkor csak shif-telt.
Néztem tovább, és úgy tünik, hogy az IT rutin az osztó/szorzó regiszterek mentéséhez hasznája az A1 regisztert, amit viszont nem ment el.
Ettől viszont elszáll a fő program.
De, ha van funkció hívás is van az IT rutinban, akkor egy más mechanizmussal menti az összes regisztert, és ilyenkor nem jön elő a hiba.
Nem nagyon vágom a MIPS asm-t, megnézné valaki, hogy jól gondolom-e?
More information about the Elektro
mailing list