Проекты с высокой степенью интеграции (ограниченный код и размер блока) создают уникальные проблемы для организации кода.
Я видел немало проектов без какой-либо организации. (В основном инженеры-аппаратчики, которые, как мне кажется, обычно не связаны с нефункциональными аспектами кода.)
Однако я пытался упорядочить свой код соответственно:
- аппаратное обеспечение (драйверы, инициализация)
- применительно к конкретным приложениям (вряд ли будет использоваться повторно)
- многоразовый, аппаратно независимый
Для каждого модуля я стараюсь сохранить назначение одного из этих трех типов.
Из-за ограниченного размера встроенных проектов и акцента на производительности он часто поддерживает эту организацию.
В каком-то контексте мой текущий проект представляет собой ограниченное приложение DSP на MSP430 с 8k флеш-памятью и 256-байтовым баком.