Ciao ragazzi .
Sto cercando di capire come gestire delle routine di interrupt sul uC in questione.
Per capire come funzionano le cose sto creando un interrupt basato url compare della periferica RTC ogni 3 s , e nella routine di gestione faccio il toogle del LED.
Funziona tutto.
Succede qualcosa di strano quando provo a debuggare. Utilizzo Keil , e andando avanti istruzione per istruzione , sembra non entrare mai nella routine di interrupt.
C'è qualcosa che manco ? qualche impostazione ?
È strano perché nel funzionamento normale funziona effettivamente bene , però mi piacerebbe capire come vedere che sono entrato nelle routine di interrupt anche con il debugger.
Non essendo particolarmente esperto con il debugger , potrebbe tranquillamente essere che mi sono perso qualcosa per strada. Qualcuno ha esperienza in proposito ?
Thanks ;)
ARM Cortex M0 : Debug interrupt
Moderatore:
Paolino
5 messaggi
• Pagina 1 di 1
4
voti
Se esegui il codice passo-passo, il tuo interrupt non viene generato, perche' il debugger ha la precedenza (altrimenti verrebbe interrotto continuamente da innumerevoli interrupt e non si capirebbe nulla).
Se vuoi vedere quando entri nella tua routine di interrupt, basta semplicemente che imposti un breakpoint all'inizio della funzione che gestisce tale interrupt.
Appena l'interrupt viene generato, viene richiamata la funzione e il debugger arrestera' l'esecuzione in corrispondenza del breakpoint. Dopodiche' puoi tranquillamente continuare tu passo-passo come al solito.
Se vuoi vedere quando entri nella tua routine di interrupt, basta semplicemente che imposti un breakpoint all'inizio della funzione che gestisce tale interrupt.
Appena l'interrupt viene generato, viene richiamata la funzione e il debugger arrestera' l'esecuzione in corrispondenza del breakpoint. Dopodiche' puoi tranquillamente continuare tu passo-passo come al solito.
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
0
voti
Ah ok , pensavo si potesse vedere quando veniva generato , andando passa passo e monitorando i registri . ok.
Comunque si , avevo fatto anche quella prova .
Imposto il breakpoint appena all'inizio della funziona di gestione dell'interrupt , faccio partire il debug mode e clicco 'run'. A questo punto mi aspetto che l'esecuzione si blocchi al breakpoint (cioè al primo interrupt) , invece no. E la cosa strana è che il led lampeggia , quindi l'interrupt viene sicuramente chiamato. Solo non riesco a vederlo.
Strano no ?
Comunque si , avevo fatto anche quella prova .
Imposto il breakpoint appena all'inizio della funziona di gestione dell'interrupt , faccio partire il debug mode e clicco 'run'. A questo punto mi aspetto che l'esecuzione si blocchi al breakpoint (cioè al primo interrupt) , invece no. E la cosa strana è che il led lampeggia , quindi l'interrupt viene sicuramente chiamato. Solo non riesco a vederlo.
Strano no ?
Visita il mio sito : http://www.raffotech.altervista.org
0
voti
Penso di aver compreso l'errore. se metto il breakpoint nell'intestazione della funzione , non si ferma mai. Devo metterlo alla prima linea di codice all'interno della funziona stessa.
Una domanda : con il debugger è possibile , con la stessa maniera , anche mandare in sleep il uC e bloccarsi sull'interrupt che lo fa risvegliare ?
Una domanda : con il debugger è possibile , con la stessa maniera , anche mandare in sleep il uC e bloccarsi sull'interrupt che lo fa risvegliare ?
Visita il mio sito : http://www.raffotech.altervista.org
3
voti
pierinter ha scritto:Penso di aver compreso l'errore. se metto il breakpoint nell'intestazione della funzione , non si ferma mai. Devo metterlo alla prima linea di codice all'interno della funziona stessa.
Ehhh... credevo lo sapessi!
pierinter ha scritto:Una domanda : con il debugger è possibile , con la stessa maniera , anche mandare in sleep il uC e bloccarsi sull'interrupt che lo fa risvegliare ?
Puoi mettere i break ovunque, in qualunque funzione di gestione interrupt. Altrimenti a che servirebbe il debugger?
Se funziona quasi bene, è tutto sbagliato. A.Savatteri/M.Mazza
5 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


