Home › Forums › Mastering STM32 book support forum › error in final launch sequence
- This topic has 26 replies, 2 voices, and was last updated 8 years, 7 months ago by Carminio.
-
AuthorPosts
-
April 13, 2016 at 5:35 pm #2334CarminioParticipant
Carmine qauli sono gli step per disabilitare il semihosting da un progetto esistente?
Ho tolto la macro dal precompilatore, messo il segno di spunta al freestanding e disabilitato nel debugger. Pero’ adesso mi da errori nel debug, cosa mi sono perso?
April 13, 2016 at 5:42 pm #2336Carmine NovielloKeymasterElimina solo la macro OS_USE_SEMIHOSTING e lascia tutto il resto invariato.
April 13, 2016 at 5:45 pm #2338Carmine NovielloKeymasterComunque, se puoi mettimi questo progetto da qualche parte e mandami il link
April 13, 2016 at 6:16 pm #2340CarminioParticipantSi, ti giro un link a Drive dove ti ho messo in un file compresso due progetti. Uno che si chiama USART_Polling e’ quello che ho generato usando CubeMX e aggiungendo il codice necessario, l’altro invece (USART1) l’ho messo su usando integralmente i tuoi sorgenti.
https://drive.google.com/file/d/0B90GMTJ6vZUlZDZLemNkYjlaTjA/view?usp=sharing
La cosa che ho capito e’ che eclipse non riesce a collegarsi alla seriale del micro, in pratica come ti scrivevo non riesco a settare la porta ed infatti quando apro il terminale il pulsante di disconessione e’ disabilitato perche’ di fatto non c’e’ alcuna connessione.
Se pero’ carico i tuoi eseguibili e li vedo con Hyperterminal funziona tutto ok.Carmine grazie ancora
CiaoDavide
April 14, 2016 at 6:57 am #2348Carmine NovielloKeymasterAllora, UART_Polling funziona e quindi non mi sono applicato.
UART1 ha un problema: attivi l’IRQ ma non definisci l’ISR:
1234void USART2_IRQHandler() {HAL_UART_IRQHandler(&huart2);}Quindi ti va nel Default_Handler definito nel vettore di interrupt. Ti basta mettere il debug in pausa e ti accorgi di dove è finito il PC.
Ma sei sicuro che sia fedelmente codice mio? Perché mixa polling mode ed IT mode, e se non ricordo male io le due cose le tenevo separate.April 14, 2016 at 7:02 am #2350Carmine NovielloKeymasterSvelato l’arcano. È si mio codice (anche se non è fedele al testo del libro e devo cambiarlo), ma il file stm32f4xx_it.c non è quello dei miei esempi, dove l’ISR è definita. Perciò con i progetti originali del libro va.
April 14, 2016 at 7:24 am #2352Carmine NovielloKeymasterAllora mi sa che l’origine dei tuoi problemi sono stato io. In pratica, su github il file main-ex1.c conteneva il codice di main-ex2.c e viceversa. Erano stati invertiti gli esempi. Comunque, il problema di UART1 era sempre che mancava l’ISR.
Ho sistemato tutto su github. Grazie per avermi fatto notare la cosa (mi meraviglio che nessuno ad oggi me l’aveva detto).
April 14, 2016 at 8:08 am #2354CarminioParticipantCiao Carmine buongiorno, sono io che devo ringraziare te poiche’ grazie al tuo libro ed al tempo che mi stai dedicando sto imparando tantissime cose. Grazie davvero.
Ho provato a far girare il codice UART_polling che come ti dicevo ieri avevo implementato in prima istanza seguendo le indicazioni che dai sul libro (configurazione periferiche tramite CubeMX e poi aggiuta del codice utente) ed effettivamente funziona solo che l’output della seriale riesco solo a vederlo con Hyperterminal, in pratica credo che il problema sia dovuto al plugin all’interno di eclipse che come supponevi anche tu forse blocca la porta. Ieri non mi ero accorto di questa cosa poiche’ pensando che il mio codice fosse sbagliato mi sono concentrato solo sul codice UART1 che come mi hai fatto notare aveva qualche problema e quindi non riuscivo a vedere la comunicazione sulla seriale neppure con hyperterminal.
A questo punto vorrei chiederti come posso fare a risolvere questo problema con questo plugin. Ieri volevo provare a disinstallarlo per poi installarlo nuovamente ma non sono riuscito a farlo. Cosa mi consigli di fare per usare l’emulatore di terminale all’interno di eclipse?April 14, 2016 at 9:37 am #2356Carmine NovielloKeymasterPurtroppo non ti so dire. L’unica cosa che mi viene da consigliarti e lanciare Eclipse al prompt di comandi con il parametro ‘-consoleLog’, e vedere se sulla console ti esce qualche messaggio di errore. Potrebbe aiutarti a circoscrivere il problema. Qua trovi tutti i parametri alla riga di comando di Eclipse:
April 14, 2016 at 9:42 am #2358CarminioParticipantOk ci provo. Intanto sono riuscito a vedere l’output anche su altri emulatori, compreso putty. Quindi se non riesco a risolvere con questo plugin uso gli emulatori esterni.
Thanx!April 14, 2016 at 9:42 am #2359Carmine NovielloKeymasterOppure stesso da Eclipse, vai in Windows->Show View->Other e trova “ErrorLog”. Qualcosa potrebbe esserci.
April 14, 2016 at 1:05 pm #2385CarminioParticipantCarmine finalmente ce l’ho fatta, ormai era una questione di principio ;).
Guardando nel log di eclipse ho visto che effettivamnte c’era un messaggio che riguardava un errore di mancata enumerazione delle porte COM causato dal fatto che eclipse non riusciva a trovare il path per una dll di java che gestisce un modulo del plugin RXTX.
Quindi mi e’ bastato settare la variabile d’ambiente in windows facendola puntare a queste librerie e finalmente ho la mia bella console in Eclipse ;).Ciao
Davide -
AuthorPosts
- You must be logged in to reply to this topic.