Yoti,
Писать не обязательно. Главное выдать результат чтения прошивки на какую нибудь ногу(и), а считать с неё(их) уже не проблема.
Для примера можно воспользоваться простыми протоколами UART или I2C.
UART реализация например для AVR спокойно укладывается в 490 байт.
Так как нам полной реализации UART не нужно, то приемную часть можно вообще выкинуть и тем самым еще уменьшить размер.