Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Domanda Su Interrupt


Messaggi consigliati

Inserito:

Ciao,volevo sapere se qualcuno mi poteva dare una risposta a questa domanda:

se io scrivo una riga di programma un istruzione che mi attiva un interrupt ,quando l'interrupt finisce il programma riprende le sue istruzioni dall'ultima riga che aveva lasciato o quella successiva??

esempio : riga 75 istruzione che attiva l'interrupt

inizio interrupt

fine interrupt

riga 76 ripresa del programma ,giusto ??

grazie,Mauro


Inserita:

Questo dipende dal tipo di core utilizzato. Alcuni processori servono gli interrupt prima dell'esecuzione dell'istruzione alcuni dopo. Generalmente abbiamo tre fasi principali denominate FETCH,DECODE,EXECUTE. In molti processori il campionamento avviene prima della fase di FETCH.

Ovviamente qui stiamo parlando di "asintoti" ... nel senso .... stiamo analizzando il caso di interrupt campionato a cavallo di due fetch successive di istruzioni macchina.

Per i moderni processori la cosa si complica un pochino. Se il processore ha una tecnologia pipelined (coda di istruzioni), il campionamento dell'interrupt puo' avvenire durante la fase di esecuzione effettiva dell'istruzione anche se questa e' gia' stata decodificata all'interno della pipeline, anche qui non ci sono regole precise, dipende dall'architettura.

Se parli di linguaggi ad alto livello (C,Basic etc..) allora non c'e' una corrispondenza diretta tra la riga che hai scritto ed il codice generato. Una semplice riga di "C" ti puo generare piu' istruzioni macchina e l'interrupt puo' scatenarsi anche all'interno delle stesse istruzioni che compongono una riga di codice

Poi dipende da che tipo di interrupt stai generando, puoi generare interrupt hardware o software. Poi entrano in gioco schemi di priorità e latenze delle periferiche ...

Se hai un requisito specifico da seguire magari spiega meglio il tuo problema ...

RT

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...