Доброго времени суток!
Меня зовут Александр, я работаю программистом микроконтроллеров, и это история о Фрэнки.
. . .Фрэнки родился чуднЫм. Родителями были пионэрский задор вашего автора и требования заказчика.
Когда младенца скомпилировали и по его венам потекли животворные байты, мой коллега процедил:
- Вы слепили монстра, герр Франкейштейн, но он не лишен некоторого очарования. . .
В то время я писал прошивку для станка с ЧПУ, причем заказчик наложил ограничения - строго Си, никаких сторонних библиотек, допускался только HAL с открытыми исходниками от производителя МК.
Был предоставлен забугорный образец станка, который мы должны были воспроизвести на собственных схемотехнике и ПО.
Общую логику работы подопытного мы с электронщиками раскурили довольно быстро, но оставалось несколько лакун в понимании взаимодействий между узлами, которые ничем, кроме домыслов не заполнялись. В итоге решили начинать как есть, рассчитывая в ходе экспериментов на прототипе постичь финальный замысел самураев.
Ну хорошо, а какой тогда должна быть архитектура приложения, когда нет итогового ТЗ и при этом низзя(!) ни в какие сторонние РТОСы и диспетчеры? Как выстроить программу, чтобы не перелопачивать все исходники, если вдруг осознаешь в середине проекта, что логику нужно править?