С ld скриптами там вообще мрак, по уму их тоже надо брать из папки платы, ибо объем памяти бывает разный. Постараюсь припилить, и так уже 3 разные версии есть. Те места в МК где revomini_MP32V1F4 надо менять на $(BOARD) а не на имя.
Для смены субверсии можно добавить в корень ардупилота файл config.mk с дефайнами типа BOARD = чтототам_MP32V1F4, но мне милее вариант с разными таргетами, а их легче всего сделать через разные .mk файлы.
PS. ужал исключения оптимизации до одной строки - функции void write(uint8_t value) класса REVOMINIDigitalSource - но все равно не могу понять что же не так :(. Что самое удивительное - начальная инициализация проходит, whoami читается - а потом затык...
UPD. позабыл малость, скрипт линкера в /support/ld/$(BOARD)/flash.ld - может переложить в /wirish/boards/$(BOARD)/ld/flash.ld?