Brytpunkter i MPLab

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Brytpunkter i MPLab

Inlägg av vfr »

När jag kör brytpunkter i ICD2:an under MPLab (assembler) så stannar alltid programmet på raden efter brytpunkten, inte på samma rad. I alla andra miljöer jag kört, oavsett språk, så stannar programmet innan raden med brytpunkten exekveras. Det har alltid varit så här i MPLab, och med tiden har jag vant mig vid det. Till viss del. Men känns rätt avigt.

Är det någon som vet om det verkligen skall vara så? Har jag missat något i dokumentationen, eller? Är det bara jag som tycker det känns avigt?
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Brytpunkter i MPLab

Inlägg av bearing »

I simulatorn stannar den väl innan brytpunkten?

ICD2-Debugern har jag inte använt så mycket. Tänkte aldrig på att den stannade efter brytpunkten. Kanske har med hårdvaran att göra.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: Brytpunkter i MPLab

Inlägg av JimmyAndersson »

vfr:
Det är inte så att det bara ser ut som att den stannar efter brytpunkten?
Markören (pilen) stannar på raden där man har satt brytpunkten, men det som står på den raden utförs inte.

T.ex:

Kod: Markera allt

1         movlw     h'FF'
2         movwf    TRISA
3
4         nop
5
6  loop   goto loop
Sätter man brytpunkten på rad 4 och kör från rad 1 så stannar den på rad 4 utan att ha brytt sig om "nop".
Trycker man F7 ("step into") så går det en klockcykel (nop'en) och så stannar den på rad 6,
redo för att gå in i loopen när man trycker F7 eller F9 (run).


edit: Förtydligade lite.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Brytpunkter i MPLab

Inlägg av vfr »

Jag har faktiskt inte kört simulatorn på väääldigt länge, eftersom jag haft ICD:n. Däremot är jag ganska säker på att den gamla emulatorn betedde sig likadant. Jag kommer inte ihåg vad den hette, men det var en PIC16 ICE med dotterkort för 16C74.

Hmm, jag får nog göra som jag själv förespråkar, ett testcase som jag testar med simulatorn. Just för att se om simulatorn gör samma sak. Men om två ICE:ar har gjort det, så är väl chansen ganska stor att även simulatorn gör det. Jag får försöka hinna med det imorgon.

Edit: Jimmy, nej den har verkligen utfört den raden som den stannar på. Det är precis så som i din sista föklaring med rad 4 och rad 6, som jag tycker att den borde göra.
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: Brytpunkter i MPLab

Inlägg av JimmyAndersson »

Skumt...
Jag letade i inställningarna men hittade inget som kan tänkas påverka detta.

Berätta gärna vad du kommer fram till i testcaset. :)

off-topic:
Här flyter kvällens kodsession ganska fint. Har precis avslutat kodandet/testet av en subrutin och ska ge mig på nästa (2 av 3 för i kväll). :)
dangraf
Inlägg: 530
Blev medlem: 9 juni 2003, 15:30:56
Ort: göteborg

Re: Brytpunkter i MPLab

Inlägg av dangraf »

Jag har samma problem. Speciellt när man debuggar i C så kan det vara väldigt störigt när man hamnar i en subrutin som man egentligen skulle vilja stega förbi. Detta gäller både c-18 och C30.

Jag frågade microchip:
The first problem that occur for me is that when I place the breakpoint in the main.c file and run the code, it automatically jupms into the sub-routine. This makes it hard to debug routines that has a while(wait_for_something) inside, because it's not possible to add an extra breakpoint at the "return" in a void function.
svaret jag fick på frågan var:
This is a limitation of the debugger and is mentioned under limitation.
Breakpoints may skid (not halt on the instruction where the breakpoint is located) based on device and type of memory on which they are set, as described below. This is called skidding and is normal. You can easily avoid this by using "Nop"s.
An example:

Nop(); // set breakpoint here
Callingfuction(); // instead of here

This has been reported already and we are in the process of rectifying it. The newer versions of MPLAB IDE should have some kind of fix for this. In the meantime it seems like you already know the workaround.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Brytpunkter i MPLab

Inlägg av v-g »

Tror ni att NI har problem, mitt MPLAB hoppar över mina breakpoint :shock: Klickar jag ur och sen i dem igen så fungerar det, högst irriterande. Sen vägrade den att hoppa in i interuptrutinen så fort jag ändrat i den :wall:

Funderar på att installera om hela skiten :humm:

Snart kommer någon som tappat all sin kod :mrgreen:
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Re: Brytpunkter i MPLab

Inlägg av JimmyAndersson »

Ah, du har *det* felet. Det brukar uppstå när man har slitit ut brytpunkterna. Då bryts de på mitten och fungerar inte. :)

Kanske inte :D , men det låter som ditt MPLAB skulle må bra av en ominstallation.
Det tar ju inte många minuter alls att installera om och göra inställningarna så man får allt som man vill.

Förresten, vad kör ni för version? Jag kör v7.60.
Installerade om det för några dagar sedan pga att MPLAB envist försökte kompiliera min asm-kod med C(18)-kompilatorn... :dead:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Brytpunkter i MPLab

Inlägg av sodjan »

> Förresten, vad kör ni för version? Jag kör v7.60.

Eller, för att fomulera om frågan, varför inte alltid köra den senaste ?
OM det inte är något uppenbart större fel med den, så klart...
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Brytpunkter i MPLab

Inlägg av v-g »

Tror jag har 8.2 faktist iaf finns den där C-grejjen med (även om jag inte installerade den(tror jag)) 8.3 är den nyaste så så lång efter ligger jag ju inte.

Det är bara i vissa fall det inte fungerar som det ska även fast det borde det, man ser tex att interupten triggats i INTCON.

Tänkte jag skulle uppgradera till nyaste men fram till nu så fungerar det förrutom ovanstående prima :)
Skriv svar