[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