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