¿Cancelación de datos si la CPU se suspende en FIQ?

Estoy desarrollando el sistema integrado en la plataforma ARM. Y solo trato de resolver un problema de aborto de datos aleatorios. Y como trato de enfocar las líneas problemáticas en el mapa de registro para la depuración, pero otro problema es que el número de líneas no siempre es el número fijo. Finalmente, descubrí que la llamada a la función de espera (simplemente haga que la CPU se suspenda durante un tiempo específico) presentará el problema de cancelación de datos.

Me gustaría saber cuál es el problema si hacemos muchas cosas, como un cálculo complejo en FIQ o IRQ. ¿Introduciría un problema de cancelación de datos? Dado que el FIQ debería deshabilitar todos los demás FIQ o IRQ durante la rutina de servicio, ¿por qué presentaría este tipo de problema?

Ref.

¿Cuál es la diferencia entre FIQ e IRQ?

Cómo depurar el problema de cancelación de datos aleatorios en una plataforma basada en brazo

preguntado el 27 de julio de 12 a las 17:07

¿Ha verificado que todos sus accesos estén alineados? debería poder mirar la pila (cortex-m) o el registro de enlace (no cortex-m) y encontrar la instrucción que causó el aborto. -

Sí, compruebo el registro de enlace R14 pero la dirección no siempre apunta a la misma dirección. Y si hago la misma operación, a veces se apaga, a veces es lento, no siempre es un tiempo fijo. Es extraño, pero después de eliminar la espera en FIQ, ¡parece funcionar! Gracias por recordarmelo. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.