Lamentablemente, no hay preguntas en la Pila con respecto a ARM y ensamblador.
Mi preocupación - es dispositivos críticos de tiempo. Tomemos como ejemplo uno de mis dispositivos basados en AVR (programa compilado con GCC) que debería hacer algo hasta la interrupción INT0. Funcionó con un oscilador interno de 8 MHz (125 ns en un ciclo de máquina) pero tomó hasta 5 microsegundos para reaccionar ante la interrupción. Después de la investigación del código, llegué a la conclusión de que, al comienzo del servicio de interrupciones, el procesador de rutina hace mucho trabajo para guardar su estado, que es casi incontrolable para los lenguajes de programación de alto nivel (como C es). Si utilizara el ensamblador, por ejemplo, podría lanzar un cambio de pin desde el principio y guardar el resto de los cálculos necesarios después de eso. O podría tener mucho más control sobre el uso de los registros y, por lo tanto, mucho menos tiempo para guardar esos registros.
Si fuera a ARM (lo que planeo hacer pronto) tendré un núcleo de procesador mucho más rápido con muchos más registros y espacio de memoria que parece prometedor. Pero ¿podré alguna vez tener control sobre dichos procesos críticos de tiempo para obtener, por ejemplo, tiempo de reacción dentro de, digamos, cientos de nanosecs?