SW reset v SDCC
Draček Fráček
dracek.fracek na gmail.com
Úterý Duben 15 17:41:50 CEST 2014
SW reset a skok na zacatek programu asi neni uplne to same a tak je otazka
co vlastne chcete.
SW reset jde udelat takto
void reset (void)
{
((void (code *) (void)) 0x0000) ();
}
void main (void)
{
reset ();
}
v assembleru to pak vypada nejak takto
; C prototype: void reset (void);
PUBLIC reset
reset: POP ACC ; pop return address
POP ACC
CLR A ; push 0 as new
PUSH ACC ; return address to stack
PUSH ACC
RETI ; execute return of interrupt
END
respektive alespon v C51 to tak funguje
Skok na zacatek programu, pokud je mysleno skok na zacatek main() tak
teoreticky
void main (void)
{
zacatek:
...
....
a pak nekde
goto zacatek;
Co to je pri zjisteni fatalni chyby? Pokud ji clovek zjisti tak je nejlepsi
ji opravit :-)
Jinak na to je prave Watchdog, ktery procesor resetuje pokud ho vcas
"nenakrmite"
Protoze pokud myslite neco jako osetreni vyjimek try-catch tak to v C na
8051 nenajdete.
Dne 15. dubna 2014 15:20 Jirka Mww <jirka.mww na gmail.com> napsal(a):
> Dobrý den,
>
> při zjištění fatální chyby v programu v C na 8051 bych potřeboval začít
> úplně od začátku.
> Je to trapné, ale nevím, jak to mám udělat. Používám SDCC překladač ale
> nemůžu
> v manuálu najít nic jako skok na začátek programu. Můžete mi někdo
> poradit ?
>
> --
> Zdravi
> Jirka OK1MWW
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20140415/f5a90d72/attachment.html>
Další informace o konferenci Hw-list