Accedere all'ETM di una Nucleo F 401RE tramite codice

Inserire qui richieste sull'uso del forum.
Antennato81
Messaggi: 23
Iscritto il: gio 22 mar 2018, 18:15

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da Antennato81 »

Ciao,
figurati ;-), come si diceva nel film l'uomo bicentenario: "l'uomo è lieto di poter servire" :-D
Comunque sì, nel tuo main chiamerai la tua printf e devi solo aspettarti a terminale seriale le stringhe. Ovviamente debuggala prima perché è sempre codice OpenSource e lascia il tempo che trova in termini di strafalcioni :-D.

;-)
lorenrus
Messaggi: 15
Iscritto il: mar 18 set 2018, 19:54

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da lorenrus »

Antennato81 ha scritto: mar 25 set 2018, 20:31 Ciao,
figurati ;-), come si diceva nel film l'uomo bicentenario: "l'uomo è lieto di poter servire" :-D
Comunque sì, nel tuo main chiamerai la tua printf e devi solo aspettarti a terminale seriale le stringhe. Ovviamente debuggala prima perché è sempre codice OpenSource e lascia il tempo che trova in termini di strafalcioni :-D.

;-)
Dopo una discreta assenza eccomi ancora, ma sono stato impegnato tra lavoro e università.
Essendo che i due file printf.h e printf.c li devo includere nel mio progetto mi è sorta una domanda.
Io sto utilizzando il tool IAR.
Ho inizializzato la porta seriale tramite il programma STM32Cube Mx.
Quando apro il progetto su IAR avrò tre cartelle principali:
1) Application
2) Drivers
3) Output

le prime due hanno delle altre sottocartelle che sono rispettivamente:
1.1) EWARM
1.2) Users

2.1) CMSIS
2.2) STM32F4xx_HAL_Driver

Ora mi chiedevo dove fosse più corretto inserire questi due file (printf.h e printf.c ). Essendo che nella 2.2) è presente il file .h relativo alla uart pensavo di inserirlo li. Che ne pensi ?

Grazie
Antennato81
Messaggi: 23
Iscritto il: gio 22 mar 2018, 18:15

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da Antennato81 »

Ciao lorenrus,
puoi salvare il tuo codice o nella cartella Users oppure creartene una tua dove mettere il codice creato.
Ciao a presto
tba.free
Messaggi: 33
Iscritto il: mer 21 mar 2018, 19:58

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da tba.free »

Non ho ben capito se utilizzi il C classico o qualche variante ma se non ho capito maile hai bisogno di accedere al valore della memoria prelevato in qualche registro e da quello che vedo non è il metodo giusto. Anche l'uso della printf è errato.

L'assegnazione di un indirizzo di memoria nel C puro può essere fatta solo tramite & ad un puntatore.

int *p;
int y = 5;

p = &y; //assegna l'indirizzo di memoria di y a p e non il valore 5

L'uso della printf invece dovrebbe avere questo formato a seconda di cio che si vuole stampare:

printf("Indirizzo di memoria di y: %p", &y);

printf("Valore di y: %d", y);

printf("Valore di y dal puntatore p: %d", *p);



-- Output:

Indirizzo di memoria di y: 0x7ffd5076a464
Valore di y: 5
Valore di y dal puntatore p: 5
lorenrus
Messaggi: 15
Iscritto il: mar 18 set 2018, 19:54

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da lorenrus »

tba.free ha scritto: gio 1 nov 2018, 22:05 Non ho ben capito se utilizzi il C classico o qualche variante ma se non ho capito maile hai bisogno di accedere al valore della memoria prelevato in qualche registro e da quello che vedo non è il metodo giusto. Anche l'uso della printf è errato.

L'assegnazione di un indirizzo di memoria nel C puro può essere fatta solo tramite & ad un puntatore.

int *p;
int y = 5;

p = &y; //assegna l'indirizzo di memoria di y a p e non il valore 5

L'uso della printf invece dovrebbe avere questo formato a seconda di cio che si vuole stampare:

printf("Indirizzo di memoria di y: %p", &y);

printf("Valore di y: %d", y);

printf("Valore di y dal puntatore p: %d", *p);



-- Output:

Indirizzo di memoria di y: 0x7ffd5076a464
Valore di y: 5
Valore di y dal puntatore p: 5
Ciao grazie per la risposta

Sul puntatore si quello che dici è corretto ma io semplicemente non devo assegnare un indirizzo di memoria come fai tu con: p = &y.

Come ho detto negli altri messaggi io avevo bisogno di vedere il contenuto di un indirizzo che già ho. E' per questo che ho assegnato ad un'altra variabile il contenuto presente in quell'indirizzo e non l'indirizzo in cui è salvato il contenuto.

Ma il mio problema era usare la printf senza un kit esterno di debug e come illustratomi dall'utente Antennato 81 ho dovuto creare una seriale casalinga
.

Grazie
lorenrus
Messaggi: 15
Iscritto il: mar 18 set 2018, 19:54

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da lorenrus »

Antennato81 ha scritto: mer 31 ott 2018, 22:10 Ciao lorenrus,
puoi salvare il tuo codice o nella cartella Users oppure creartene una tua dove mettere il codice creato.
Ciao a presto
La printf funziona bene dopo le modifiche. Il puntatore mi punta correttamente all'indirizzo desiderato. E anche il contenuto è quello presente in quella locazione di memoria. Dico questo perchè ho aperto la finestra di tutti i registri della memoria e nel mio indirizzo ho proprio il contenuto da me visualizzato. Ora un piccolo inconveniente è il seguente: Se voglio modificare il contenuto di tale indirizzo di memoria non me lo modifica nel modo corretto.
Facendo un esempio:

Inizialmente leggendo il contenuto del mio indirizzo ho:

unsigned int +pointer = 0x12

Se lo modifico, ad esempio, con:

unsigned int var = 0x1

*pointer = var;

mi aspetto di trovare nel contenuto di pointer invece di 0x12, 0x1.

Sto sbagliando qualcosa?

Inoltre quando nel tool di IAR sempre dopo aver lanciato il debug vado ad aprire la finestra della memoria,anche sopra citata, se riuscissi a modificare il contenuto di pointer dovrebbe modificarsi anche nella finestra della memoria?

In riferimento ai due allegati.
Le configurazioni che si visualizzano sono quelle che ho trovato all'apertura del programma. Volevo sapere se erano corrette , soprattutto l'allegato in cui si parla del driver del dubugger, li c'è scritto ST-LINK, ma io non lo sto usando.



Grazie di tutto
Allegati
2.PNG
2.PNG (24.14 KiB) Visto 5088 volte
1.PNG
1.PNG (32.62 KiB) Visto 5088 volte
lorenrus
Messaggi: 15
Iscritto il: mar 18 set 2018, 19:54

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da lorenrus »

Qualcuno mi può aiutare ?

Grazie
tiziao
Messaggi: 4995
Iscritto il: sab 17 mar 2018, 9:23
Contatta:

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da tiziao »

lorenrus ha scritto: ven 16 nov 2018, 22:09 Qualcuno mi può aiutare ?

Grazie
Ciao,
occorre avere un poco di pazienza... Antennato probabilmente è impegnato... non ha risposto alle mail di lavoro
lorenrus
Messaggi: 15
Iscritto il: mar 18 set 2018, 19:54

Re: Accedere all'ETM di una Nucleo F 401RE tramite codice

Messaggio da lorenrus »

tiziao ha scritto: sab 17 nov 2018, 9:29
lorenrus ha scritto: ven 16 nov 2018, 22:09 Qualcuno mi può aiutare ?

Grazie
Ciao,
occorre avere un poco di pazienza... Antennato probabilmente è impegnato... non ha risposto alle mail di lavoro
Ma si certo ci mancherebbe non intendevo lamentarami, anzi non mi permetterei mai. Era solo per stimolare il resto del pubblico del forum :)

In ogni caso chiedo scusa non era mia intenzione.
Rispondi