BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   esiste un debugger per la data ram in mplab? (https://www.baronerosso.it/forum/circuiti-elettronici/254691-esiste-un-debugger-per-la-data-ram-mplab.html)

SoldatoSemplice 27 giugno 12 12:43

esiste un debugger per la data ram in mplab?
 
Ciao a tutti, stò cercando di fare il debug ad un mio codice in un dispositivo PIC18F2455, e vorrei vedere, usando il simulatore di mplab in che maniera evolve lo stato di una particolare variabile che ho messo all'interno della data RAM, ma non riesco a trovarne alcuno.

In definitiva la mia domanda si riduce a: esiste qualche strumento nell'mplab che permette di vedere come evolve la data ram, in uno specifico indirizzo, allo stesso modo di come esistono strumenti per vedere in che maniera evolvono i registri speciali (sfr) ?

Grazie

MSchiepp 27 giugno 12 13:40

Certo! E' sufficiente attivare la finestra di Watch dal menu View e specificare il nome della variabile che vuoi monitorare; se invece vuoi vedere delle locazioni specifiche di ram devi attivare la finestra File Registers, sempre dal menu View.

Michele

romoloman 27 giugno 12 13:48

Quoto in pieno Michele.
Inoltre se non lo hai mai provato questo tool è stupendo:

PIC18 Simulator IDE with Basic Compiler, Assembler, Disassembler and Debugger

Almeno per me, nelle varie versioni, è una manna dal cielo.

SoldatoSemplice 27 giugno 12 15:57

Allora, prima di tutto vi ringrazio entrambi comunque ho risolto con una specie di scappatoia, ma non era quello che cercavo.

In realtà il watch è selettivo di una parte molto ridotta della data RAM: la SFR data ram appunto, mentre a me interessava vedere una variabile posta, sempre nella data ram, ma posta all'indirizzo 0x0404, quindi ben lontano dalla SFR.

Ho risolto con una specie di sotterfugio nel senso che: dichiaro una variabile dal nome qualunque, e tramite la direttiva UDATA la posiziono nella data ram proprio all'indirizzo 0x0404, poi con le consuete istruzioni LFSR, FSR0L, INDF0, la manipolo come voglio, e poi con il watch posso accedere alla variabile a cui ho dato il nome qualunque.

Questo però mi risolve il problema solo in parte, perchè io volevo, qualora possibile, vedere magari interi banchi di data ram, un pò come sipuò fare con la program memory nello stesso debugger, mentre in questo modo sembra che io sia costretto a dare un nome univoco ad ogni singolo byte di data ram per poterlo debuggare con il watch.

Lo scopo ultimo per cui mi serve tutto questo è: stò cercando di utilizzare l'USB di questo microcontrollore, e quando l'host invia un dato al mio PIC, questo dato viene memorizzato dal PIC in una regione della sua data RAM che è ben lontana dagli SFR, quindi io volevo accedere con il debugger a questa regione e leggere ciò che ricevo, se le letture sono quelle attese, allora sò che il mio codice funziona, e viceversa.

Per farlo però avrei bisogno di accedere alle letture di ampie parti di data RAM, e speravo ci fosse un qualche sistema di debug apposito, non posso creare pletore di nomi di variabili da associare ad interi banchi di RAM, per doverle poi leggere separatamente con il watch, che funziona fino a quando le variabili sono poche, non sò se mi sono spiegato, comunque grazie per l'aiuto.

@romoloman
Ora gli dò un'occhiata non lo conoscevo, ma grazie anche a te.

MSchiepp 27 giugno 12 17:16

E' tanto che non uso piu' MPLAB, ma mi sembra di ricordare che SFR sono gli Special File Register, mentre dal menu view puoi abilitare la visualizzazione di File Register che è la memoria ram a disposizione dell'utente.

Michele


Tutti gli orari sono GMT +2. Adesso sono le 07:37.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002