ICD2 - breakpoints

Michal HW michalgregor@centrum.cz
Pondělí Prosinec 1 12:35:20 CET 2008


Zkousim najit chybu v programu:

 Line  Address  Opcode      Label                  Disassembly

  8546  042C2    C272                   MOVFF 0x272, WREG
  8547  042C4    FFE8                   NOP
  8548  042C6    0F07                   ADDLW 0x7
  8549  042C8    CFE8                   MOVFF WREG, Pocet_B
  8550  042CA    FD3D                   NOP
  8551  042CC    C0B7                   MOVFF Ukazatel, Vstup_P
  8552  042CE    F0BB                   NOP
  8553  042D0    C0B8                   MOVFF Vstup_K, 0xbc
  8554  042D2    F0BC                   NOP
  8555  042D4    C0B9                   MOVFF Vstup, 0xbd
  8556  042D6    F0BD                   NOP
  8557  042D8    EC08                   CALL Sloz_Konec, 0
  8558  042DA    F029                   NOP
  8559  042DC    6E00                   MOVWF 0, ACCESS
  8560  042DE    CD3D                   MOVFF Pocet_B, 0x1

Promenna Pocet_B ma chybnou hodnotu 0x05. Nastavil jsem si Advanced 
breakpoint na zapis hodnoty 0x05 do Pocet_B.

ICDII se zastavi na radku 8553, ktery vubec s Pocet_B nepracuje.

0x272 obsahuje 0. Pocet_B ma 0x05. (Vysledek mel byt 7)

Vypada to ze z preruseni se vrati spatny obsah WREG. Kdyby se v preruseni 
zapisovala hodnota 0x05 do Pocet_B, tak to ICDII zachyti, Nebo ne?
Procesor je 18F8723. ERRATA jsou prazdne, takze chybu s Fast Stack Registrem 
by nemel mit.

Michal Gregor 




Další informace o konferenci Hw-list