avr-gcc och volatile .noinit

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Re: avr-gcc och volatile .noinit

Inlägg av stekern »

Jag tänkte också dra upp bootloader exemplet med eqlazer hann före.
Givetvis kan man sparka igång en bootloader utan att resetta, men det kan i vissa fall vara ett enligt mig ok sätt att sparka igång den.
Jag tror att iskapsylen menar att en reset aldrig ska förekomma "windows style" dvs som ett led när tex något gått fel eller för att processorn inte gör vad den ska.
Dels rätt men även här har eqlazer en poäng med hänglsen och svångrem analogin.

Jag tror dessutom att anledningen till att den som ursprungligen skrivit det här programmet satte .noinit på klockvariabeln var just detta, han ville ha en extra gardering till att klockinställningen inte sabbas om något oförutsett skulle ske och watchdogen kickar in.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: avr-gcc och volatile .noinit

Inlägg av Icecap »

Att avkänna att en WDT har blivit utlöst kan självklart vara viktigt, om inte annat så för att kunde markera ATT den har utlösts och att man därför måste gå igenom mjukvaran igen.

Och en reset i samband med en bootloader-omprogrammering kan vara vettig faktisk då det kan vara den enda väg att t.ex. disabla en WDT, beroende på hårdvara såklart men nästan alla µC är ju så.

Jag har programmerat några projekt som startar upp beroende på hur senaste reset blev utlöst men reset under "normal" drift är ett fel i mitt tycke!

Inprogrammering av kod, vara sig det är med bootloader eller på annat sätt, är inte en driftsituation.
Skriv svar