Stänga av shadow under alla calls och return, PIC18F442?
Stänga av shadow under alla calls och return, PIC18F442?
Skulle vilja att shadowregistren i PIC18F442 inte påverkas alls när man gör en call.
Man kan ju skriva ", 0" på slutet av varje rad i programmet men jag har ju redan gjort runt 500 rader innehållande call och hittar inget sätt att göra det automatiskt så man inte missar någon enda liten rad.
Ideer?
Man kan ju skriva ", 0" på slutet av varje rad i programmet men jag har ju redan gjort runt 500 rader innehållande call och hittar inget sätt att göra det automatiskt så man inte missar någon enda liten rad.
Ideer?
Såhär kan du finna call-raderna som saknar ett komma:
Det ger detta svar:
Om det körs på en main.c som ser ut såhär:
(Om du vill göra sökningen på alla filer i mappen kan du byta ut main.c mot en asterisk. Lägg till -r så söks rekursivt i alla filer i undermapparna.)
Det går säkert att fixa så att ", 0" läggs till på raderna som saknar men det vet jag inte hur man gör.
Kod: Markera allt
>grep -n -H call main.c | grep -v ,
Kod: Markera allt
main.c:7:call label4
main.c:9:call label5
Kod: Markera allt
call label1, 0
nop
call label2, 0
nop
call label3, 0
nop
call label4
nop
call label5
nop
call label6, 0
nop
Det går säkert att fixa så att ", 0" läggs till på raderna som saknar men det vet jag inte hur man gör.
OK. 
Att du hamnar på h'0000' igen kan bero på olika saker.
- En RESET instruktion i koden (inte sannolikt).
- Watchdog timeout. Inte troligt om WDT inte är "på".
- Runaway code, d.v.s att din kod snurrar iväg tills PC "slår runt" till h'0000'.
- BOR. Finns STATUS flaggor som talar om ifall det var det.
- Extern MCLR reset. Finns STATUS flaggor för det också.
Finns säkert några orsaker till...

Att du hamnar på h'0000' igen kan bero på olika saker.
- En RESET instruktion i koden (inte sannolikt).
- Watchdog timeout. Inte troligt om WDT inte är "på".
- Runaway code, d.v.s att din kod snurrar iväg tills PC "slår runt" till h'0000'.
- BOR. Finns STATUS flaggor som talar om ifall det var det.
- Extern MCLR reset. Finns STATUS flaggor för det också.
Finns säkert några orsaker till...