Я работал над встроенной программой, используя C.
Существует множество аппаратных макросов, таких как
#ifdef HardwareA
do A
#endif
Это не читабельно, и трудно покрыть все различные пути с помощью юнит-тестов.
Итак, я решил переместить код, связанный с аппаратным обеспечением, в папки архива и использовать макросы в make-файле, чтобы решить, какая папка архива связана. Как в коде ядра Linux.
Но когда я увидел ядро Linux, я заметил, что в папках архива так много дубликатов.
Как они вносят изменения во все связанное оборудование, если в одном оборудовании обнаружена ошибка, но могут повлиять на все остальные?
Я думаю, что при таком способе неизбежно появятся дубликаты в базе кода.
У кого-нибудь есть опыт работы с этим типом проблемы?
Как выполнить модульное тестирование кода, в котором много аппаратных макросов?
Рефакторинг кода для удаления аппаратных макросов из исходного кода?