¿Alguien sabe cómo habilitar ARM FIQ?¿Alguien sabe cómo habilitar ARM FIQ?
Respuesta
Además de habilitar o deshabilitar el IRQ/FIQ mientras está en modo supervisor, no hay una configuración especial que deba tener en el ARM para usarlo, a menos que el sistema (que el chip ARM está ejecutando) tenga lo inhabilitó en el hardware (basado en su comentario, este no es el caso, ya que está viendo que el pin de entrada FIQ se maneja correctamente).
Para aquellos que desconocen de los acrónimos, FIQ es simplemente el último vector de interrupción en la lista lo que significa que no se limita a una instrucción de salto como las otras interrupciones son. Eso significa que puede ejecutarse más rápido que los otros manejadores de IRQ.
Las IRQ normales están limitadas a una instrucción de bifurcación, ya que deben asegurarse de que su código encaje en una sola palabra. FIQ, porque no sobrescribirá ningún otro vector IRQ, solo puede ejecutar el código directamente sin una instrucción de bifurcación (de ahí el "rápido").
La línea de entrada FIQ es solo una manera para que los elementos externos activen el chip ARM en el modo FIQ y comiencen a ejecutar la excepción correcta. No hay nada en el ARM que impida que eso suceda, excepto el CPSR.
Para activar la FIQ en el modo de supervisor:
MRS r1, cpsr ; get the cpsr.
BIC r1, r1, #0x40 ; enable FIQ (ORR to disable).
MSR cpsr_c, r1 ; copy it back, control field bit update.
Algo similar se puede hacer para IRQ normales, pero utilizando # 0x80 en lugar de # 0x40.
Soy ingeniero de hardware. Ejecuto la simulación y vi que ARM FIQ está activado al inicio de ARM, pero ARM no responde. Supongo que tal vez el bit CPSR F está de alguna manera deshabilitado? –
@stone, haga la instrucción MRS en la respuesta y vea qué b6 (0x40) está configurado. Probablemente esté deshabilitado. – paxdiablo
si necesita una pila mientras está en la interrupción rápida, necesitará/necesitará configurar la pila de fiq (hay 6 pilas separadas en el brazo). –
El fabricante del chip puede cerrar el FIQ con las extensiones de trustzone.
Trustzone crea un mundo seguro y un mundo normal. El mundo seguro tiene su propio supervisor, usuario y espacio de memoria. La idea es que las operaciones seguras se enruten para que nunca salgan del chip y no puedan rastrearse incluso si escanea las patillas del bus. Creo que en OMAP se usa para algunas operaciones de criptografía.
Encendido Restablecer el núcleo se inicia en modo seguro. Configura el monitor seguro (puerta de enlace entre mundo seguro y no seguro) y en este momento FIQ puede configurarse para enrutarse al monitor. Creo que es el bit SCR.FIQ el que puede establecerse y luego todos los FIQ ignoran el valor de CPSR.F y pasan al modo de monitor. Verifique ARM ARM pero si recuerdo correctamente si esto está sucediendo, no hay forma de que usted sepa de un código OS no seguro. Luego, el monitor reiniciará los registros mundiales normales y realizará un retorno de excepción con PC configurado en el vector de excepción de reinicio.
El núcleo interrumpe el modo de monitor, hace lo suyo y regresa.
Lo siento, no puedo responder en los comentarios, no tengo la reputación suficiente, siempre se puede arreglar eso;), pero espero que vea esta Cuidado
- 1. ¿Alguien sabe algún tutorial stm32 muy básico?
- 2. fsi.exe Ensamblaje: ¿Alguien sabe cómo incrustarlo?
- 3. ¿Alguien sabe cómo google Analytics procesa datos?
- 4. virtualenv, mysql-python, pip: ¿alguien sabe cómo?
- 5. Android: ¿Alguien sabe cómo capturar video?
- 6. ¿Alguien sabe cómo utilizar PagerTitleStrip en Android
- 7. ¿Alguien sabe cómo implementar el protocolo NSFastEnumeration?
- 8. ¿Alguien sabe qué significa advapi?
- 9. ¿Alguien sabe algo acerca de OLAP Internals?
- 10. ¿Alguien sabe de un generador de paquetes?
- 11. ¿Alguien sabe de un buen explorador OData?
- 12. ¿Alguien sabe algún buen tutorial de silverlight?
- 13. ¿Alguien sabe para qué usa Flash Gmail?
- 14. ¿Alguien sabe de alguna colección de sprites?
- 15. ¿Alguien sabe el estado actual de Graphics32?
- 16. Alguien sabe qué tumblr está escrito en
- 17. ¿Alguien sabe algo como RSPec para PHP?
- 18. ¿Alguien sabe qué hace "mov edi, edi"?
- 19. ¿Alguien sabe cómo pegar como comentario en VS2010?
- 20. ¿Alguien sabe cómo getWindow() en el servicio en Android?
- 21. ¿Alguien sabe cómo cambiar dinámicamente los modos con CodeMirror?
- 22. ¿Alguien sabe cómo B-Tree obtuvo su nombre?
- 23. ¿Alguien sabe cómo funciona el diseño de Pinterest.com?
- 24. ¿Alguien sabe un buen mensaje privado joya para barandillas 3.2?
- 25. ¿Alguien sabe de una biblioteca de texto java2d?
- 26. ¿Alguien sabe qué significa la salida de getevent?
- 27. modos ARM y ¿por qué hay tantos?
- 28. Android ARM arquitecturas ARM
- 29. ¿Alguien sabe de alguien que trabaje en un proveedor LINQ-a-Memcached?
- 30. ¿Alguien sabe qué significa el fragmento de código a continuación?
para explicar las siglas? –
FIQ: solicitud de interrupción rápida –