Routine Timer Interrupt Service su un computer che esegue ospite a una velocità di 10 microsecondi o più veloce

StackOverflow https://stackoverflow.com/questions/1175164

  •  19-09-2019
  •  | 
  •  

Domanda

Sto cercando di eseguire il seguente pseudocodice ad una velocità di 10 microsecondi o più veloce su un computer host (512 MB di RAM, processore Intel da 2,5 GHz Pentium 4, ecc) in esecuzione su un sistema operativo Windows XP:

int main(void)
{
    while(1){};
}

Interrupt service routine:
every 10 microseconds, printf("Hello World");

Sono consapevole del fatto che ci sono timer MFC, ma non sono funzionali se i timer devono innescare più veloce di 1 ms. Quale sarebbe il metodo più semplice per realizzare ciò che gli obiettivi della mia pseudocodice? Grazie in anticipo.

È stato utile?

Soluzione

Non sono sicuro che si può ottenere questo tipo di prestazioni di Windows XP, almeno non in modo affidabile da userland. Potrebbe essere necessario eseguire il codice come driver del kernel, o meglio ancora indagare utilizzando un sistema operativo real-time come Xenomai invece.

Altri suggerimenti

Ignora questo - I micro come milli mis-letto nella domanda Siamo spiacenti:

titolo

Come dite che siete su Windows, il MultiMedia Timer è la strada da percorrere.

o il più recente TimerQueue TimerQueue

possono essere in grado di ottenere la risoluzione di 1 ms, a seconda dell'hardware.

Buona fortuna

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top