ICD2 - breakpoints

andrej jancura hw_aj@zoznam.sk
Pondělí Prosinec 1 17:43:21 CET 2008


To je prave podla mna ten omyl. Myslim si, ze to je riesene tak, ze to 
pozera len opkod zapis do pamati a ma to registre kde su ulozene 
adresy. Aspon takto by som to riesil v HW emulatore.  ICD je na 
podobny druh dbg nevhodne, pretoze ma len jeden register na stop, a to 
tiez len pre konkretne adresy. Uz si to presne nepamatam, ale myslim 
si, to advanced znamena len to, ze tie stop-registre su styri.

Pokial potrebujes naozaj nieco slusne robit, musis si pozriet nejaky 
HW emulator. Asix mal pre PIC16, ale len 8-pinove. ICD je len low cost 
pre bastlicov, ale na profi pracu sa nehodi. Mimochodom to co 
poskytuje robila uz stara HC11 a vsetky novsie HC08. Tam sa da pouzit 
dbg monitor bud ten v eprom, alebo si ho natiahnut do RAM a mal presne 
take iste obmedzenia ako ICD. Realne prerusenia sa tym nedali 
debugovat tiez.

A.


On Mon, 1 Dec 2008 13:32:28 +0100
  "Michal HW" <michalgregor@centrum.cz> wrote:
> Je to psane v C - vypis pameti. Prvni radek zapisuje hodnotu(0x272 - 
>0x00) do WREG,
> ICDII neni nikde popsan. Rada 16 ma specielni registr pro adresu 
>breakpointu. Ale jak je to delane na 18xxxx jsem nezjistil. Podle mne 
>tam ale pro breakpointy v RAMce musi byt nejaka HW podpora.
> 
> Michal Gregor
> 
> 
>  ----- Original Message ----- 
>  From: andrej jancura 
>  To: HW-news 
>  Sent: Monday, December 01, 2008 12:56 PM
>  Subject: Re: ICD2 - breakpoints
> 
> 
>  No len jedna poznamka, WREG ma na prvom riadku hodnotu >254 ? Skus 
>si 
>  tam napisat MOVLW...
> 
>  Na dbg interrupt rutiny by som ICD nepouzil, nakolko sa jedna o sw 
>  emulovanie a to hold v isr moc dobre nemusi nechodi.
> 
>  A.
> 
> 
> 
>  On Mon, 1 Dec 2008 12:35:20 +0100
>    "Michal HW" <michalgregor@centrum.cz> wrote:
>  > 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 
>  > 
>  _______________________________________________
>  HW-list mailing list  -  sponsored by www.HW.cz
>  Hw-list@list.hw.cz
>  http://list.hw.cz/mailman/listinfo/hw-list




Další informace o konferenci Hw-list