Si las señales del reloj llegan extremadamente rápido (por ejemplo, 25 MHz), será un desafío realizar cualquier sincronización en el firmware, ya que dos bordes consecutivos de menor a mayor solo estarán separados por 40 ns, y el procesamiento de dos interrupciones en ese tiempo (con la sobrecarga de la interrupción en sí, probablemente guardar y restaurar al menos un registro, además de leer un temporizador y guardarlo, todo en 20 ns) no va a suceder con un Cortex-M3 / M4 (que, hasta Puedo decir, tiene una velocidad de reloj máxima de 180 MHz, por lo que una instrucción toma al menos un 5.5 ns).
Sin embargo, el ARM Cortex-M3 / M4 tiene un coprocesador de temporizador que incluye una sección de captura de entrada. Suponiendo que puede reconfigurar la línea SCK como una entrada y dirigirla a la sección de captura de entrada, debería poder capturar dos bordes sucesivos. (No estoy lo suficientemente familiarizado con la arquitectura ARM Cortex-M3 / M4 para saber si puede enrutar el cable SCK a la entrada de captura de entrada internamente; si no, puede unir los dos cables externamente).