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