2017-10-06 12 views
1

Tous, Dans mon code, je veux entrer WFI sur ARM V8. Je cours l'application sur Linux. J'appelle wfi() et j'attends l'interruption. Existe-t-il un moyen de vérifier si le cœur du processeur est réellement entré en mode WFI?Vérification de ARM WFI

salutations, Ravi

+0

Laissez-moi comprendre. Vous voulez exécuter l'instruction WFI à partir d'un processus en mode utilisateur exécuté sous Linux? Je dois juste demander, "Pourquoi?" Et qu'attendez-vous qu'il se passe? –

+0

mettre une déclaration d'impression après ou dans une boucle avec un compteur, etc ... –

Répondre

0

Si vous utilisez l'espace noyau code- privilégié code- vous pourriez probablement passer un GPIO (de préférence avec FGPIO) avec une seule instruction de montage avant et après l'instruction wfi.

Si vous ne courez pas dans l'espace noyau, vous voudrez utiliser UIO pour faire la même chose mais ce serait très compliqué.

+0

J'essaye d'obtenir cette information dans l'espace noyau seulement. Vous voulez obtenir des informations au niveau du système sur la fréquence de réveil du cœur et les interruptions qui le provoquent. – Ravikumar

+0

Eh bien, placez un GPIO avant qu'il ne dorme, puis réglez haut quand il se réveille. Utilisez un déclencheur sur un oscilloscope pour voir combien de temps il est endormi/éveillé. Attention à votre bande passante. OU, si vous ne pouvez pas faire cela, alors: avant de passer en mode veille, capturez la valeur du RTC, puis, quand il se réveille, videz la valeur du RTC. Je ne connais pas le périphérique, mais les RTC font généralement des millisecondes, mais peut-être quelques secondes avec un compteur de sous-seconde arbitraire. Vous devrez vérifier les indicateurs d'état individuels (il existe des registres NVIC globaux pour ARM) pour vérifier quelles interruptions sont marquées. Si cela aide, je peux ajouter ceci à la réponse. –