Muchos de nosotros hemos ejecutado un programa de parpadeo en un microcontrolador antes. Es efectivamente el “¡Hola, mundo!” del espacio incrustado. Sin embargo, pocos de nosotros hemos pensado en optimizar nuestro código de parpadeo para que sea lo más minúsculo posible. Pero eso es precisamente lo que [Rudra Lad] ¡Hice para esta entrada en el desafío Hertz 2025 One Hertz!
Este ejemplo de parpadeo, Delay_blinky_13se construye específicamente para la placa de desarrollo del microcontrolador STM32F4 Discovery. [Rudra] Notas El código está “altamente optimizado” y se compila hasta un tamaño binario de menos de 50 bytes. El código ni siquiera usa RAM, y tiene como objetivo obtener el parpadeo lo más cerca posible de 1 Hz. Se utilizaron muchas optimizaciones para reducirlo lo más pequeño posible. Por ejemplo, el código de inicio estándar no se usa, con todo el programa escrito en el reset_handler para ahorrar espacio. La banda de bit también se usa para escribir en registros periféricos para parpadear el LED, ya que esto usa menos instrucciones que los métodos típicos. Mientras tanto, con muchos ajustes a la rutina de conteo de demora, [Rudra] Finalmente pudo obtener la frecuencia de parpadeo a 1.00019 Hz, como se mide en un analizador lógico. ¡Eso es bastante cercano!
Si bien es raro que solo tenga 50 bytes de espacio binario para parpadear un LED, trabajar como este es una excelente manera de flexionar sus músculos codificantes. El código es en Github Para los curiosos, y si has trabajado en tus propios binarios impresionantes, ¡no dudes en informarnos!