Очень хорошо написано и интересно читать. Спасибо. Единственное, что меня напрягло: если Вы считаете, что программист должен отслеживать структуру модулей в продукте, то почему бы ему не перестать забывать сбросить поля структуры настройки перед конфигурированием?
PS. Видел интересную идею вроде задания
#define UARTConfigDefault {1,2,3}
и последующей инициализации структуры вроде
UARTConfigT UARTConfig = UARTConfigDefault;
PS. Видел интересную идею вроде задания
#define UARTConfigDefault {1,2,3}
и последующей инициализации структуры вроде
UARTConfigT UARTConfig = UARTConfigDefault;