
我们很多人都曾在微控制器上运行过 Blink 程序。它实际上是嵌入式领域的“Hello, World!”。然而,很少有人想过要优化 Blink 代码,使其尽可能精简。但这正是 [Rudra Lad] 在参加 2025 年 One Hertz 挑战赛时所做的!
这个闪烁示例, delay_blinky_13 ,是专为 STM32F4 Discovery 微控制器开发板构建的。[Rudra] 指出该代码经过“高度优化”,编译后的二进制大小不到 50 字节。该代码甚至不使用 RAM,旨在使闪烁频率尽可能接近 1 Hz。使用了许多优化措施来使其尽可能小。例如,不使用标准启动代码,而是将整个程序编写在 Reset_Handler 中以节省空间。位带还用于写入外设寄存器以使 LED 闪烁,因为这比典型方法使用的指令更少。同时,通过对延迟计数例程进行许多调整,[Rudra] 最终能够将闪烁频率提高到 1.00019 Hz,这是在逻辑分析仪上测得的。这已经非常接近了!
虽然只有 50 字节的二进制空间来控制 LED 闪烁的情况很少见,但像这样的工作是锻炼你编程能力的好方法。代码在 Github 上,供好奇者参考,如果你也编写了自己令人印象深刻的微型二进制文件,请随时告诉我们!
原文: https://hackaday.com/2025/08/16/2025-one-hertz-challenge-stm32-blinks-in-under-50-bytes/