ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1169739 Топик полностью
LightElf (31.01.2022 15:56, просмотров: 263) ответил VLLV на Господа, как вы проектируете ПО для семейства приборов с разной функциональностью на разных контроллерах?
Каждый *.c файл содержит обвязку типа 
#include "common.h"
#ifdef BUILD_SNTPC
    < Реализация клиента SNTP >
#endif // BUILD_SNTPC 


Если подразумевается вариативность, например нужно выбрать конкретный ethernet phy из нескольких, то обвязка другая

#include "common.h"
#ifdef PHY_TYPE_KSZ8895
    < Реализация для свича >
#endif // PHY_TYPE_KSZ8895

Заголовок "common.h" содержит прототипы всего-всего и включает еще и заголовок project.h, который относится к конкретному проекту и содержит кучу дефайнов

#define PHY_TYPE_KSZ8895
//#define PHY_TYPE_IP175D
//#define PHY_TYPE_KSZ8031R
//#define BUILD_SYSLOG
#define BUILD_NBNS
#define BUILD_SNTPC
//define BUILD_I2C
#define BUILD_I2C_SW

Таким макаром во все проекты включены все .c файлы, но если некий функционал не нужен - то он и не скомпилируется.

Не надо делать мне как лучше, оставьте мне как хорошо