Je vois du code qui va lire/écrire des registres périphériques. Je vois que les opérations d'écriture sont toutes suivies avec quelques retards. Il me semble que SW doit attendre que la valeur prenne effet sur HW. Certaines pages Web disent que le registre sera mis à jour à chaque cycle d'horloge. Je suppose que c'est la raison d'attendre. Eh bien, mes questions sont:comment lire/écrire un registre
- Est-ce que l'opération de lecture nécessite également un retard? Si oui, quand SW veut lire/écrire un registre, quelle est la séquence correcte pour le faire? Comme
[DELAY]
tmp = some_register // lire
some_register = tmp + 1 // écrire
[DELAY]
ou
tmp = some_register // lire
[DELAY]
some_register = tmp + 1 // écrire
[DELAY]
si SW ne pas un tel retard après opération d'écriture? Je vois effectivement une opération d'écriture sans que ce délai puisse fonctionner correctement sur un processeur plus lent. Mais lorsque le code s'exécute à un processeur plus rapide, il échoue. Je pense que le délai est raisonnable. J'ai juste besoin d'une explication pourquoi cela fonctionne pour un processeur plus lent.
Je ne suis pas très familier avec la fonctionnalité de registre. Des matériaux ou des liens utiles?
Quelle plate-forme/CPU, x86, SPARC, BBC Micro? : D – Skurmedel
Quel microcontrôleur ou microprocesseur et matériel externe utilisez-vous? – starblue
X86 ............ – woho